Subject: Cardbus/PCI IRQ Problem.
To: None <tech-kern@netbsd.org>
From: Hakan Olsson <ho@crt.se>
List: tech-kern
Date: 07/05/2000 17:35:54
Hi.

I'm a bit unsure if this is the correct forum for this, but anyway.. here
goes.

I have problems getting a PCI-Cardbus brigde (cbb0/1) configured correctly
under current kernels (trying to get the Wavelan card working). 

Running on a 1.4U kernel from March, I get this in the dmesg:

BIOS32 rev. 0 found at 0xfda74
PCI BIOS rev. 2.1 found at 0xfda95
pcibios: config mechanism [1][x], special cycles [x][x], last bus 1
PCI IRQ Routing Table rev. 1.0 found at 0xf30f0, size 192 bytes (10
entries)
PCI Interrupt Router at 000:31:0 (Intel 82371FB PCI-to-ISA Bridge (PIIX))
--------------------------------------------
  device vendor product pin PIRQ   IRQ stage
--------------------------------------------
000:01:0 0x8086 0x7121  A   0x00   11  0
000:31:2 0x8086 0x2412  D   0x03   09  0
000:31:3 0x8086 0x2413  B   0x01   10  0
001:01:0 0x8086 0x1229  A   0x03   09  0
001:07:0 0x1274 0x1371  A   0x02   11  0
001:10:0 0x104c 0xac15  A   0x02   11  0
001:10:1 0x104c 0xac15  B   0x03   09  0
001:11:0 0x1244 0x0a00  A   0x03   09  0
--------------------------------------------
PCI bridge 1: primary 1, secondary 2, subordinate 2
PCI bridge 2: primary 1, secondary 3, subordinate 3
PCI bridge 0: primary 0, secondary 1, subordinate 3
PCI bus #3 is the last bus
mainbus0 (root)
pci0 at mainbus0 bus 0: configuration mode 1
pci0: i/o space, memory space enabled
pchb0 at pci0 dev 0 function 0
pchb0: Intel 82810 Memory Controller Hub (rev. 0x02)
vga1 at pci0 dev 1 function 0: Intel 82810 Graphics Controller (rev. 0x02)
wsdisplay0 at vga1: console (80x25, vt100 emulation)
ppb0 at pci0 dev 30 function 0: Intel 82801AA Hub-to-PCI Bridge
(rev. 0x02)
pci1 at ppb0 bus 1
pci1: i/o space, memory space enabled
fxp0 at pci1 dev 1 function 0: Intel i82557 Ethernet, rev 8
fxp0: interrupting at irq 9
fxp0: Ethernet address 00:90:27:df:98:82, 10/100 Mb/s
inphy0 at fxp0 phy 1: i82555 10/100 media interface, rev. 4
inphy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
fxp0: supplying EUI64: 00:90:27:ff:fe:df:98:82
eap0 at pci1 dev 7 function 0: Ensoniq AudioPCI 97 (rev. 0x06)
eap0: interrupting at irq 11
eap0: Cirrus Logic CS4297 codec; headphone, 18 bit DAC, 18 bit ADC, no 3D
stereo
audio0 at eap0: full duplex, mmap, independent
midi0 at eap0: AudioPCI MIDI UART
cbb0 at pci1 dev 10 function 0: Texas Instruments PCI1131 PCI-CardBus
Bridge (rev. 0x01)
cbb1 at pci1 dev 10 function 1: Texas Instruments PCI1131 PCI-CardBus
Bridge (rev. 0x01)
isic0 at pci1 dev 11 function 0: Fritz!Card
isic0: ISAC 2085 Version A1/A2 or 2086/2186 Version 1.1 (IOM-2)
isic0: interrupting at irq 9
cbb0: interrupting at irq 11
cbb0: cacheline 0x0 lattimer 0x20
cbb0: bhlc 0x821000 lscp 0x20020201
cardslot0 at cbb0 slot 0 flags 0
cardbus0 at cardslot0: bus 2 device 0 cacheline 0x0, lattimer 0x20
pcmcia0 at cardslot0
cbb1: interrupting at irq 9
cbb1: cacheline 0x0 lattimer 0x20
cbb1: bhlc 0x821000 lscp 0x20030301
cardslot1 at cbb1 slot 1 flags 0
cardbus1 at cardslot1: bus 3 device 0 cacheline 0x0, lattimer 0x20
pcmcia1 at cardslot1
... <stuff deleted>
wi0 at pcmcia0 function 0
wi0: address 00:60:1d:22:c3:d9


