ata unable to map interrupt
Andrew Gallatin
gallatin at cs.duke.edu
Fri Jul 2 05:40:45 PDT 2004
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 at 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 at 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 at 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
More information about the freebsd-current
mailing list