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>