[tulip] Periodic transmit timeouts on Linksys EtherFast 10/100

Joe Thompson joe@orion-com.com
Thu, 09 Nov 2000 10:52:04 -0500


At intervals (as long as a few weeks or sometimes as little as hours) my
Linksys ethernet card will stop transmitting.  Apparently it can receive
just fine:

-----
Nov  8 16:07:32 crowley kernel: eth0: Transmit timed out, status e4260000,
CSR12 000050ca, resetting...
Nov  8 16:07:33 crowley icmplogd: router advertisment from
paktron.itwpaktron.com [216.12.65.57]

[later]

Nov  8 16:08:45 crowley tcplogd: https connection attempt from [208.152.217.2]
Nov  8 16:08:46 crowley icmplogd: destination unreachable from
crowley.orion-com.com [216.12.86.2]
Nov  8 16:08:46 crowley icmplogd: destination unreachable from
crowley.orion-com.com [216.12.86.2]
Nov  8 16:08:47 crowley kernel: eth0: Transmit timed out, status e4260000,
CSR12 000050ca, resetting...
-----

If I ifconfig down the card, bring it up again, and re-add the default
route, all is well, at least until it decides to go mute again.  Here's the
diagnostic info for the card:

-----
crowley:/tmp/tulip# ./tulip-diag
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 PNIC-II adapter at 0xe400.
 Port selection is 10mpbs-serial, 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 72.
  The NWay status register is 000050ca.
 The current PNIC-II MAC address is 00:a0:cc:36:ae:ac (a000a000 36ccacae).
 The current PNIC-II WOL address is 00:a0:cc:36:ae:ac.
  Internal autonegotiation state is 'Negotiation complete'.
 Use '-a' or '-aa' to show device registers,
     '-e' to show EEPROM contents, -ee for parsed contents,
  or '-m' or '-mm' to show MII management registers.

crowley:/tmp/tulip# ./tulip-diag -a -f
[...]
Lite-On PNIC-II chip registers at 0xe400:
  fff88000 ffffffff ffffffff 00213810 00213a10 e4660000 82422002 effffbff
  fffe0000 00fecf08 ffffffff fffe0000 000050ca ffff0001 ffffffff fff00000
  03300000 03300000 03300000 f44ffff0 0800427f 00001140 36ccacae a000a000
  36ccacae 00000000 00000000 00000000 00000000 00000000 00000000 00000000

crowley:/tmp/tulip# ./tulip-diag -ee
[...]
EEPROM size is 6.
  Ethernet MAC Station Address 00:a0:cc:36:ae:ac.
  Wake-On-LAN ID bytes a0:00:36:cc:ac:ae.
  PCI Subsystem IDs  Vendor 11ad Device 01c0
EEPROM contents:
  0000 0000 0000 0000 0000 0000 0000 0000
  0000 0000 a000 36cc acae a000 36cc 0000
  0000 0000 0000 0000 0000 0000 0000 0000
  0000 0000 0000 0000 0000 acae 0000 0000
  0000 0000 0000 0000 0000 0000 0000 0000
  0000 0000 0000 0000 0000 c001 11ad 0000
  0000 0000 0000 0000 0000 0000 0000 0000
  0014 0000 0000 0800 0000 c115 11ad a229
 ID block CRC 0xe3 (vs. 00).
  Full contents CRC 0xa229 (read as 0xa229).
  Internal autonegotiation state is 'Negotiation complete'.

crowley:/tmp/tulip# ./tulip-diag -m 
[...]
   No MII transceivers found!
  Internal autonegotiation state is 'Negotiation complete'.

crowley:/tmp/tulip# uname -a
Linux crowley 2.2.17 #2 Tue Oct 24 20:18:57 EDT 2000 i686 unknown
-----

At a guess the card is half-duplex and is spontaneously trying to switch to
full-duplex (or to 100Mbit?), with the results above, but why?

I never had trouble with this card in my old house (where I was living when
I built the box).  Modulo actual network outages, the card worked
flawlessly with my DSL.  When I moved in late May, I couldn't get DSL
reinstalled for awhile, but around early October I finally got it again
(different vendor, same connection and hardware type).  In that time I had
not recompiled my kernel (2.2.14) or changed network drivers (tulip 0.91g).
 The first day I had DSL turned on, this happened; then again about three
days later, then a week or so after that.

Yesterday was the first time it had happened in something like three weeks;
after it happened the time before, I recompiled my kernel (which I needed
to do anyway) in hopes that it might just be a bug in kernel 2.2.14.  I
don't know if the fact that it went away for a while under 2.2.17 is just a
coincidence or not.  Typically it happens during heavy traffic, like
displaying to a remote X server, but I'm not sure if that's a statistical
oddity or actually meaningful (yesterday it happened when traffic was quite
low in fact).  Could my new DSL connection somehow be confusing the card
into trying to switch modes?

Any ideas? -- Joe
-- 
       Joe Thompson | "It's software.  It comes in a tiny box.
Charlottesville, VA | You can't even see it from the moon."
  joe@orion-com.com | -- Nicholas Petreley on Windows 98
           http://www.orion-com.com/~kensey/