[vortex] 3c59x slow; debug=5 removes the error; why?

Christian Ostheimer osth at freesurf.ch
Sat May 15 09:49:49 PDT 2004


Hi there,

having read through messages about slow 3c59x network adapters I believe 
to see an error not described yet:

3com nic on PIII m 866 notebook (dell, nic onboard) running ftpd (kernel 
2.6.3 or 2.4.21)

100 MB/s full duplex connection to second pc (switch or crossed cable)


Uploading a file (33MB) from pc to notebook by ftp:

case 1): insmod 3c59x
  30-80kB/s; 30% overrun errors

case 2): insmod 3c59x debug=5
  6-10MB/s; 0.02% overruns

(to compare: case 3): pcnet_cs pcmcia nic, 1-1.5MB/s; 1.5% frame errors, 
1.5% dropped)

case 1 and case 2:

downloading from notebook to pc and file transfers by scp in both directions
    give full speed

both ends display 100 MB/s full duplex (mii-tool, mii-diag, vortex-diag)

vortex-diag and mii-diag do not show difference between case 1 and case 2

Comparing tx and rx packets shows that ftp has 0.7MB tx packets with 33 
MB rx
and scp has only 0.2 MB tx with 33 MB rx.

The driver seems to have a timing problem in certain circumstances.

Any ideas what to do?

Regards, Christian Ostheimer

PS: below is some diagnostic output (with kernel 2.6.3)

dmesg output of case 2:
PCI: Found IRQ 11 for device 0000:02:00.0
PCI: Sharing IRQ 11 with 0000:00:1f.1
3c59x: Donald Becker and others. www.scyld.com/network/vortex.html
See Documentation/networking/vortex.txt
0000:02:00.0: 3Com PCI 3c905C Tornado at 0xec80. Vers LK1.1.19
 00:06:5b:d5:3c:e8, IRQ 11
  product code 0000 rev 00.6 date 11-12-01
  Internal config register is 1840000, transceivers 0xa.
  8K byte-wide RAM 5:3 Rx:Tx split, autoselect/Autonegotiate interface.
  MII transceiver found at address 24, status 782d.
  Enabling bus-master transmits and whole-frame receives.
0000:02:00.0: scatter/gather enabled. h/w checksums enabled

lspci:
02:00.0 Ethernet controller: 3Com Corporation 3c905C-TX/TX-M [Tornado] 
(rev 78)
    Subsystem: Dell Computer Corporation: Unknown device 00e3
    Flags: bus master, medium devsel, latency 32, IRQ 11
    I/O ports at ec80 [size=128]
    Memory at f8fffc00 (32-bit, non-prefetchable) [size=128]
    Expansion ROM at f9000000 [disabled] [size=128K]
    Capabilities: [dc] Power Management version 2
00: b7 10 00 92 17 01 10 02 78 00 00 02 08 20 00 00
10: 81 ec 00 00 00 fc ff f8 00 00 00 00 00 00 00 00
20: 00 00 00 00 00 00 00 00 00 00 00 00 28 10 e3 00
30: 00 00 00 f9 dc 00 00 00 00 00 00 00 0b 01 0a 0a

vortex-diag -aaee (case 1):
vortex-diag.c:v2.16 1/12/2004 Donald Becker (becker at scyld.com)
 http://www.scyld.com/diag/index.html
Index #1: Found a 3c920 Series NIC adapter at 0xec80.
 Station address 00:06:5b:d5:3c:e8.
  Receive mode is 0x07: Normal unicast and all multicast.
The Vortex chip may be active, so FIFO registers will not be read.
To see all register values use the '-f' flag.
Initial window 7, registers values by window:
  Window 0: 0000 0000 0000 0000 adad 00bf ffff 0000.
  Window 1: FIFO FIFO 0700 0000 0000 006e 0000 2000.
  Window 2: 0600 d55b e83c 0000 0000 0000 0052 4000.
  Window 3: 0000 0184 05ea 0020 000a 0800 0800 6000.
  Window 4: 0000 0000 0000 0ccc 0001 8880 0000 8000.
  Window 5: 1ffc 0000 0000 0600 0807 06ce 06c6 a000.
  Window 6: 0000 0000 0000 6000 2000 3150 284a c000.
  Window 7: 0000 0000 0000 0000 0000 0000 0000 e000.
Vortex chip registers at 0xec80
  0xEC90: **FIFO** 00000000 00000010 *STATUS*
  0xECA0: 00000020 00000000 00080000 00000004
  0xECB0: 00000000 bfe4401c 195350c0 00080004
  0xECC0: 00748190 00000000 000000b7 00000000
  0xECD0: 00000000 00000000 00000000 00000000
  0xECE0: 00000000 00000000 00000000 00000000
  0xECF0: 00009000 00000000 00000000 00000000
  DMA control register is 00000020.
   Tx list starts at 00000000.
   Tx FIFO thresholds: min. burst 256 bytes, priority with 128 bytes to 
