Date: Fri, 2 Jul 2004 08:37:49 -0400 (EDT) From: Andrew Gallatin <gallatin@cs.duke.edu> To: John Baldwin <jhb@FreeBSD.org> Cc: sos@FreeBSD.org Subject: Re: ata unable to map interrupt Message-ID: <16613.22301.418927.354317@grasshopper.cs.duke.edu> In-Reply-To: <200407020012.15514.jhb@FreeBSD.org> References: <16612.38647.686404.398773@grasshopper.cs.duke.edu> <16612.49156.140882.83317@grasshopper.cs.duke.edu> <200407020012.15514.jhb@FreeBSD.org>
next in thread | previous in thread | raw e-mail | index | archive | help
John Baldwin writes: > On Thursday 01 July 2004 09:53 pm, Andrew Gallatin wrote: > > Andrew Gallatin writes: > > > Today's kernel: > > > > > > atapci0: <ServerWorks CSB5 UDMA100 controller> port > > > 0xffa0-0xffaf,0x374-0x377,0x170-0x177,0x3f4-0x3f7,0x1f0-0x1f7 at device > > > 15.1 on pci0 atapci0: unable to map interrupt > > > > Argh! Unable to map interrupt, not I/O port. Sorry.. An I/O port > > mapping was the last thing that left me at a mountroot prompt on > > this f'ing box. > > > > The problem is really with mapping interrupts. I've left mptable, and > > verbose boot output from working and nonworking kernels at > > http://people.freebsd.org/~gallatin/ata_irq/ > > > > As I said before, it doesn't seem to matter if I enable or disable > > ACPI. I've also tried set hw.apic.mixed_mode=0 > > > > A kernel from another box from June 19th seems to work, so > > maybe it happened in the last 12 days or so. > > I think this is a problem with ATA. Soren made a change to dev/pci/pci.c for > the ATA native mode allocation that might be suspect. Yep that's it. Thank you! Backing out 1.263 of sys/dev/pci/pci.c fixes it, as does #if 0'ing the native addressing code block: Index: dev/pci/pci.c =================================================================== RCS file: /home/ncvs/src/sys/dev/pci/pci.c,v retrieving revision 1.263 diff -u -r1.263 pci.c --- dev/pci/pci.c 29 Jun 2004 20:25:43 -0000 1.263 +++ dev/pci/pci.c 2 Jul 2004 12:29:47 -0000 @@ -849,7 +849,7 @@ int s, int f, struct resource_list *rl) { int rid, type, progif; -#if 1 +#if 0 /* if this device supports PCI native addressing use it */ progif = pci_read_config(dev, PCIR_PROGIF, 1); if ((progif & 0x8a) == 0x8a) { For what its worth, the ATA controller here is part of a mf dev: isab0@pci0:15:0: class=0x060100 card=0x02011166 chip=0x02011166 rev=0x93 hdr=0x00 vendor = 'ServerWorks (Was: Reliance Computer Corp)' device = 'CSB5 PCI to ISA Bridge' class = bridge subclass = PCI-ISA atapci0@pci0:15:1: class=0x01018a card=0x02121166 chip=0x02121166 rev=0x93 hdr=0x00 vendor = 'ServerWorks (Was: Reliance Computer Corp)' device = 'CSB5 PCI EIDE Controller' class = mass storage subclass = ATA hostb2@pci0:15:3: class=0x060000 card=0x02301166 chip=0x02251166 rev=0x00 hdr=0x00 vendor = 'ServerWorks (Was: Reliance Computer Corp)' device = 'CSB5 PCI Bridge' class = bridge subclass = HOST-PCI Thanks again, Drew
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?16613.22301.418927.354317>