Hardware Environment: HP Omnibook 5700CTX laptop Belkin F5D5010 Cardbus network card Software Environment: Kernel 2.6.8.1 (gcc 3.4.1), tested also with 2.6.3. yenta_socket pcmcia driver and 8139too network driver Problem Description: The module loads and works properly until I try to send data, for example ping. The following lines are printed to syslog repeatedly when trying to ping: NETDEV WATCHDOG: eth0: transmit timed out eth0: Transmit timeout, status 0c 0005 c07f media 00. eth0: Tx queue start entry 4 dirty entry 0. eth0: Tx descriptor 0 is 0008a03c. (queue head) eth0: Tx descriptor 1 is 0008a03c. eth0: Tx descriptor 2 is 0008a03c. eth0: Tx descriptor 3 is 0008a03c. eth0: link up, 100Mbps, full-duplex, lpa 0x45E1 I attach the full dmesg (with 8139too debugging enabled) and "ethtool -d eth0" output. The card works in Windows. It also works in my friend's laptop with the same linux kernel (using yenta_socket). If the problem seems to be in the pcmcia driver or something else, please change the bugzilla component accordingly. Steps to reproduce: Using Belkin F5D5010 on HP Omnibook 5700CTX.
Created attachment 3715 [details] dmesg with yenta_socket compiled in, 8139too as module with debugging
Created attachment 3716 [details] output of ethtool -d eth0
[dmesg output] PCI: IRQ 0 for device 0000:00:03.0 doesn't match PIRQ mask - try pci=usepirqmask [...] PCI: IRQ 0 for device 0000:00:03.1 doesn't match PIRQ mask - try pci=usepirqmask Does the suggestion above make a difference ? If not, the output of your /proc/interrupts and a lspci -vx after a few timeout messages may shed some light (wild guess: irq routing issue). -- Ueimor
That doesn't make a difference. After few timeouts: cat /proc/interrupts: CPU0 0: 875033 XT-PIC timer 1: 1047 XT-PIC i8042 2: 0 XT-PIC cascade 6: 172 XT-PIC floppy 10: 0 XT-PIC yenta, yenta, eth0 12: 58 XT-PIC i8042 NMI: 0 LOC: 0 ERR: 0 MIS: 0 lspci -vx: 00:00.0 Host bridge: OPTi Inc. 82C557 [Viper-M] (rev 14) Flags: bus master, medium devsel, latency 0 00: 45 10 57 c5 07 00 80 12 14 00 00 06 00 00 00 00 10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00:01.0 ISA bridge: OPTi Inc. 82C558 [Viper-M ISA+IDE] (rev 02) Flags: bus master, medium devsel, latency 0 00: 45 10 58 c5 07 00 80 82 02 00 01 06 00 00 00 00 10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00:02.0 VGA compatible controller: Chips and Technologies F65554 (rev c2) (prog- if 00 [VGA]) Flags: stepping, medium devsel Memory at c0000000 (32-bit, non-prefetchable) [size=16M] Expansion ROM at <unassigned> [disabled] [size=256K] 00: 2c 10 e4 00 c3 01 80 02 c2 00 00 03 00 00 00 00 10: 00 00 00 c0 00 00 00 00 00 00 00 00 00 00 00 00 20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00:03.0 CardBus bridge: Texas Instruments PCI1131 (rev 01) Flags: bus master, medium devsel, latency 168, IRQ 10 Memory at 10000000 (32-bit, non-prefetchable) [size=4K] Bus: primary=00, secondary=01, subordinate=04, sec-latency=176 Memory window 0: 10400000-107ff000 (prefetchable) Memory window 1: 10800000-10bff000 I/O window 0: 00004000-000040ff I/O window 1: 00004400-000044ff 16-bit legacy interface ports at 0001 00: 4c 10 15 ac 07 00 00 02 01 00 07 06 08 a8 82 00 10: 00 00 00 10 00 00 00 02 00 01 04 b0 00 00 40 10 20: 00 f0 7f 10 00 00 80 10 00 f0 bf 10 00 40 00 00 30: fc 40 00 00 00 44 00 00 fc 44 00 00 ff 01 00 05 40: 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00:03.1 CardBus bridge: Texas Instruments PCI1131 (rev 01) Flags: bus master, medium devsel, latency 168, IRQ 10 Memory at 10001000 (32-bit, non-prefetchable) [size=4K] Bus: primary=00, secondary=05, subordinate=08, sec-latency=176 Memory window 0: 10c00000-10fff000 (prefetchable) Memory window 1: 11000000-113ff000 I/O window 0: 00004800-000048ff I/O window 1: 00004c00-00004cff 16-bit legacy interface ports at 0001 00: 4c 10 15 ac 07 00 00 02 01 00 07 06 08 a8 82 00 10: 00 10 00 10 00 00 00 02 00 05 08 b0 00 00 c0 10 20: 00 f0 ff 10 00 00 00 11 00 f0 3f 11 00 48 00 00 30: fc 48 00 00 00 4c 00 00 fc 4c 00 00 ff 02 c0 05 40: 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00:14.0 IDE interface: OPTi Inc. 82C621 [Viper-M/N+] (rev 12) (prog-if 80 [Master]) Flags: bus master, medium devsel, latency 0 I/O ports at 3000 [size=16] 00: 45 10 21 c6 55 00 80 02 12 80 01 01 00 00 00 00 10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 20: 01 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01:00.0 Ethernet controller: Accton Technology Corporation SMC2-1211TX (rev 10) Subsystem: Accton Technology Corporation: Unknown device 2230 Flags: bus master, medium devsel, latency 64, IRQ 10 I/O ports at 4000 [size=256] Memory at 10800000 (32-bit, non-prefetchable) [size=512] Capabilities: [50] Power Management version 2 00: 13 11 11 12 07 00 90 02 10 00 00 02 00 40 00 00 10: 01 40 00 00 00 00 80 10 00 00 00 00 00 00 00 00 20: 00 00 00 00 00 00 00 00 02 01 00 00 13 11 30 22 30: 00 00 00 00 50 00 00 00 00 00 00 00 0a 01 20 40 My other pcmcia cards (all 16-bit) work well, when this is a 32-bit ("cardbus") card. It may be worth to mention that I have this laptop for only about 5 days anymore.
Can you #define DEBUG at the top of arch/i386/pci/pci.h and rebuild the whole thing so as to have more information in the kernel log ? -- Ueimor
Created attachment 3773 [details] Dmesg output with pci.h DEBUG defined Here's the dmesg output with pci.h debug defined also.
Created attachment 3777 [details] Gross hack for debug This patch may help checking if there is something really strange with irq routing (it will surely crash the laptop a few times but you said you will only keep it for the next 4 days, so...). Please keep the DEBUG option in if you try it. You may want to change the value 9 with... well, any 0..16 value (try the values which are not used by a different device first). Keep the second slot free when the network adapter is in. No warranty.
Can you send lspci -vx + dmesg with pci.h DEBUG defined when a correctly working 16bit card is inserted in your system ?
Created attachment 3778 [details] dmesg with working 16bit card (pci.h debug defined) Well, here is the working card's dmesg and lspci -vx: 00:00.0 Host bridge: OPTi Inc. 82C557 [Viper-M] (rev 14) Flags: bus master, medium devsel, latency 0 00: 45 10 57 c5 07 00 80 02 14 00 00 06 00 00 00 00 10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00:01.0 ISA bridge: OPTi Inc. 82C558 [Viper-M ISA+IDE] (rev 02) Flags: bus master, medium devsel, latency 0 00: 45 10 58 c5 07 00 80 82 02 00 01 06 00 00 00 00 10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00:02.0 VGA compatible controller: Chips and Technologies F65554 (rev c2) (prog-if 00 [VGA]) Flags: stepping, medium devsel Memory at c0000000 (32-bit, non-prefetchable) [size=16M] Expansion ROM at <unassigned> [disabled] [size=256K] 00: 2c 10 e4 00 c3 01 80 02 c2 00 00 03 00 00 00 00 10: 00 00 00 c0 00 00 00 00 00 00 00 00 00 00 00 00 20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00:03.0 CardBus bridge: Texas Instruments PCI1131 (rev 01) Flags: bus master, medium devsel, latency 168, IRQ 10 Memory at 10000000 (32-bit, non-prefetchable) [size=4K] Bus: primary=00, secondary=01, subordinate=04, sec-latency=176 Memory window 0: 10400000-107ff000 (prefetchable) Memory window 1: 10800000-10bff000 I/O window 0: 00004000-000040ff I/O window 1: 00004400-000044ff 16-bit legacy interface ports at 0001 00: 4c 10 15 ac 07 00 00 02 01 00 07 06 08 a8 82 00 10: 00 00 00 10 00 00 00 02 00 01 04 b0 00 00 40 10 20: 00 f0 7f 10 00 00 80 10 00 f0 bf 10 00 40 00 00 30: fc 40 00 00 00 44 00 00 fc 44 00 00 ff 01 c0 05 40: 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00:03.1 CardBus bridge: Texas Instruments PCI1131 (rev 01) Flags: bus master, medium devsel, latency 168, IRQ 10 Memory at 10001000 (32-bit, non-prefetchable) [size=4K] Bus: primary=00, secondary=05, subordinate=08, sec-latency=176 Memory window 0: 10c00000-10fff000 (prefetchable) Memory window 1: 11000000-113ff000 I/O window 0: 00004800-000048ff I/O window 1: 00004c00-00004cff 16-bit legacy interface ports at 0001 00: 4c 10 15 ac 07 00 00 02 01 00 07 06 08 a8 82 00 10: 00 10 00 10 00 00 00 02 00 05 08 b0 00 00 c0 10 20: 00 f0 ff 10 00 00 00 11 00 f0 3f 11 00 48 00 00 30: fc 48 00 00 00 4c 00 00 fc 4c 00 00 ff 02 c0 05 40: 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00:14.0 IDE interface: OPTi Inc. 82C621 [Viper-M/N+] (rev 12) (prog-if 80 [Master]) Flags: bus master, medium devsel, latency 0 I/O ports at 3000 [size=16] 00: 45 10 21 c6 55 00 80 02 12 80 01 01 00 00 00 00 10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 20: 01 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 16bit cards don't seem to be showed by lspci (because they aren't pci-devices). The irq for it (3) gets defined by pcmcia-cs software configuration, and works with any free irq available. I will now try your patch.
I've tried the patch with numbers 3, 9, 10, 11, all lock up the system in kernel loading. If we are searching for the CardBus IRQ, according to notebook manual it's 10. And if I understood right that's what the kernel originally guessed. For me it looks like the problem is in finding the IRQ for the ethernet controller when loading the driver: PCI: Enabling device 0000:01:00.0 (0000 -> 0003) IRQ for 0000:01:00.0:0 -> not found in routing table Shouldn't this assign the irq 10 to the ethernet controller, too?
Switched the component, note that this bug doesn't have any testers ATM.
The message: > IRQ for 0000:01:00.0:0 -> not found in routing table just means that the device wasn't found in the routing table. However, your /proc/interrupts output indicates that the IRQ was correctly assigned: > 10: 0 XT-PIC yenta, yenta, eth0 but it has a count of '0' which means interrupts from eth0 and the socket itself are not getting through (I bet the '0' doesn't increment if you plug/ unplug the card.) This probably means that there's some magic for your laptop to route this interrupt to IRQ10 which we don't know about. Or it may be that the Cardbus bridge is incorrectly configured. It may be useful to search the 'net for the 'cbdump' program and provide the output.
Is this bug still present in recent kernels (i.e. 2.6.11.12, 2.6.12-rc6)?
No new test results; please re-open if bug is still present in 2.6.13-rc3 or later.