empty.
   Rx FIFO thresholds: min. burst 256 bytes, priority with 128 bytes to 
full.
   Poll period Tx 00 ns.,  Rx 0 ns.
   Maximum burst recorded Tx 0,  Rx 0.
 Indication enable is 06c6, interrupt enable is 06ce.
 No interrupt sources are pending.
 Transceiver/media interfaces available:  100baseTx 10baseT.
Transceiver type in use:  Autonegotiate.
 MAC settings: full-duplex.
 Station address set to 00:06:5b:d5:3c:e8.
 Configuration options 0052.
EEPROM format 64x16, configuration table at offset 0:
    00: 0006 5bd5 3ce8 9200 036c 0000 0000 6d50
  0x08: 2940 0000 0006 5bd5 3ce8 0010 0000 00aa
  0x10: 72a2 0000 0000 0584 0000 0005 0421 1028
  0x18: 00e3 000a 0002 6300 ff68 6868 0f06 0030
  0x20: 007c 0000 0000 0000 0000 0000 0000 0000
  0x28: 0000 0000 0000 0000 0000 0000 0000 0000
  0x30: 0000 0000 ffff ffff ffff ffff ffff ffff
  0x38: ffff ffff ffff ffff ffff ffff ffff ffff

 The word-wide EEPROM checksum is 0xc613.
Saved EEPROM settings of a 3Com Vortex/Boomerang:
 3Com Node Address 00:06:5B:D5:3C:E8 (used as a unique ID only).
 OEM Station address 00:06:5B:D5:3C:E8 (used as the ethernet address).
  Device ID 9200,  Manufacturer ID 6d50.
  Manufacture date (MM/DD/YYYY) 11/12/2001, division , product .
  No BIOS ROM is present.
 Transceiver selection: Autonegotiate.
   Options: negotiated duplex, link beat required.
   PCI bus requested settings --  minimum grant 10, maximum latency 10 
(250ns units).
 PCI Subsystem IDs: Vendor 1028 Device 00e3.
 100baseTx 10baseT.
  Vortex format checksum is incorrect (47 vs. 1028).
  Cyclone format checksum is incorrect (0xb3 vs. 0x7c).
  Hurricane format checksum is correct (0x7c vs. 0x7c).

vortex-diag -aaee (case 2), almost the same:
-  Window 6: 0000 0000 0000 6000 2000 3150 284a c000.
+  Window 6: 0000 0000 0000 0500 0000 014a 0164 c000.
-  0xECB0: 00000000 bfe4401c 195350c0 00080004
-  0xECC0: 00748190 00000000 000000b7 00000000
+  0xECB0: 00000000 4d65b29b 01703050 00080004
+  0xECC0: 00b08000 00000000 000000b7 00000000

mii-diag -v (case 1):
mii-diag.c:v2.09 9/06/2003 Donald Becker (becker at scyld.com)
 http://www.scyld.com/diag/index.html
  Using the new SIOCGMIIPHY value on PHY 24 (BMCR 0x3000).
 The autonegotiated capability is 01e0.
The autonegotiated media type is 100baseTx-FD.
 Basic mode control register 0x3000: Auto-negotiation enabled.
 You have link beat, and everything is working OK.
   This transceiver is capable of  100baseTx-FD 100baseTx 10baseT-FD 
10baseT.
   Able to perform Auto-negotiation, negotiation complete.
 Your link partner advertised 45e1: Flow-control 100baseTx-FD 100baseTx 
10baseT-FD 10baseT, w/ 802.3X flow control.
   End of basic transceiver information.

libmii.c:v2.10 4/22/2003  Donald Becker (becker at scyld.com)
 http://www.scyld.com/diag/index.html
 MII PHY #24 transceiver registers:
   3000 782d 0041 6800 05e1 45e1 0007 2801
   0000 0000 0000 0000 0000 0000 0000 0000
   0618 c611 0030 4001 40c8 a000 0000 0000
   d300 0220 8084 9119 0065 1a2d 7fff 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 00:10:5a:--:--:--, model 0 rev. 0.
   No specific information is known about this transceiver type.
 I'm advertising 05e1: Flow-control 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.

mii-diag -v (case 2), almost the same:
-   0618 c611 0030 4001 40c8 a000 0000 0000
+   0618 c011 0030 4001 40c8 a000 0000 0000




More information about the vortex mailing list