[vortex] 3c59x driver sometimes gets wedged in 2.4.25

Scott A Crosby scrosby@cs.rice.edu
Sat Feb 28 19:52:01 2004


I'd like to report a bug on my networking card with the 3c59x driver
under 2.4.25.

This card has faithfully served me until I did a computer upgrade a
few months ago. This upgrade included an nforce2 motherboard and a TV
capture card. I believe the DMA? IRQ? of the TV capture card is what
induces this problem. It only seems to happen after a dozen hours or
so of running the TV capture card.

********************** DMESG and driver info ***************

3c59x: Donald Becker and others. www.scyld.com/network/vortex.html
See Documentation/networking/vortex.txt
01:07.0: 3Com PCI 3c905B Cyclone 100baseTx at 0xc800. Vers LK1.1.18-ac
 00:50:da:6c:c9:93, IRQ 11
  product code 5847 rev 00.12 date 10-18-99
  Internal config register is 1000000, transceivers 0xa.
  8K byte-wide RAM 5:3 Rx:Tx split, autoselect/10baseT interface.
  Enabling bus-master transmits and whole-frame receives.
01:07.0: scatter/gather enabled. h/w checksums enabled

*********************** DMESG errors ********************

I got errors where dmesg continues to repeat these errors forever:

eth0: Resetting the Tx ring pointer.
NETDEV WATCHDOG: eth0: transmit timed out
eth0: transmit timed out, tx_status 00 status e000.
  diagnostics: net 0cd8 media 8880 dma 000000a0.
  Flags; bus-master 1, dirty 63473294(14) current 63473310(14)
  Transmit list 32dda580 vs. f2dda580.
  0: @f2dda200  length 8000003a status 0000003a
  1: @f2dda240  length 8000002a status 0000002a
  2: @f2dda280  length 8000002a status 0000002a
....

********************* Diagnostics *******************
After the failure, I attempted to remove and reinstert the
module. Then ran these diagnostics:

./vortex-diag -aeemmf >vortex-diag.fail.txt
./mii-diag -rfv eth0 >mii-diag.fail.txt

After the reboot, I immediately ran these:

./vortex-diag -aeemmf >vortex-diag.work.txt
./mii-diag -rfv eth0 >mii-diag.work.txt

*****************************************************
diff -y  vortex-diag.work.txt vortex-diag.fail.txt 


