devp-pccard cannot map CardBus IRQ for TI1131 CardBus Contro

OS VERSION: QNXRTP 6.1.0A

SYNOPSYS:
Cardbus Ethernet card (Planex FNW-3602-TX, actually AboCom FE2500MX OEM)
won’t work on Dell Latitude XPi CD 166ST
(using Texas Instruments PCI1131 CardBus Controller)

These two chips are supposed to be supported but won’t work.

The driver does mount by
io-net -d tulip -p tcpip
but “nicinfo” output shows zero for Rxd values—
suggesting IRQ isn’t routed properly.

Someone had been pissed on the same configuration before
URL:http://groups.google.com/groups?threadm=9tf34q%243ad%241%40inn.qnx.com

WORKAROUND:
After trying hopelessly different things, I finally found out that

  1. (slay enum-pccard; slay devp-pccard; slay io-net)
  2. devp-pccard -w8,8
  3. Plug-in a PCMCIA network card
    (I’m using I-O DATA PCLA/TE; something ne2000; works nicely in RTP
    after adding a enumurator)
    AND above FE2500, into the two slots.
    (I heard TI1131 controller can’t mix PCMCIA and CardBus, so this
    config should be illegal)
  4. (confirm by “pin” that both cards are recognized)
  5. Now unplug both of them and re-plug FE2500 into the slot
    which PCLA/TE PCMCIA card was in.
  6. io-net -d tulip [verbose=10] -p tcpip
    verbose=10 will still bark the media detect is failing, but
    “nicinfo” output now correctly countsup the receiving
    packets. “netmanager” etc now works.

ANALYSIS:
Now the CardBus card seems to work when PCMCIA card was previously plugged
in the same slot, current “devp-pccard” seems to lack someting in
CardBus-only initialization procedure. Passing through PCMCIA codepath
seems to correct the chip initialization.

Just hot-swapping PCLA/TE with FE2500 didn’t work; both card should be
plugged-in simultaneously for a period.


kabe

– diagnostics atttached below:

***** pci -vvvv *****
PCI version = 2.10

Class = Bridge (CardBus)
Vendor ID = 104ch, Texas Instruments
Device ID = ac15h, PCI1131 Dual Socket PCI CardBus Controller
PCI index = 0h
Class Codes = 060700h
Revision ID = 1h
Bus number = 0
Device number = 9
Function num = 0
Status Reg = 200h
Command Reg = 7h
I/O space access enabled
Memory space access enabled
Bus Master enabled
Special Cycle operations ignored
Memory Write and Invalidate disabled
Palette Snooping disabled
Parity Checking disabled
Data/Address stepping disabled
SERR# driver disabled
Fast back-to-back transactions to different agents disabled
Header type = 2h Multi-function
BIST = 0h Build-in-self-test not supported
Latency Timer = 20h
Cache Line Size= 0h
ExCA Base Address = ffeff000h
Capabilities Pointer = ffh
Secondary Status = ffffh
Primary Bus Number = 0
Secondary Bus Number = 1
Subordinate Bus Number = 1
Secondary Latency Timer = 20h
Memory Base 0 = 0h
Memory Limit 0 = 0h
Memory Base 1 = 0h
Memory Limit 1 = 0h
I/O Base 0 = 0h
I/O Limit 0 = 0h
I/O Base 1 = 0h
I/O Limit 1 = 0h
PCI Int Pin = 1
PCI Int Pin = INT A
Interrupt line = 9
Bridge Control = 740h
Subsystem Vendor ID = 0h
Subsystem ID = 0h
Legacy Mode Base Address = 3e0h
System Control = 243024h
Retry Status = 0h
Card Control = 31h
Device Control = 74h
Buffer Control = 0h
Socket DMA Register 0 = 0h
Socket DMA Register 1 = 0h
Device Dependent Registers:
0x40: 00 00 00 00 e1 03 00 00 00 00 00 00 00 00 00 00
0x50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x80: 24 30 24 00 00 00 00 00 00 00 00 00 00 00 00 00
0x90: 00 31 74 00 00 00 00 00 00 00 00 00 00 00 00 00
0xA0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0xB0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0xC0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0xD0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0xE0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0xF0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00


