Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 09 Jan 2000 20:22:39 +0100
From:      Hans Ottevangerne_anchors <hansot@iae.nl>
To:        Matthew Dillon <dillon@apollo.backplane.com>
Cc:        current@FreeBSD.ORG
Subject:   Re: New kernel no longer boots on one of my machines... ata, other  problems
Message-ID:  <3878DFFF.28349A4F@iae.nl>
References:  <200001070405.UAA75303@apollo.backplane.com>

next in thread | previous in thread | raw e-mail | index | archive | help
Matthew Dillon wrote:
> 
>     Well guys, I tried upgrading one of my older machines today to the
>     latest 4.0.  It was running an older 4.0 kernel (Nov 29 1999).
> 

[ Detailed description deleted ]

>         HEEEEELP!  Whats happening!!! :-( :-( :-(
> 
>     At the moment I am stymied.  I switched to a GENERIC kernel and got the
>     same results, so it isn't anything weird that I have done in my own
>     kernel config.
> 
>     I was hoping that someone would have an idea.
> 
>                                                 -Matt

Hi folks,

As already reported yesterday, I have similar problems, and I have been
doing some experiments today with my ancient Pentium 66. With 4.0
CURRENT as of yesterday, it seem to hang while booting, when configured
to use the new ATA driver. When using the old WD driver, there is no
such problem. 

The system has 64 MB RAM, two Western Digital harddisks of 1.6 GB and
3.1 GB respectively, 8x Toshiba CDROM, Matrox Millenium II graphics
card, and a 3Com 905B NIC.

As Matt did, I switched to a GENERIC kernel, and I booted with the
options -s and -v. The system seems to hang after the message: 

  Mounting root from ufs:wd0s1a

However, if I hit RETURN, followed by CTL-ALT-ESC, I actually end up in
the single user mode shell. I even can run commands, I only must type
CTL-ALT-ESC to see the output. And indeed, the clock is not running. By
mounting /var, I captured the output of dmesg in a file. And it shows at
least one strange thing:

  ata-pci0: <Unknown PCI ATA controller (generic mode)> at device 1.0 on
pci0
  ata-pci0: Busmastering DMA not supported
  ata0: iobase=0x01f0 altiobase=0x03f4 bmaddr=0x0000
  ata0: mask=03 status0=50 status1=50
  ata0: mask=03 status0=50 status1=50
  ata0: devices = 0x3
  ata0 at 0x01f0 irq 0 on ata-pci0
                ^^^^^^^

I.e. ata0 takes the irq that is normally reserved for the timer. And
somewhat later in the boot process we see:

  Device configuration finished.
          device combination doesn't support shared irq0
          intr_connect(irq0) failed, result=-1 

So indeed the timer is not able to interrupt, which explains the strange
phenomena.
The secondary EIDE interface, which is on the ISA bus in this system, is
recognized correctly:

  ata1: iobase=0x0170 altiobase=0x0376 bmaddr=0x0000
  ata1: mask=01 status0=00 status1=ff
  ata1: mask=01 status0=00 status1=ffffffff
  ata1: devices = 0x4
  ata1 at port 0x170 irq 15 on isa0


As a quick fix, to get rid of the problem for now, I forced the irq of
ata0 to 14 in the source. I added the line 

  irq1 = 14;

after line 293 in /sys/dev/ata/ata-all.c (1.39)

After compiling the kernel, the system reboots and runs without any
problems, using the ATA drivers.

Apparently, something is going wrong when reading the PCI configuration
on these old systems. It certainly justifies some investigation.

Kind regards,

Hans


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-current" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?3878DFFF.28349A4F>