Subject: ACPI interrupt problem
To: None <port-i386@NetBSD.org>
From: Martin Husemann <martin@duskware.de>
List: port-i386
Date: 09/09/2005 21:07:17
I have a machine that works fine, unless I enable ACPI. With ACPI
(plus PCI, ADDRESS, INTR fixup options) I get timeouts from fxp0, and
the network does not work (neither fxp0 nor wm0).

The only suspicious output I found is this double irq 15:

fxp0: interrupting at ioapic1 pin 5 (irq 15)
wm0: interrupting at ioapic0 pin 15 (irq 15)

According to vmstat -i I get some of the former:

interrupt                                     total     rate
cpu0 softclock                                20106      101
cpu0 softnet                                    169        0
cpu0 softserial                                1567        7
cpu0 timer                                    20412      103
cpu0 FPU flush IPI                                1        0
cpu0 TLB shootdown IPI                          135        0
cpu1 softnet                                     26        0
cpu1 timer                                    19598       98
cpu1 timeset IPI                                199        1
cpu1 FPU synch IPI                                7        0
cpu1 TLB shootdown IPI                          639        3
ioapic0 pin 5                                    11        0
ioapic1 pin 5                                    82        0
ioapic0 pin 11                                 2707       13
ioapic0 pin 14                                    6        0
ioapic0 pin 4                                     1        0
ioapic0 pin 3                                  2302       11
ioapic0 pin 1                                   228        1
Total                                         68196      344

Here is complete dmesg for reference

Copyright (c) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
    The NetBSD Foundation, Inc.  All rights reserved.
Copyright (c) 1982, 1986, 1989, 1991, 1993
    The Regents of the University of California.  All rights reserved.

NetBSD 3.99.8 (PORTER) #0: Fri Sep  9 20:37:19 CEST 2005
	martin@night-porter.duskware.de:/usr/src/sys/arch/i386/compile/PORTER