Class = Bridge (CardBus)
Vendor ID = 104ch, Texas Instruments
Device ID = ac15h, PCI1131 Dual Socket PCI CardBus Controller
PCI index = 1h
Class Codes = 060700h
Revision ID = 1h
Bus number = 0
Device number = 9
Function num = 1
Status Reg = 200h
Command Reg = 7h
I/O space access enabled
Memory space access enabled
Bus Master enabled
Special Cycle operations ignored
Memory Write and Invalidate disabled
Palette Snooping disabled
Parity Checking disabled
Data/Address stepping disabled
SERR# driver disabled
Fast back-to-back transactions to different agents disabled
Header type = 2h Multi-function
BIST = 0h Build-in-self-test not supported
Latency Timer = 20h
Cache Line Size= 0h
ExCA Base Address = ffefe000h
Capabilities Pointer = ffh
Secondary Status = ffffh
Primary Bus Number = 0
Secondary Bus Number = 2
Subordinate Bus Number = 2
Secondary Latency Timer = 20h
Memory Base 0 = ffec0000h
Memory Limit 0 = ffee0000h
Memory Base 1 = 0h
Memory Limit 1 = 0h
I/O Base 0 = fd00h
I/O Limit 0 = fdfch
I/O Base 1 = 0h
I/O Limit 1 = 0h
PCI Int Pin = 2
PCI Int Pin = INT B
Interrupt line = 9
Bridge Control = 700h
Subsystem Vendor ID = 0h
Subsystem ID = 0h
Legacy Mode Base Address = 3e0h
System Control = 241024h
Retry Status = 0h
Card Control = 31h
Device Control = 74h
Buffer Control = 0h
Socket DMA Register 0 = 0h
Socket DMA Register 1 = 0h
Device Dependent Registers:
0x40: 00 00 00 00 e1 03 00 00 00 00 00 00 00 00 00 00
0x50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x80: 24 10 24 00 00 00 00 00 00 00 00 00 00 00 00 00
0x90: 00 31 74 00 00 00 00 00 00 00 00 00 00 00 00 00
0xA0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0xB0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0xC0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0xD0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0xE0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0xF0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00


***** pci -vvvv of the Planex FNW-3602-TX CardBus FastEthernet
***** (AboCom FE2500MX equivalent) after mounted by devp-pccard

Class = Network (Ethernet)
Vendor ID = 14eah, Unknown
Device ID = ab08h, Unknown Unknown
PCI index = 0h
Class Codes = 020000h
Revision ID = 11h
Bus number = 2
Device number = 0
Function num = 0
Status Reg = 290h
Command Reg = 7h
I/O space access enabled
Memory space access enabled
Bus Master enabled
Special Cycle operations ignored
Memory Write and Invalidate disabled
Palette Snooping disabled
Parity Checking disabled
Data/Address stepping disabled
SERR# driver disabled
Fast back-to-back transactions to different agents disabled
Header type = 0h Single-function
BIST = 0h Build-in-self-test not supported
Latency Timer = 20h
Cache Line Size= 0h
PCI IO Address = fd00h length 256 enabled
PCI Mem Address = ffee0000h 32bit length 1024 enabled
CardBus CIS Pointer = 202h
Subsystem Vendor ID = 14eah
Subsystem ID = ab08h
PCI Expansion ROM = ffec0000h length 131072 disabled
Max Lat = 255ns
Min Gnt = 255ns
PCI Int Pin = INT A
Interrupt line = 9
Capabilities Pointer = c0h
Capability ID = 1h
Capabilities = fe02h - 0h
Device Dependent Registers:
0x40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x80: 17 13 81 09 00 00 00 00 00 00 00 00 00 00 00 00
0x90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0xA0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0xB0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0xC0: 01 00 02 fe 00 00 00 00 00 00 00 00 00 00 00 00
0xD0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0xE0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0xF0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00


***** enum-pci of whole things (last 3 lines are the TI1131,TI1131,FE2500)
#1429536 PCI version = 2.10
B1429536 bus=pci ven=1066 dev=0001 class=06 subclass=00 progif=00 busnum=0 device=0 function=0 index=0 irq=0
B1429536 bus=pci ven=1066 dev=8002 class=06 subclass=01 progif=00 busnum=0 device=6 function=0 index=0 irq=0
D1429536 bus=pci ven=10c8 dev=0003 class=03 subclass=00 progif=00 busnum=0 device=7 function=0 index=0 mem=30000000 pin=A
D1429536 bus=pci ven=1095 dev=0643 class=01 subclass=01 progif=80 busnum=0 device=8 function=0 index=0 ioport=fe00 irq=14 pin=A
B1429536 bus=pci ven=104c dev=ac15 class=06 subclass=07 progif=00 busnum=0 device=9 function=0 index=0 irq=9 pin=A
B1429536 bus=pci ven=104c dev=ac15 class=06 subclass=07 progif=00 busnum=0 device=9 function=1 index=1 irq=9 pin=B
D1429536 bus=pci ven=14ea dev=ab08 class=02 subclass=00 progif=00 busnum=2 device=0 function=0 index=0 subven=14ea subsys=ab08 ioport=fd00 mem=ffee0000 rom=ffec0000 irq=9 pin=A
F1429536


****** “pin” output of the intermediary PCMCIA ne2000 compat I-O DATA PCLA/TE (Sock 1)
****** and Planex FNW-3602-TX (FE2500 oem) (Sock 2)
****** these output looks sane enough

