Re: ata unable to map interrupt

From: Andrew Gallatin <gallatin_at_cs.duke.edu>
Date: Fri, 2 Jul 2004 08:37:49 -0400 (EDT)
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
_at__at_ -849,7 +849,7 _at__at_
 	     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
Received on Fri Jul 02 2004 - 10:40:45 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:38:00 UTC