ia64: ACPI PCI IRQ routing breakage

From: Marcel Moolenaar <marcel_at_xcllnt.net>
Date: Wed, 11 Aug 2004 14:47:08 -0700
Nate,

I just tried to boot a kernel with the new ACPI PCI IRQ routing and
things look very bad:

OK boot -v
Entering /boot/kernel/kernel at 0xe000000004058000...
PA Pocat0x000003f401
SA: P ak-u vctr:0xf0 G a 0e00000fe000
Prceso rti 92,Bu rti 11,IT rti 92
Skipping memory chunk start 0x4040000000
Skipping memory chunk start 0x407efff000
Skipping memory chunk start 0x407f2e8000
Skipping memory chunk start 0x407f9ff000
Skipping memory chunk start 0x407fdff000
Skipping memory chunk start 0x407fe7f000
ptc.e base=0x0, count1=1, count2=1, stride1=0x0, stride2=0x0
Processor supports 24 Region ID bits
Trying VHPT size 0x400000
Putting VHPT at 0x400000
Splitting [0x100000-0x4000000]
GDB: debug ports: uart
GDB: current port: uart
KDB: debugger backends: ddb gdb
KDB: current backend: ddb
Copyright (c) 1992-2004 The FreeBSD Project.
Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
        The Regents of the University of California. All rights reserved.
FreeBSD 5.2-CURRENT #11: Wed Aug 11 21:23:19 UTC 2004
    marcel_at_pluto1.freebsd.org:/p/src/sys/ia64/compile/PLUTO1
WARNING: WITNESS option enabled, expect reduced performance.
UNWIND: table added: base=e000000004000000, start=e000000004639898, end=e00000000465b828
Preloaded elf kernel "/boot/kernel/kernel" at 0xe0000000047ca000.
CPU: McKinley (900.00-Mhz Itanium 2)
  Origin = "GenuineIntel"  Revision = 7
  Features = 0x1<LB>
real memory  = 1067114496 (1017 MB)
Physical memory chunk(s):
0x0005c000 - 0x0009ffff, 278528 bytes (34 pages)
0x00100000 - 0x003fffff, 3145728 bytes (384 pages)
0x00800000 - 0x03ffffff, 58720256 bytes (7168 pages)
0x047cc000 - 0x3ead5fff, 976265216 bytes (119173 pages)
avail memory = 1030324224 (982 MB)
FPSWA Revision = 0x1000c, Entry = 0xe00000407fe62050
Using ACPI2.0 table at 0x3fdf8000
Table 'FACP' at 0xe00000003fdfe3f0
Table 'SPCR' at 0xe00000003fdfe528
Table 'DBGP' at 0xe00000003fdfe578
Table 'APIC' at 0xe00000003fdfe638
        Local APIC address=0xfee00000
        Local APIC override entry
                Local APIC address=0xfee00000
        Local SAPIC entry
                ProcessorId=0x0, Id=0x0, Eid=0x0
        Local SAPIC entry
                ProcessorId=0x1, Id=0x1, Eid=0x0
        I/O SAPIC entry
                Id=0x0, InterruptBase=0x10, Address=0xfed20800
        I/O SAPIC entry
                Id=0x1, InterruptBase=0x1b, Address=0xfed22800
        I/O SAPIC entry
                Id=0x2, InterruptBase=0x26, Address=0xfed24800
        I/O SAPIC entry
                Id=0x3, InterruptBase=0x31, Address=0xfed26800
        I/O SAPIC entry
                Id=0x4, InterruptBase=0x3c, Address=0xfed28800
        I/O SAPIC entry
                Id=0x6, InterruptBase=0x47, Address=0xfed2c800
        I/O SAPIC entry
                Id=0x7, InterruptBase=0x52, Address=0xfed2e800