Same system, on a current kernel (either 1.4Z or 1.5B) - I only get:

BIOS32 rev. 0 found at 0xfda74
PCI BIOS rev. 2.1 found at 0xfda95
pcibios: config mechanism [1][x], special cycles [x][x], last bus 1
PCI IRQ Routing Table rev. 1.0 found at 0xf30f0, size 192 bytes (10
entries)
PCI Interrupt Router at 000:31:0 (Intel 82371FB PCI-to-ISA Bridge (PIIX))
--------------------------------------------
  device vendor product pin PIRQ   IRQ stage
--------------------------------------------
000:01:0 0x8086 0x7121  A   0x00   11  0
000:31:2 0x8086 0x2412  D   0x03   09  0
000:31:3 0x8086 0x2413  B   0x01   10  0
--------------------------------------------
PCI bridge 1: primary 1, secondary 2, subordinate 2
PCI bridge 2: primary 1, secondary 3, subordinate 3
PCI bridge 0: primary 0, secondary 1, subordinate 3
PCI bus #3 is the last bus
mainbus0 (root)
pci0 at mainbus0 bus 0: configuration mode 1
pci0: i/o space, memory space enabled
pchb0 at pci0 dev 0 function 0
pchb0: Intel 82810 Memory Controller Hub (rev. 0x02)
vga1 at pci0 dev 1 function 0: Intel 82810 Graphics Controller (rev. 0x02)
wsdisplay0 at vga1: console (80x25, vt100 emulation)
ppb0 at pci0 dev 30 function 0: Intel 82801AA Hub-to-PCI Bridge
(rev. 0x02)
pci1 at ppb0 bus 1
pci1: i/o space, memory space enabled
fxp0 at pci1 dev 1 function 0: Intel i82557 Ethernet, rev 8
fxp0: interrupting at irq 9
fxp0: Ethernet address 00:90:27:df:98:82, 10/100 Mb/s
inphy0 at fxp0 phy 1: i82555 10/100 media interface, rev. 4
inphy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
eap0 at pci1 dev 7 function 0: Ensoniq AudioPCI 97 ES1373B (rev. 0x06)
eap0: interrupting at irq 11
eap0: Crystal CS4297 codec; headphone, 18 bit DAC, 18 bit ADC, no 3D
stereo
audio0 at eap0: full duplex, mmap, independent
midi0 at eap0: AudioPCI MIDI UART
cbb0 at pci1 dev 10 function 0: Texas Instruments PCI1131 PCI-CardBus
Bridge (re
v. 0x01)
cbb0: NOT USED because of unconfigured interrupt
cbb1 at pci1 dev 10 function 1: Texas Instruments PCI1131 PCI-CardBus
Bridge (re
v. 0x01)
cbb1: NOT USED because of unconfigured interrupt
isic0 at pci1 dev 11 function 0: Fritz!Card
isic0: ISAC 2085 Version A1/A2 or 2086/2186 Version 1.1 (IOM-2)
isic0: interrupting at irq 9
... <stuff deleted, no wi0 found/configured>


I have tried (I think) all combinations of the PCIBIOS,
PCIBIOS_INTR_FIXUP, etc options, starting with the same options I used for
the 1.4U kernel.

FWIW, all PCI cards in the system (an Intel fxp-card, an eap0 Ensoniq
audio card and an AVM Fritz!Card (ISDN) work fine on all kernels.

Any hints or suggestions? I've browsed what FAQs I could find, as well as
the "cvs log" messages on the relevant files under sys/arch/i386, but
sadly not gotten any wiser.

TIA,
  Håkan.

--
Håkan Olsson <ho@crt.se>        (+46) 708 437 337     Carlstedt Research
Unix, Networking, Security      (+46) 31 701 4264        & Technology AB