Messages in this thread Patch in this message | | | Date | Sun, 15 Oct 2000 18:25:34 -0700 (PDT) | From | "J. S. Connell" <> | Subject | Problems with Tulip driver in 2.2 and 2.4 |
| |
Any time I disconnect and then reconnect the ethernet cable from my Netgear FA310TX cards, the card appears to not notice and doesn't reestablish the link. Under 2.2.17pre4, the link light comes on, but until I do ifconfig ethX down; ifconfig ethX up, the kernel ignores any traffic on that interface (tcpdump on both an affected machine and a nonaffected machine show the kernel ignoring all incoming traffic, and not sending any traffic out.) Under 2.4.0-test9-pre7, however, when I reconnect the ethernet cable, the link light does _not_ come on, and nothing short of a reboot will bring it back up.
I'm currently stuck at 2.2.17pre4 because I need André Hedrick's IDE patch, which won't apply (except manually) to later 2.2 kernels, and my attempts to apply the patch manually have ended in kernels that fail during boot.
In this system, eth0 is connected to a 10/100 Asanté FriendlyNet 8-port switch, and eth1 is connected to an RCA model DCM205 "digital|BROADBAND" cablemodem.
Bootup messages from 2.4.0-test9-pre7: Linux Tulip driver version 0.9.10 (September 6, 2000) eth0: Lite-On 82c168 PNIC rev 33 at 0xe000, 00:A0:CC:3C:A8:D4, IRQ 11. eth0: MII transceiver #1 config 1000 status 782d advertising 01e1. eth1: Lite-On 82c168 PNIC rev 33 at 0xee00, 00:A0:CC:3C:A8:DB, IRQ 10. eth1: MII transceiver #1 config 1000 status 782d advertising 01e1.
lspci -vv output: 00:0f.0 Ethernet controller: Lite-On Communications Inc LNE100TX (rev 21) Subsystem: Netgear FA310TX Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- Status: Cap- 66Mhz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- Latency: 64 Interrupt: pin A routed to IRQ 11 Region 0: I/O ports at e000 [size=256] Region 1: Memory at febfdf00 (32-bit, non-prefetchable) [size=256] Expansion ROM at feb40000 [disabled] [size=256K]
00:10.0 Ethernet controller: Lite-On Communications Inc LNE100TX (rev 21) Subsystem: Netgear FA310TX Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- Status: Cap- 66Mhz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- Latency: 64 Interrupt: pin A routed to IRQ 10 Region 0: I/O ports at ee00 [size=256] Region 1: Memory at febfde00 (32-bit, non-prefetchable) [size=256] Expansion ROM at feb00000 [disabled] [size=256K]
tulip-diag -mm output, when happy, from 2.4.0-test9-pre7: tulip-diag.c:v2.04 9/26/2000 Donald Becker (becker@scyld.com) http://www.scyld.com/diag/index.html Index #1: Found a Lite-On 82c168 PNIC adapter at 0xe000. Port selection is MII, half-duplex. Transmit started, Receive started, half-duplex. The Rx process state is 'Waiting for packets'. The Tx process state is 'Idle'. The transmit threshold is 128. MII PHY found at address 1, status 0x782d. MII PHY #1 transceiver registers: 3000 782d 7810 0000 0001 45e1 0001 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 4000 0000 38c8 0010 0000 0002 0001 0000 0000 0000 0000 0000 0000 0000. Basic mode control register 0x3000: Auto-negotiation enabled. Basic mode status register 0x782d ... 782d. Link status: established. Capable of 100baseTx-FD 100baseTx 10baseT-FD 10baseT. Able to perform Auto-negotiation, negotiation complete. Vendor ID is 1e:04:00:--:--:--, model 0 rev. 0. Vendor/Part: Level One LXT970. I'm advertising 0001: Advertising no additional info pages. IEEE 802.3 CSMA/CD protocol. Link partner capability is 45e1: Flow-control 100baseTx-FD 100baseTx 10baseT-FD 10baseT. Negotiation completed. Index #2: Found a Lite-On 82c168 PNIC adapter at 0xee00. Port selection is MII, half-duplex. Transmit started, Receive started, half-duplex. The Rx process state is 'Waiting for packets'. The Tx process state is 'Idle'. The transmit threshold is 128. MII PHY found at address 1, status 0x782d. MII PHY #1 transceiver registers: 3000 782d 7810 0000 0001 41e1 0001 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 4000 0000 38c8 0010 0000 0002 0001 0000 0000 0000 0000 0000 0000 0000. Basic mode control register 0x3000: Auto-negotiation enabled. Basic mode status register 0x782d ... 782d. Link status: established. Capable of 100baseTx-FD 100baseTx 10baseT-FD 10baseT. Able to perform Auto-negotiation, negotiation complete. Vendor ID is 1e:04:00:--:--:--, model 0 rev. 0. Vendor/Part: Level One LXT970. I'm advertising 0001: Advertising no additional info pages. IEEE 802.3 CSMA/CD protocol. Link partner capability is 41e1: 100baseTx-FD 100baseTx 10baseT-FD 10baseT. Negotiation completed.
When unhappy, the basic mode status register contains the value 0x7809, the link status is "not established", and negotiation is listed as not complete. Attempts to kick the card back into operation with -r, -R, -A, or -F achieve nothing.
Bootup messages from 2.2.17pre4: tulip.c:v0.91g-ppc 7/16/99 becker@cesdis.gsfc.nasa.gov eth0: Lite-On 82c168 PNIC rev 33 at 0xe000, 00:A0:CC:3C:A8:D4, IRQ 11. eth0: MII transceiver #1 config 1000 status 782d advertising 01e1. eth1: Lite-On 82c168 PNIC rev 33 at 0xee00, 00:A0:CC:3C:A8:DB, IRQ 10. eth1: MII transceiver #1 config 1000 status 782d advertising 01e1. < a few seconds later > eth0: Setting full-duplex based on MII#1 link partner capability of 45e1. eth1: Setting full-duplex based on MII#1 link partner capability of 41e1.
lspci -vv output, in 2.2.17pre4: Identical with that from 2.4.0-test9-pre7, except the [size=XXX] information isn't printed.
tulip-diag output, when happy, from 2.2.17pre4: tulip-diag.c:v2.04 9/26/2000 Donald Becker (becker@scyld.com) http://www.scyld.com/diag/index.html Index #1: Found a Lite-On 82c168 PNIC adapter at 0xe000. Port selection is MII, full-duplex. Transmit started, Receive started, full-duplex. The Rx process state is 'Waiting for packets'. The Tx process state is 'Idle'. The transmit threshold is 1024. MII PHY found at address 1, status 0x782d. MII PHY #1 transceiver registers: 1000 782d 7810 0000 01e1 45e1 0001 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 4000 0000 38c8 0010 0000 0002 0001 0000 0000 0000 0000 0000 0000 0000. Basic mode control register 0x1000: Auto-negotiation enabled. Basic mode status register 0x782d ... 782d. Link status: established. Capable of 100baseTx-FD 100baseTx 10baseT-FD 10baseT. Able to perform Auto-negotiation, negotiation complete. Vendor ID is 1e:04:00:--:--:--, model 0 rev. 0. Vendor/Part: Level One LXT970. I'm advertising 01e1: 100baseTx-FD 100baseTx 10baseT-FD 10baseT Advertising no additional info pages. IEEE 802.3 CSMA/CD protocol. Link partner capability is 45e1: Flow-control 100baseTx-FD 100baseTx 10baseT-FD 10baseT. Negotiation completed. Index #2: Found a Lite-On 82c168 PNIC adapter at 0xee00. Port selection is MII, full-duplex. Transmit started, Receive started, full-duplex. The Rx process state is 'Waiting for packets'. The Tx process state is 'Idle'. The transmit threshold is 128. MII PHY found at address 1, status 0x782d. MII PHY #1 transceiver registers: 1000 782d 7810 0000 01e1 41e1 0001 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 4000 0000 38c8 0010 0000 0002 0001 0000 0000 0000 0000 0000 0000 0000. Basic mode control register 0x1000: Auto-negotiation enabled. Basic mode status register 0x782d ... 782d. Link status: established. Capable of 100baseTx-FD 100baseTx 10baseT-FD 10baseT. Able to perform Auto-negotiation, negotiation complete. Vendor ID is 1e:04:00:--:--:--, model 0 rev. 0. Vendor/Part: Level One LXT970. I'm advertising 01e1: 100baseTx-FD 100baseTx 10baseT-FD 10baseT Advertising no additional info pages. IEEE 802.3 CSMA/CD protocol. Link partner capability is 41e1: 100baseTx-FD 100baseTx 10baseT-FD 10baseT. Negotiation completed.
Here is a diff of the above output from when the tulip driver is in a "hung" state: --- tdout-2.2 Sun Oct 15 18:15:28 2000 +++ tdout-2.2-bad Sun Oct 15 18:17:27 2000 @@ -5,12 +5,12 @@ Transmit started, Receive started, full-duplex. The Rx process state is 'Waiting for packets'. The Tx process state is 'Idle'. - The transmit threshold is 1024. - MII PHY found at address 1, status 0x782d. + The transmit threshold is 72. + MII PHY found at address 1, status 0x7829. MII PHY #1 transceiver registers: - 1000 782d 7810 0000 01e1 45e1 0001 0000 + 1000 782d 7810 0000 01e1 45e1 0003 0000 0000 0000 0000 0000 0000 0000 0000 0000 - 0000 0000 4000 0000 38c8 0010 0000 0002 + 0000 0000 4000 0000 3ff9 0010 0000 0002 0001 0000 0000 0000 0000 0000 0000 0000. Basic mode control register 0x1000: Auto-negotiation enabled. Basic mode status register 0x782d ... 782d. After the ifconfig down/up pair, the only part of the above that reverts is the "MII PHY found at" line; the other changes remain.
Under 2.4.0-test9-pre7, no kernel messages are logged, other than a panoply of "NETDEV WATCHDOG: ethX: transmit timed out".
If there's any other information I can send to assist in debugging and fixing this, please don't hesitate to email me. Under 2.2 it is a nuisance, but under 2.4 it's a real show-stopper for me, since I have to reboot to fix it.
-- Jeffrey Sean Connell __ | SHOUTip Team Leader, net.com ankh@canuck.gen.nz \/ | PGP key: http://www.canuck.gen.nz/~ankh/pgpkey.html ------------------------+---------------------------------------------------- - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org Please read the FAQ at http://www.tux.org/lkml/
| |