Table 'SPMI' at 0xe00000003fdfe5b0
Table 'CPEP' at 0xe00000003fdfe600
Table 'SSDT' at 0xe00000003fdfc680
Table 'SSDT' at 0xe00000003fdfc740
Table 'SSDT' at 0xe00000003fdfc970
Table 'SSDT' at 0xe00000003fdfcfe0
Table 'SSDT' at 0xe00000003fdfd650
Table 'SSDT' at 0xe00000003fdfdcc0
Table 'SSDT' at 0xe00000003fdfe330
MCA: allocated 32768 bytes for state info.
mem: <memory>
null: <null device, zero device>
random: <entropy source, Software, Yarrow>
acpi0: <HP> on motherboard
acpi0: [GIANT-LOCKED]
acpi0: Power Button (fixed)
acpi0: Sleep Button (fixed)
ACPI timer looks BAD  min = 2, max = 7, width = 5
ACPI timer looks BAD  min = -6, max = 15, width = 21
ACPI timer looks BAD  min = -2, max = 11, width = 13
ACPI timer looks BAD  min = -10, max = 19, width = 29
ACPI timer looks BAD  min = -26, max = 35, width = 61
ACPI timer looks BAD  min = -59, max = 68, width = 127
ACPI timer looks GOOD min = 4, max = 5, width = 1
ACPI timer looks BAD  min = -11, max = 20, width = 31
ACPI timer looks GOOD min = 4, max = 5, width = 1
ACPI timer looks BAD  min = -42, max = 51, width = 93
Timecounter "ACPI-safe" frequency 3579545 Hz quality 1000
acpi_timer0: <32-bit timer at 3.579545MHz> iomem 0xff5c1004-0xff5c1007 on acpi0
acpi_tz0: <Thermal Zone> on acpi0
cpu0: <ACPI CPU> on acpi0
pcib0: <ACPI Host-PCI bridge> on acpi0
ACPI PCI link initial configuration:
pci0: <ACPI PCI bus> on pcib0
pci0: physical bus=0
        map[10]: type 1, range 32, base 80023000, size 12, enabled
found-> vendor=0x1033, dev=0x0035, revid=0x41
        bus=0, slot=1, func=0
        class=0c-03-10, hdrtype=0x00, mfdev=1
        cmdreg=0x0146, statreg=0x0210, cachelnsz=32 (dwords)
        lattimer=0x80 (3840 ns), mingnt=0x01 (250 ns), maxlat=0x2a (10500 ns)
        intpin=a, irq=0
        powerspec 2  supports D0 D1 D2 D3  current D0
        map[10]: type 1, range 32, base 80022000, size 12, enabled
found-> vendor=0x1033, dev=0x0035, revid=0x41
        bus=0, slot=1, func=1
        class=0c-03-10, hdrtype=0x00, mfdev=0
        cmdreg=0x0146, statreg=0x0210, cachelnsz=32 (dwords)
        lattimer=0x80 (3840 ns), mingnt=0x01 (250 ns), maxlat=0x2a (10500 ns)
        intpin=b, irq=0
        powerspec 2  supports D0 D1 D2 D3  current D0
        map[10]: type 1, range 32, base 80021000, size  8, enabled
found-> vendor=0x1033, dev=0x00e0, revid=0x02
        bus=0, slot=1, func=2
        class=0c-03-20, hdrtype=0x00, mfdev=0
        cmdreg=0x0146, statreg=0x0210, cachelnsz=32 (dwords)
        lattimer=0x80 (3840 ns), mingnt=0x10 (4000 ns), maxlat=0x22 (8500 ns)
        intpin=c, irq=0
        powerspec 2  supports D0 D1 D2 D3  current D0
        map[10]: type 4, range 32, base 00000d58, size  3, enabled
        map[14]: type 4, range 32, base 00000d64, size  2, enabled
        map[18]: type 4, range 32, base 00000d50, size  3, enabled
        map[1c]: type 4, range 32, base 00000d60, size  2, enabled
        map[20]: type 4, range 32, base 00000d40, size  4, enabled