total memory = 3071 MB
avail memory = 3012 MB
BIOS32 rev. 0 found at 0xf0a50
mainbus0 (root)
cpu0 at mainbus0: apid 3 (boot processor)
cpu0: Intel Pentium III (686-class), 1000.09 MHz, id 0x686
cpu0: features 387fbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR>
cpu0: features 387fbff<PGE,MCA,CMOV,PAT,PSE36,PN,MMX>
cpu0: features 387fbff<FXSR,SSE>
cpu0: I-cache 16 KB 32B/line 4-way, D-cache 16 KB 32B/line 4-way
cpu0: L2 cache 256 KB 32B/line 8-way
cpu0: ITLB 32 4 KB entries 4-way, 2 4 MB entries fully associative
cpu0: DTLB 64 4 KB entries 4-way, 8 4 MB entries 4-way
cpu0: serial number 0000-0686-0003-6711-458e-a9ef
cpu0: calibrating local timer
cpu0: apic clock running at 133 MHz
cpu0: 8 page colors
cpu1 at mainbus0: apid 0 (application processor)
cpu1: starting
cpu1: Intel Pentium III (686-class), 1000.04 MHz, id 0x686
cpu1: features 387fbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR>
cpu1: features 387fbff<PGE,MCA,CMOV,PAT,PSE36,PN,MMX>
cpu1: features 387fbff<FXSR,SSE>
cpu1: I-cache 16 KB 32B/line 4-way, D-cache 16 KB 32B/line 4-way
cpu1: L2 cache 256 KB 32B/line 8-way
cpu1: ITLB 32 4 KB entries 4-way, 2 4 MB entries fully associative
cpu1: DTLB 64 4 KB entries 4-way, 8 4 MB entries 4-way
cpu1: serial number 0000-0686-0002-fc1f-c5a0-64d9
ioapic0 at mainbus0 apid 2 (I/O APIC)
ioapic0: pa 0xfec00000, version 11, 16 pins
ioapic1 at mainbus0 apid 3 (I/O APIC)
ioapic1: pa 0xfec01000, version 11, 16 pins
acpi0 at mainbus0
acpi0: using Intel ACPI CA subsystem version 20050408
acpi0: X/RSDT: OemId <ASUS  ,CUR-DLS ,30303031>, AslId <MSFT,31313031>
acpi0: SCI interrupting at int 9
acpi0: fixed-feature power button present
acpi0: fixing up intr link \_SB_.LNKK
acpi0: fixing up intr link \_SB_.LNKA
acpi0: fixing up intr link \_SB_.LNKM
acpi0: fixing up intr link \_SB_.LNKC
acpi0: fixing up intr link \_SB_.LNKN
acpi0: fixing up intr link \_SB_.LNKO
acpi0: fixing up intr link \_SB_.LNKP
ACPI Object Type 'Processor' (0x0c) at acpi0 not configured
ACPI Object Type 'Processor' (0x0c) at acpi0 not configured
acpibut0 at acpi0 (PNP0C0C): ACPI Power Button
PNP0C01 at acpi0 not configured
PNP0C0F at acpi0 not configured
PNP0C0F at acpi0 not configured
PNP0C0F at acpi0 not configured
PNP0C0F at acpi0 not configured
PNP0C0F at acpi0 not configured
PNP0C0F at acpi0 not configured
PNP0C0F at acpi0 not configured
PNP0C0F at acpi0 not configured
PNP0C0F at acpi0 not configured
PNP0C0F at acpi0 not configured
PNP0C0F at acpi0 not configured
PNP0C0F at acpi0 not configured
PNP0C0F at acpi0 not configured
PNP0C0F at acpi0 not configured
PNP0C0F at acpi0 not configured
PNP0A03 at acpi0 not configured
PNP0A05 at acpi0 not configured
PNP0200 at acpi0 not configured
PNP0000 at acpi0 not configured
PNP0C04 at acpi0 not configured
PNP0100 at acpi0 not configured
PNP0800 at acpi0 not configured
PNP0C02 at acpi0 not configured
PNP0A06 at acpi0 not configured
PNP0C02 at acpi0 not configured
PNP0303 at acpi0 not configured
PNP0F13 at acpi0 not configured
PNP0B00 at acpi0 not configured
PNP0501 at acpi0 not configured
PNP0501 at acpi0 not configured
PNP0401 at acpi0 not configured
PNP0700 at acpi0 not configured
PNP0A03 at acpi0 not configured
pci0 at mainbus0 bus 0: configuration mode 1
pci0: i/o space, memory space enabled, rd/line, rd/mult, wr/inv ok
pchb0 at pci0 dev 0 function 0
pchb0: vendor 0x1166 product 0x0009 (rev. 0x05)
pchb1 at pci0 dev 0 function 1
pchb1: vendor 0x1166 product 0x0009 (rev. 0x05)
pci1 at pchb1 bus 1
pci1: i/o space, memory space enabled, rd/line, rd/mult, wr/inv ok
wm0 at pci1 dev 2 function 0: Intel i82543GC 1000BASE-T Ethernet, rev. 2
wm0: interrupting at ioapic0 pin 15 (irq 15)
wm0: 64-bit 33MHz PCI bus
wm0: 64 word (6 address bits) MicroWire EEPROM
wm0: Ethernet address 00:03:47:25:42:14
makphy0 at wm0 phy 1: Marvell 88E1000 Gigabit PHY, rev. 2
makphy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, 1000baseT, 1000baseT-FDX, auto
puc0 at pci1 dev 4 function 0: Titan PCI-800L (com, com, com, com, com, com, com, com)
com2 at puc0 port 0: interrupting at ioapic0 pin 5 (irq 5)
com2: ns16550a, working fifo
com3 at puc0 port 1: interrupting at ioapic0 pin 5 (irq 5)
com3: ns16550a, working fifo
com4 at puc0 port 2: interrupting at ioapic0 pin 5 (irq 5)
com4: ns16550a, working fifo
com5 at puc0 port 3: interrupting at ioapic0 pin 5 (irq 5)
com5: ns16550a, working fifo
com6 at puc0 port 4: interrupting at ioapic0 pin 5 (irq 5)
com6: ns16550a, working fifo
com7 at puc0 port 5: interrupting at ioapic0 pin 5 (irq 5)
com7: ns16550a, working fifo
com8 at puc0 port 6: interrupting at ioapic0 pin 5 (irq 5)
com8: ns16550a, working fifo
com9 at puc0 port 7: interrupting at ioapic0 pin 5 (irq 5)
com9: ns16550a, working fifo
vendor 0x1000 product 0x0020 (SCSI mass storage, revision 0x01) at pci1 dev 5 function 0 not configured
vendor 0x1000 product 0x0020 (SCSI mass storage, revision 0x01) at pci1 dev 5 function 1 not configured
fxp0 at pci0 dev 2 function 0: i82559 Ethernet, rev 8
fxp0: interrupting at ioapic1 pin 5 (irq 15)
fxp0: Ethernet address 00:e0:18:04:e1:cd
inphy0 at fxp0 phy 1: i82555 10/100 media interface, rev. 4
inphy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
satalink0 at pci0 dev 6 function 0
satalink0: Silicon Image SATALink 3114 (rev. 0x02)
satalink0: 33MHz PCI bus
satalink0: bus-master DMA support present
satalink0: using ioapic0 pin 11 (irq 11) for native-PCI interrupt
atabus0 at satalink0 channel 0
atabus1 at satalink0 channel 1
atabus2 at satalink0 channel 2
atabus3 at satalink0 channel 3
vga0 at pci0 dev 7 function 0: vendor 0x1002 product 0x4752 (rev. 0x27)
wsdisplay0 at vga0 kbdmux 1: console (80x25, vt100 emulation)
wsmux1: connecting to wsdisplay0
pcib0 at pci0 dev 15 function 0
pcib0: vendor 0x1166 product 0x0200 (rev. 0x50)
rccide0 at pci0 dev 15 function 1
rccide0: ServerWorks OSB4 IDE Controller (rev. 0x00)
rccide0: bus-master DMA support present
rccide0: primary channel configured to compatibility mode
rccide0: primary channel interrupting at ioapic0 pin 14 (irq 14)
atabus4 at rccide0 channel 0
rccide0: secondary channel configured to compatibility mode
intr_establish: pic ioapic0 pin 15: can't share type 3 with 2
rccide0: no compatibility interrupt for use by secondary channel
ohci0 at pci0 dev 15 function 2: vendor 0x1166 product 0x0220 (rev. 0x04)
ohci0: interrupting at ioapic0 pin 9 (irq 9)
ohci0: OHCI version 1.0, legacy support
usb0 at ohci0: USB revision 1.0
uhub0 at usb0
uhub0: vendor 0x1166 OHCI root hub, class 9/0, rev 1.00/1.00, addr 1
uhub0: 4 ports with 4 removable, self powered
isa0 at pcib0
lpt0 at isa0 port 0x378-0x37b irq 7
com0 at isa0 port 0x3f8-0x3ff irq 4: ns16550a, working fifo
com1 at isa0 port 0x2f8-0x2ff irq 3: ns16550a, working fifo
pckbc0 at isa0 port 0x60-0x64
pckbd0 at pckbc0 (kbd slot)
pckbc0: using irq 1 for kbd slot
wskbd0 at pckbd0: console keyboard, using wsdisplay0
attimer0 at isa0 port 0x40-0x43: AT Timer
isapnp0 at isa0 port 0x279: ISA Plug 'n Play device support
npx0 at isa0 port 0xf0-0xff: using exception 16
fdc0 at isa0 port 0x3f0-0x3f7 irq 6 drq 2
isapnp0: no ISA Plug 'n Play devices found
ioapic0: enabling
ioapic1: enabling
fd0 at fdc0 drive 0: 1.44MB, 80 cyl, 2 head, 18 sec
Kernelized RAIDframe activated
satalink0: port 0: device present, speed: 1.5Gb/s
wd0 at atabus0 drive 0satalink0: port 1: device present, speed: 1.5Gb/s
: <WDC WD2000JD-00GBB0>
wd0: drive supports 16-sector PIO transfers, LBA48 addressing
wd0: 186 GB, 387621 cyl, 16 head, 63 sec, 512 bytes/sect x 390721968 sectors
wd0: 32-bit data port
wd0: drive supports PIO mode 4, DMA mode 2, Ultra-DMA mode 5 (Ultra/100)
wd0(satalink0:0:0): using PIO mode 4, Ultra-DMA mode 5 (Ultra/100) (using DMA)
wd1 at atabus1 drive 0: <WDC WD2000JD-00GBB0>
wd1: drive supports 16-sector PIO transfers, LBA48 addressing
wd1: 186 GB, 387621 cyl, 16 head, 63 sec, 512 bytes/sect x 390721968 sectors
wd1: 32-bit data port
wd1: drive supports PIO mode 4, DMA mode 2, Ultra-DMA mode 5 (Ultra/100)
wd1(satalink0:1:0): using PIO mode 4, Ultra-DMA mode 5 (Ultra/100) (using DMA)
atapibus0 at atabus4: 2 targets
cd0 at atapibus0 drive 0: <HL-DT-ST DVDRAM GSA-4040B, K2I38IJ5950, A300> cdrom removable
cd0: 32-bit data port
cd0: drive supports PIO mode 4, DMA mode 2, Ultra-DMA mode 2 (Ultra/33)
cd0(rccide0:0:0): using PIO mode 4, DMA mode 2, Ultra-DMA mode 2 (Ultra/33) (using DMA)
raid0: RAID Level 1
raid0: Components: /dev/wd0a /dev/wd1a
raid0: Total Sectors: 389671552 (190269 MB)
boot device: raid0
root on raid0a dumps on raid0b
root file system type: ffs
cpu1: CPU 0 running