Sock Func Type Flags PID Base Size IRQ
1 0 Network C—I-±-------- None 0x200 32 3
1 Empty ----MF---------- None
2 0 Network C—I-±-----SAW None 0xfd00 256 9
0xffee0000 1024
2 Empty ----MF---------- None


****** “pin cis” of the Planex FNW-3602-TX (FE2500 oem)
****** (note Manufacturer ID == AboCom FE2500)

Socket : 2 - Function : 0
Link Target : ‘CIS’
Manufacturer ID : 0x13d1 0xab02
PC Card function : Network LAN Adapter
POST : 0x1
Tuple 0x22 link=2 : 01 02
Tuple 0x22 link=5 : 02 80 96 98 00
Tuple 0x22 link=5 : 02 00 e1 f5 05
Tuple 0x22 link=2 : 03 01
Card tuple version : 5.00
Manufacturer : CardBus
Name of Product : Fast Ethernet
Add’nl info (lot #) : V1.0
Add’nl info (programming):
Tuple 0x04 link=6 : 03 01 2a 00 00 00
Tuple 0x07 link=6 : 11 00 00 01 00 00
Tuple 0x07 link=6 : 02 00 00 01 00 00
Tuple 0x07 link=6 : 07 00 00 02 00 00
Tuple 0x05 link=10 : 41 39 01 b5 1e 02 b0 fc
: fe 84
Link Target : ‘CIS’
Manufacturer ID : 0x13d1 0xab02
PC Card function : Network LAN Adapter
POST : 0x1
Tuple 0x22 link=2 : 01 02
Tuple 0x22 link=5 : 02 80 96 98 00
Tuple 0x22 link=5 : 02 00 e1 f5 05
Tuple 0x22 link=2 : 03 01
Card tuple version : 5.00
Manufacturer : CardBus
Name of Product : Fast Ethernet
Add’nl info (lot #) : V1.0
Add’nl info (programming):
Tuple 0x04 link=6 : 03 01 2a 00 00 00
Tuple 0x07 link=6 : 11 00 00 01 00 00
Tuple 0x07 link=6 : 02 00 00 01 00 00
Tuple 0x07 link=6 : 07 00 00 02 00 00
Tuple 0x05 link=10 : 41 39 01 b5 1e 02 b0 fc
: fe 84

***** relevant? error observed in “sloginfo”
Apr 11 07:24:26 3 17 0 Range check failed (IO) - Dev ab08 - Vend 14ea - Class 20000 - Addr 0 - Size 100
Apr 11 07:24:26 3 17 0 Range check failed (MEM) - Dev ab08 - Vend 14ea - Class 20000 - Addr 0 - Size 400


***** diag from “io-net -d tulip-2500 verbose=10 -p tcpip”
***** (This devn-tulip.so is patched to detect vid=0x14ea,did=0xab08 as
***** chipset=2500; cuz for unknown reason these options won’t work)
tulip CLI Arguments: verbose=10 multicast=true
tulip: scanning for Vendor=0x1011 Device=0x0002
tulip: scanning for Vendor=0x1011 Device=0x0008
tulip: scanning for Vendor=0x1011 Device=0x0009
tulip: scanning for Vendor=0x1011 Device=0x0014
tulip: scanning for Vendor=0x1011 Device=0x0019
tulip: scanning for Vendor=0x8086 Device=0x0039
tulip: scanning for Vendor=0x11ad Device=0x0002
tulip: scanning for Vendor=0x11ad Device=0x0168
tulip: scanning for Vendor=0x1317 Device=0x0985
tulip: scanning for Vendor=0x1317 Device=0x0981
tulip: scanning for Vendor=0x10d9 Device=0x0531
tulip: scanning for Vendor=0x115d Device=0x0003
tulip: scanning for Vendor=0x14ea Device=0xab08
tulip: RegisterDeviceInstance(nic=0x8056a54, ion=0x8055780)
tulip Hardware Config: Vendor=0x14ea Device=0xab08 chipset=2500
tulip: host memory, rx/tx Packets & Descriptors allocated rx=32 tx=20

Attempting MII Detection

LinkSense : Failure
AutoDetection Completed
Deefatult Media Selected : MII
tulip_devctl(hdl 0x8056a54, nic 0x8056a54, dcmd 1184629771)
Media Selected
: MII No Link
Tulip: Abocom FE2500
Vendor … 0x14ea
Device … 0xab08
Revision … 0x0
I/O port base … 0xfd00
Interrupt … 0x9
MAC address … 0090cc 199e77
tulip: advertise to io-net Vendor 0x14ea Device 0xab08 Chipset 2500
tulip_devctl(hdl 0x8056a54, nic 0x8056a54, dcmd 1184629771)
tulip: advertise to io-net Vendor 0x14ea Device 0xab08 Chipset 2500

**** failing to detect MII doesn’t seem to say it’s not usable;
**** confirm with “nicinfo” Rxd values if it’s really manfunctioning