found-> vendor=0x1095, dev=0x0649, revid=0x02
        bus=0, slot=2, func=0
        class=01-01-8f, hdrtype=0x00, mfdev=0
        cmdreg=0x0145, statreg=0x0290, cachelnsz=0 (dwords)
        lattimer=0x80 (3840 ns), mingnt=0x02 (500 ns), maxlat=0x04 (1000 ns)
        intpin=a, irq=14
        powerspec 2  supports D0 D1 D2 D3  current D0
        map[10]: type 1, range 32, base 80020000, size 12, enabled
        map[14]: type 4, range 32, base 00000d00, size  6, enabled
        map[18]: type 1, range 32, base 80000000, size 17, enabled
found-> vendor=0x8086, dev=0x1229, revid=0x0d
        bus=0, slot=3, func=0
        class=02-00-00, hdrtype=0x00, mfdev=0
        cmdreg=0x0147, statreg=0x0290, cachelnsz=0 (dwords)
        lattimer=0x80 (3840 ns), mingnt=0x08 (2000 ns), maxlat=0x38 (14000 ns)
        intpin=a, irq=0
        powerspec 2  supports D0 D1 D2 D3  current D0
ohci0: <NEC uPD 9210 USB controller> mem 0x80023000-0x80023fff irq 0 at device 1.0 on pci0
ohci0: Reserved 0x1000 bytes for rid 0x10 type 3 at 0x80023000
ohci0: Could not setup irq, 2
device_attach: ohci0 attach returned 6
ohci1: <NEC uPD 9210 USB controller> mem 0x80022000-0x80022fff irq 0 at device 1.1 on pci0
ohci1: Reserved 0x1000 bytes for rid 0x10 type 3 at 0x80022000
ohci1: Could not setup irq, 2
device_attach: ohci1 attach returned 6
ehci0: <NEC uPD 720100 USB 2.0 controller> mem 0x80021000-0x800210ff irq 0 at device 1.2 on pci0
ehci0: Reserved 0x100 bytes for rid 0x10 type 3 at 0x80021000
ehci0: Could not setup irq, 2
device_attach: ehci0 attach returned 6
atapci0: <CMD 649 UDMA100 controller> port 0xd40-0xd4f,0xd60-0xd63,0xd50-0xd57,0xd64-0xd67,0xd58-0xd5f irq 14 at device 2.0 on pci0
atapci0: Reserved 0x10 bytes for rid 0x20 type 4 at 0xd40
atapci0: unable to setup interrupt
atapci0: Reserved 0x8 bytes for rid 0x10 type 4 at 0xd58
atapci0: Reserved 0x4 bytes for rid 0x14 type 4 at 0xd64
ata2: reset tp1 mask=03 ostat0=00 ostat1=01
ata2-master: stat=0x00 err=0x01 lsb=0x14 msb=0xeb
ata2-slave:  stat=0x01 err=0x04 lsb=0x14 msb=0xeb
ata2: reset tp2 stat0=00 stat1=01 devices=0x4<ATAPI_MASTER>
ata2: at 0xd58 on atapci0
ata2: [MPSAFE]
atapci0: Reserved 0x8 bytes for rid 0x18 type 4 at 0xd50
atapci0: Reserved 0x4 bytes for rid 0x1c type 4 at 0xd60
ata3: reset tp1 mask=00 ostat0=ff ostat1=ff
ata3: at 0xd50 on atapci0
ata3: [MPSAFE]
fxp0: <Intel 82550 Pro/100 Ethernet> port 0xd00-0xd3f mem 0x80000000-0x8001ffff,0x80020000-0x80020fff irq 0 at device 3.0 on pci0
fxp0: Reserved 0x1000 bytes for rid 0x10 type 3 at 0x80020000
fxp0: using memory space register mapping
fxp0: PCI IDs: 8086 1229 103c 1274 000d
fxp0: Dynamic Standby mode is disabled
miibus0: <MII bus> on fxp0
inphy0: <i82555 10/100 media interface> on miibus0
inphy0:  10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
fxp0: bpf attached
fxp0: Ethernet address: 00:30:6e:39:b6:70
fxp0: could not setup irq
panic: fxp_release() called with intr handle still active
KDB: enter: panic
[thread 0]
Stopped at      kdb_enter+0x80: [M0]    break.m 0x84b5d
db> tr
kdb_enter(0xe0000000045daa38, 0xe000000004280210, 0x895, 0xe000000004677388) at kdb_enter+0x80
panic(0xe0000000045b33a0, 0x2, 0xe0000000045b3380, 0x343) at panic+0x1c0
fxp_release(0xe000000000900000, 0xe000000000901d20, 0xca1, 0xe0000000048aed60, 0xe000000000900000, 0x0, 0xe0000000009003a0, 0xffffffffffffffff) at fxp_release+0x70
fxp_attach(0xe0000000008fa500, 0xe00000000023bd58, 0xe000000000900074, 0x2, 0x8086, 0x1229, 0x103c, 0xe000000000900000) at fxp_attach+0x17f0
device_attach(0xe0000000008fa500) at device_attach+0x4c0
bus_generic_attach(0xe0000000008fa500, 0xe0000000040de610, 0x38d, 0xe000000004604900) at bus_generic_attach+0x40
acpi_pci_attach(0xe0000000008b0200, 0xe0000000001a5200, 0xe000000004678320, 0xe000000004677478, 0xe0000000042b2840, 0x797, 0xe0000000048aed60) at acpi_pci_attach+0x250
device_attach(0xe0000000008b0200) at device_attach+0x4c0
bus_generic_attach(0xe0000000008b0200, 0xe0000000040e1800, 0x50e, 0xe0000000008b0374) at bus_generic_attach+0x40
acpi_pcib_attach(0xe0000000001a5200, 0xe0000000008f38a0, 0x0, 0xe0000000008a2200, 0xe000000004678320) at acpi_pcib_attach+0x1a0
acpi_pcib_acpi_attach(0xe0000000001a5200, 0xe0000000008f3894, 0xe0000000046774a8, 0xe0000000008f3898, 0xe0000000008f3888, 0xe0000000008f3880, 0xe0000000042b2840, 0x797) at acpi_pcib_acpi_attach+0x370
device_attach(0xe0000000001a5200) at device_attach+0x4c0
bus_generic_attach(0xe0000000001a5200, 0xe0000000040cd880, 0xa9d, 0xe0000000046780a0) at bus_generic_attach+0x40
acpi_attach(0xe0000000008a2200, 0x4, 0xe00000000467c6e0, 0xe0000000046774e8, 0xe0000000046774d8, 0xe0000000008a2148, 0xe0000000045b1a78, 0xe0000000045b9648) at acpi_attach+0xae0
device_attach(0xe0000000008a2200) at device_attach+0x4c0
bus_generic_attach(0xe0000000008a2200) at bus_generic_attach+0x40
nexus_attach(0xe0000000001a2200, 0xe0000000042b2840, 0x797, 0xe0000000042b2810) at nexus_attach+0xd0
device_attach(0xe0000000001a2200) at device_attach+0x4c0
root_bus_configure(0xe0000000001a2200, 0xe0000000045686f0, 0x186) at root_bus_configure+0x50
configure(0xe00000000422a610, 0x48b) at configure+0x60
mi_startup(0xe000000004603dd0, 0xe0000000046d0d38, 0xe0000000046d0d40, 0x1, 0xe0000000046d0d30, 0xe0000000046d0d48, 0xe000000004584400, 0x899) at mi_startup+0x2c0
ia64_init(0xe0000000046d06c8) at ia64_init+0xc80
__start() at __start+0xa0
db> show irq
 68 1 0    low-active       level   ID=0 EID=0
db>

If you don't have any suggestions from the top of your head, then
please could you back it out so that we can work out what's going
on without having ia64 completely bOrked. It not just inconvenient
for me. It's a major blocker. In that light I'd hoped to be given
more time for testing.

Thanks,

-- 
 Marcel Moolenaar	  USPA: A-39004		 marcel_at_xcllnt.net
Received on Wed Aug 11 2004 - 19:47:10 UTC

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