Without ACPI (so MPBIOS routing is used) the interrupts are shuffled a bit,

wm0: interrupting at ioapic1 pin 5 (irq 15)
fxp0: interrupting at ioapic1 pin 4 (irq 10)

and fxp0 works, but wm0 not. And there is this warning:

mpbios: WARNING: pin 22 for apic 3 too high; assuming ACPI global int value


Here is the non-ACPI dmesg:

Copyright (c) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
    The NetBSD Foundation, Inc.  All rights reserved.
Copyright (c) 1982, 1986, 1989, 1991, 1993
    The Regents of the University of California.  All rights reserved.

NetBSD 3.99.8 (PORTER) #1: Fri Sep  9 20:25:34 CEST 2005
	martin@night-porter.duskware.de:/usr/src/sys/arch/i386/compile/PORTER
total memory = 3071 MB
avail memory = 3013 MB
BIOS32 rev. 0 found at 0xf0a50
mainbus0 (root)
mainbus0: Intel MP Specification (Version 1.4) (OEM00000 PROD00000000)
cpu0 at mainbus0: apid 3 (boot processor)
cpu0: Intel Pentium III (686-class), 1000.09 MHz, id 0x686
cpu0: features 387fbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR>
cpu0: features 387fbff<PGE,MCA,CMOV,PAT,PSE36,PN,MMX>
cpu0: features 387fbff<FXSR,SSE>
cpu0: I-cache 16 KB 32B/line 4-way, D-cache 16 KB 32B/line 4-way
cpu0: L2 cache 256 KB 32B/line 8-way
cpu0: ITLB 32 4 KB entries 4-way, 2 4 MB entries fully associative
cpu0: DTLB 64 4 KB entries 4-way, 8 4 MB entries 4-way
cpu0: serial number 0000-0686-0003-6711-458e-a9ef
cpu0: calibrating local timer
cpu0: apic clock running at 133 MHz
cpu0: 8 page colors
cpu1 at mainbus0: apid 0 (application processor)
cpu1: starting
cpu1: Intel Pentium III (686-class), 1000.04 MHz, id 0x686
cpu1: features 387fbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR>
cpu1: features 387fbff<PGE,MCA,CMOV,PAT,PSE36,PN,MMX>
cpu1: features 387fbff<FXSR,SSE>
cpu1: I-cache 16 KB 32B/line 4-way, D-cache 16 KB 32B/line 4-way
cpu1: L2 cache 256 KB 32B/line 8-way
cpu1: ITLB 32 4 KB entries 4-way, 2 4 MB entries fully associative
cpu1: DTLB 64 4 KB entries 4-way, 8 4 MB entries 4-way
cpu1: serial number 0000-0686-0002-fc1f-c5a0-64d9
mpbios: bus 0 is type PCI   
mpbios: bus 1 is type PCI   
mpbios: bus 2 is type ISA   
ioapic0 at mainbus0 apid 2 (I/O APIC)
ioapic0: pa 0xfec00000, version 11, 16 pins
ioapic1 at mainbus0 apid 3 (I/O APIC)
ioapic1: pa 0xfec01000, version 11, 16 pins
mpbios: WARNING: pin 22 for apic 3 too high; assuming ACPI global int value
pnpbios0 at mainbus0: nodes 14, max len 114
pci0 at mainbus0 bus 0: configuration mode 1
pci0: i/o space, memory space enabled, rd/line, rd/mult, wr/inv ok
pchb0 at pci0 dev 0 function 0
pchb0: vendor 0x1166 product 0x0009 (rev. 0x05)
pchb1 at pci0 dev 0 function 1
pchb1: vendor 0x1166 product 0x0009 (rev. 0x05)
pci1 at pchb1 bus 1
pci1: i/o space, memory space enabled, rd/line, rd/mult, wr/inv ok
wm0 at pci1 dev 2 function 0: Intel i82543GC 1000BASE-T Ethernet, rev. 2
wm0: interrupting at ioapic1 pin 5 (irq 15)
wm0: 64-bit 33MHz PCI bus
wm0: 64 word (6 address bits) MicroWire EEPROM
wm0: Ethernet address 00:03:47:25:42:14
makphy0 at wm0 phy 1: Marvell 88E1000 Gigabit PHY, rev. 2
makphy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, 1000baseT, 1000baseT-FDX, auto
puc0 at pci1 dev 4 function 0: Titan PCI-800L (com, com, com, com, com, com, com, com)
com2 at puc0 port 0: interrupting at ioapic1 pin 7 (irq 5)
com2: ns16550a, working fifo
com3 at puc0 port 1: interrupting at ioapic1 pin 7 (irq 5)
com3: ns16550a, working fifo
com4 at puc0 port 2: interrupting at ioapic1 pin 7 (irq 5)
com4: ns16550a, working fifo
com5 at puc0 port 3: interrupting at ioapic1 pin 7 (irq 5)
com5: ns16550a, working fifo
com6 at puc0 port 4: interrupting at ioapic1 pin 7 (irq 5)
com6: ns16550a, working fifo
com7 at puc0 port 5: interrupting at ioapic1 pin 7 (irq 5)
com7: ns16550a, working fifo
com8 at puc0 port 6: interrupting at ioapic1 pin 7 (irq 5)
com8: ns16550a, working fifo
com9 at puc0 port 7: interrupting at ioapic1 pin 7 (irq 5)
com9: ns16550a, working fifo
vendor 0x1000 product 0x0020 (SCSI mass storage, revision 0x01) at pci1 dev 5 function 0 not configured
vendor 0x1000 product 0x0020 (SCSI mass storage, revision 0x01) at pci1 dev 5 function 1 not configured
fxp0 at pci0 dev 2 function 0: i82559 Ethernet, rev 8
fxp0: interrupting at ioapic1 pin 4 (irq 10)
fxp0: Ethernet address 00:e0:18:04:e1:cd
inphy0 at fxp0 phy 1: i82555 10/100 media interface, rev. 4
inphy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
satalink0 at pci0 dev 6 function 0
satalink0: Silicon Image SATALink 3114 (rev. 0x02)
satalink0: 33MHz PCI bus
satalink0: bus-master DMA support present
satalink0: using ioapic1 pin 3 (irq 11) for native-PCI interrupt
atabus0 at satalink0 channel 0
atabus1 at satalink0 channel 1
atabus2 at satalink0 channel 2
atabus3 at satalink0 channel 3
vga0 at pci0 dev 7 function 0: vendor 0x1002 product 0x4752 (rev. 0x27)
wsdisplay0 at vga0 kbdmux 1: console (80x25, vt100 emulation)
wsmux1: connecting to wsdisplay0
pcib0 at pci0 dev 15 function 0
pcib0: vendor 0x1166 product 0x0200 (rev. 0x50)
rccide0 at pci0 dev 15 function 1
rccide0: ServerWorks OSB4 IDE Controller (rev. 0x00)
rccide0: bus-master DMA support present
rccide0: primary channel configured to compatibility mode
rccide0: primary channel interrupting at ioapic0 pin 14 (irq 14)
atabus4 at rccide0 channel 0
rccide0: secondary channel configured to compatibility mode
isa_intr_establish: no MP mapping found
failed to allocate interrupt slot for PIC pic0 pin 15
rccide0: no compatibility interrupt for use by secondary channel
ohci0 at pci0 dev 15 function 2: vendor 0x1166 product 0x0220 (rev. 0x04)
ohci0: interrupting at ioapic1 pin 6 (irq 9)
ohci0: OHCI version 1.0, legacy support
usb0 at ohci0: USB revision 1.0
uhub0 at usb0
uhub0: vendor 0x1166 OHCI root hub, class 9/0, rev 1.00/1.00, addr 1
uhub0: 4 ports with 4 removable, self powered
isa0 at pcib0
lpt0 at isa0 port 0x378-0x37b irq 7
com0 at isa0 port 0x3f8-0x3ff irq 4: ns16550a, working fifo
com1 at isa0 port 0x2f8-0x2ff irq 3: ns16550a, working fifo
pckbc0 at isa0 port 0x60-0x64
pckbd0 at pckbc0 (kbd slot)
pckbc0: using irq 1 for kbd slot
wskbd0 at pckbd0: console keyboard, using wsdisplay0
attimer0 at isa0 port 0x40-0x43: AT Timer
isapnp0 at isa0 port 0x279: ISA Plug 'n Play device support
npx0 at isa0 port 0xf0-0xff: using exception 16
fdc0 at isa0 port 0x3f0-0x3f7 irq 6 drq 2
isapnp0: no ISA Plug 'n Play devices found
ioapic0: enabling
ioapic1: enabling
fd0 at fdc0 drive 0: 1.44MB, 80 cyl, 2 head, 18 sec
Kernelized RAIDframe activated
satalink0: port 0: device present, speed: 1.5Gb/s
wd0 at atabus0 drive 0satalink0: port 1: device present, speed: 1.5Gb/s
: <WDC WD2000JD-00GBB0>
wd0: drive supports 16-sector PIO transfers, LBA48 addressing
wd0: 186 GB, 387621 cyl, 16 head, 63 sec, 512 bytes/sect x 390721968 sectors
wd0: 32-bit data port
wd0: drive supports PIO mode 4, DMA mode 2, Ultra-DMA mode 5 (Ultra/100)
wd0(satalink0:0:0): using PIO mode 4, Ultra-DMA mode 5 (Ultra/100) (using DMA)
wd1 at atabus1 drive 0: <WDC WD2000JD-00GBB0>
wd1: drive supports 16-sector PIO transfers, LBA48 addressing
wd1: 186 GB, 387621 cyl, 16 head, 63 sec, 512 bytes/sect x 390721968 sectors
wd1: 32-bit data port
wd1: drive supports PIO mode 4, DMA mode 2, Ultra-DMA mode 5 (Ultra/100)
wd1(satalink0:1:0): using PIO mode 4, Ultra-DMA mode 5 (Ultra/100) (using DMA)
atapibus0 at atabus4: 2 targets
cd0 at atapibus0 drive 0: <HL-DT-ST DVDRAM GSA-4040B, K2I38IJ5950, A300> cdrom removable
cd0: 32-bit data port
cd0: drive supports PIO mode 4, DMA mode 2, Ultra-DMA mode 2 (Ultra/33)
cd0(rccide0:0:0): using PIO mode 4, DMA mode 2, Ultra-DMA mode 2 (Ultra/33) (using DMA)
raid0: RAID Level 1
raid0: Components: /dev/wd0a /dev/wd1a
raid0: Total Sectors: 389671552 (190269 MB)
boot device: raid0
root on raid0a dumps on raid0b
root file system type: ffs
cpu1: CPU 0 running


Any hints?

Martin