vortex-diag.c:v2.15a 12/16/2003 Donald Becker (becker@scyld.c	vortex-diag.c:v2.15a 12/16/2003 Donald Becker (becker@scyld.c
 http://www.scyld.com/diag/index.html				 http://www.scyld.com/diag/index.html
Index #1: Found a 3c905B Cyclone 100baseTx adapter at 0xc800.	Index #1: Found a 3c905B Cyclone 100baseTx adapter at 0xc800.
 Station address 00:50:da:6c:c9:93.				 Station address 00:50:da:6c:c9:93.
  Receive mode is 0x07: Normal unicast and all multicast.	  Receive mode is 0x07: Normal unicast and all multicast.
Initial window 7, registers values by window:		      |	Initial window 4, registers values by window:
  Window 0: 0000 0000 0000 0000 f5f5 00bf 0000 0000.		  Window 0: 0000 0000 0000 0000 f5f5 00bf 0000 0000.
  Window 1: 0000 0000 0000 0000 0000 0000 0000 2000.		  Window 1: 0000 0000 0000 0000 0000 0000 0000 2000.
  Window 2: 5000 6cda 93c9 0000 0000 0000 000a 4000.		  Window 2: 5000 6cda 93c9 0000 0000 0000 000a 4000.
  Window 3: 0000 0180 05ea 0020 000a 0800 0800 6000.	      |	  Window 3: 0000 0180 05ea 0000 000a 0018 0800 6000.
  Window 4: 0000 0000 0000 0cd8 0003 8880 0000 8000.	      |	  Window 4: 0000 0000 8000 0058 0001 8880 0000 8000.
  Window 5: 1ffc 0000 0000 0600 0807 06ce 06c6 a000.	      |	  Window 5: 1ffc 0000 0000 0600 0807 0000 06c6 a000.
  Window 6: 0000 0000 0000 5300 0000 1f96 003c c000.	      |	  Window 6: 0000 0000 0000 0000 0000 0000 0000 c000.
  Window 7: 0000 0000 0000 0000 0000 0000 0000 e000.		  Window 7: 0000 0000 0000 0000 0000 0000 0000 e000.
Vortex chip registers at 0xc800					Vortex chip registers at 0xc800
  0xC810: 00000000 00000000 0000000a 00000000		      |	  0xC810: 00000000 00000000 00000000 00000000
  0xC820: 00000020 00000000 00080000 00000004		      |	  0xC820: 000000a0 1e101200 00080000 00000004
  0xC830: 00000000 73128cee 32dce130 00080004		      |	  0xC830: 00008000 5a71a58f 00000000 00080004
  0xC840: 002a5246 00000000 00000000 00000000		      |	  0xC840: 00db784c 00000000 00000000 00000000
  0xC850: 00000000 00000000 00000000 00000000			  0xC850: 00000000 00000000 00000000 00000000
  0xC860: 00000000 00000000 00000000 00000000			  0xC860: 00000000 00000000 00000000 00000000
  0xC870: 00009000 00000000 01200040 00000000		      |	  0xC870: 00001040 00000000 00000000 00000000
  DMA control register is 00000020.			      |	  DMA control register is 000000a0.
   Tx list starts at 00000000.				      |	   DMA control register is 000000a4 (during Tx Stall).
							      >	   Tx list starts at 1e101200.
   Tx FIFO thresholds: min. burst 256 bytes, priority with 12	   Tx FIFO thresholds: min. burst 256 bytes, priority with 12
   Rx FIFO thresholds: min. burst 256 bytes, priority with 12	   Rx FIFO thresholds: min. burst 256 bytes, priority with 12
   Poll period Tx 00 ns.,  Rx 0 ns.				   Poll period Tx 00 ns.,  Rx 0 ns.
   Maximum burst recorded Tx 64,  Rx 288.		      |	   Maximum burst recorded Tx 0,  Rx 0.
 Indication enable is 06c6, interrupt enable is 06ce.	      |	 Indication enable is 06c6, interrupt enable is 0000.
 No interrupt sources are pending.				 No interrupt sources are pending.
 Transceiver/media interfaces available:  100baseTx 10baseT.	 Transceiver/media interfaces available:  100baseTx 10baseT.
Transceiver type in use:  Autonegotiate.			Transceiver type in use:  Autonegotiate.
 MAC settings: full-duplex.				      |	 MAC settings: half-duplex.
 Station address set to 00:50:da:6c:c9:93.			 Station address set to 00:50:da:6c:c9:93.
 Configuration options 000a.					 Configuration options 000a.
EEPROM format 64x16, configuration table at offset 0:		EEPROM format 64x16, configuration table at offset 0:
    00: 0050 da6c c993 9055 c752 0036 4758 6d50			    00: 0050 da6c c993 9055 c752 0036 4758 6d50
  0x08: 2979 0000 0050 da6c c993 0010 0000 002a			  0x08: 2979 0000 0050 da6c c993 0010 0000 002a
  0x10: 32a2 0000 0000 0180 0000 0000 0000 10b7			  0x10: 32a2 0000 0000 0180 0000 0000 0000 10b7
  0x18: 9055 000a 0000 0000 0000 0000 0000 0000			  0x18: 9055 000a 0000 0000 0000 0000 0000 0000
  0x20: 0057 0000 0000 0000 0000 0000 0000 0000			  0x20: 0057 0000 0000 0000 0000 0000 0000 0000
  0x28: 0000 0000 0000 0000 0000 0000 0000 0000			  0x28: 0000 0000 0000 0000 0000 0000 0000 0000
      ...							      ...

 The word-wide EEPROM checksum is 0x5465.			 The word-wide EEPROM checksum is 0x5465.
Saved EEPROM settings of a 3Com Vortex/Boomerang:		Saved EEPROM settings of a 3Com Vortex/Boomerang:
 3Com Node Address 00:50:DA:6C:C9:93 (used as a unique ID onl	 3Com Node Address 00:50:DA:6C:C9:93 (used as a unique ID onl
 OEM Station address 00:50:DA:6C:C9:93 (used as the ethernet 	 OEM Station address 00:50:DA:6C:C9:93 (used as the ethernet 
  Device ID 9055,  Manufacturer ID 6d50.			  Device ID 9055,  Manufacturer ID 6d50.
  Manufacture date (MM/DD/YYYY) 10/18/1999, division 6, produ	  Manufacture date (MM/DD/YYYY) 10/18/1999, division 6, produ
  No BIOS ROM is present.					  No BIOS ROM is present.
 Transceiver selection: Autonegotiate.				 Transceiver selection: Autonegotiate.
   Options: negotiated duplex, link beat required.		   Options: negotiated duplex, link beat required.
   PCI bus requested settings --  minimum grant 10, maximum l	   PCI bus requested settings --  minimum grant 10, maximum l
 PCI Subsystem IDs: Vendor 10b7 Device 9055.			 PCI Subsystem IDs: Vendor 10b7 Device 9055.
 100baseTx 10baseT.						 100baseTx 10baseT.
  Vortex format checksum is incorrect (3f vs. 10b7).		  Vortex format checksum is incorrect (3f vs. 10b7).
  Cyclone format checksum is correct (0x57 vs. 0x57).		  Cyclone format checksum is correct (0x57 vs. 0x57).
  Hurricane format checksum is correct (0x57 vs. 0x57).		  Hurricane format checksum is correct (0x57 vs. 0x57).
 MII PHY found at address 24, status 786d.		      |	 MII PHY found at address 24, status 7869.
 MII PHY found at address 0, status 786d.			 MII PHY found at address 0, status 786d.
 MII PHY 0 at #24 transceiver registers:			 MII PHY 0 at #24 transceiver registers:
   3000 786d 0000 0000 01e1 45e1 0007 2801		      |	   1000 786d 0000 0000 01e1 45e1 0007 2801
   0000 0000 0000 0000 0000 0000 0000 0000			   0000 0000 0000 0000 0000 0000 0000 0000
   8000 0afb f5ff 0000 0000 0005 2001 0000			   8000 0afb f5ff 0000 0000 0005 2001 0000
   0000 203b 0048 1c11 0012 1000 0000 0000.		      |	   0000 203b 0049 1c11 019a 1000 0000 0000.
 MII PHY 1 at #0 transceiver registers:				 MII PHY 1 at #0 transceiver registers:
   3000 786d 0000 0000 01e1 45e1 0005 2801		      |	   1000 786d 0000 0000 01e1 45e1 0005 2801
   0000 0000 0000 0000 0000 0000 0000 0000			   0000 0000 0000 0000 0000 0000 0000 0000
   8000 0008 0090 0000 0000 0005 2001 0000			   8000 0008 0090 0000 0000 0005 2001 0000
   0000 203b 0048 1c11 0002 1000 0000 0000.		      |	   0000 203b 0088 1c11 0002 1000 0000 0000.


***************************************************************** 
Here, until I ran -f, mii-diag insisted that there was no transiever.

diff -y  mii-diag.work.txt mii-diag.fail.txt 

mii-diag.c:v2.09 9/06/2003 Donald Becker (becker@scyld.com)	mii-diag.c:v2.09 9/06/2003 Donald Becker (becker@scyld.com)
 http://www.scyld.com/diag/index.html				 http://www.scyld.com/diag/index.html
  Using the new SIOCGMIIPHY value on PHY 24 (BMCR 0x3000).    |	  Using the new SIOCGMIIPHY value on PHY 0 (BMCR 0x0000).
Restarting negotiation...					Restarting negotiation...
 The autonegotiated capability is 01e0.			      |	  No MII transceiver present!.
The autonegotiated media type is 100baseTx-FD.		      |	 Basic mode control register 0x0000: Auto-negotiation disable
 Basic mode control register 0x1000: Auto-negotiation enabled |	 Speed fixed at 10 mbps, half-duplex.
 Basic mode status register 0x7849 ... 7849.		      |	 Basic mode status register 0x0000 ... 0000.
   Link status: not established.				   Link status: not established.
   This transceiver is capable of  100baseTx-FD 100baseTx 10b |	   This transceiver is capable of <Warning! No media capabili
   Able to perform Auto-negotiation, negotiation not complete |	   Unable to perform Auto-negotiation, negotiation not comple
 Your link partner advertised 45e1: Flow-control 100baseTx-FD |	 Link partner information is not exchanged when in fixed spee
   End of basic transceiver information.			   End of basic transceiver information.

 MII PHY #24 transceiver registers:			      |	 MII PHY #0 transceiver registers:
   1000 7849 0000 0000 01e1 45e1 0004 2001		      |	   0000 0000 0000 0000 0000 0000 0000 0000
							      >	   0000 0000 0000 0000 0000 0000 0000 0000
							      >	   0000 0000 0000 0000 0000 0000 0000 0000
   0000 0000 0000 0000 0000 0000 0000 0000			   0000 0000 0000 0000 0000 0000 0000 0000
   0000 0289 1091 0000 0000 0005 2001 0000		      <
   0000 203b 07cf 1c11 0190 1000 0000 0000		      <