[3c509] Question about Half-Duplex negotiation
Bill Cattey
wdc@MIT.EDU
Thu Jan 10 17:38:00 2002
I'm the guy at MIT who helps decide what systems to buy
in bulk, and deploy school-wide. Yesterday I took delivery of a Dell
Optiplex GX150 of the same sort that we've been buying all year.
But it was getting horrendous network performance.
Eventually we traced the problem to the fact that the machine
had somehow came through the autonegotiation with our subnet
to attempt to speak half-duplex to our full duplex port.
(The way I determined this was to have our network operations folks look
at what I was doing and then use mii-diag to force full duplex, and
watch that make the problem go away. Interestingly testing two other
identical
GX150's on the same subnet turned up one working fine, and another one
that had problems till we told it BE full duplex.)
The driver I'm running is:
3c59x: Donald Becker and others. www.scyld.com/network/vortex.html
02:0c.0: 3Com PCI 3c905C Tornado at 0xec80. Vers LK1.1.16
(Mind you, the next line in dmesg output said:
***WARNING*** No MII transceivers found!
so I wonder if something transient choked up in the auto-negotiation.)
Since I'm the one whose tush gets kicked if the machines
we buy don't work, I'm concerned that there may be a run
of new and improved 3Com 3c905c chips that have buggy
duplex autonegotiation.
Enclosed is the output of vortex-diag -a -v.
QUESTION: Do you think this is a transient problem, or might there
really be a bug in the driver?
Thanks in advance,
-wdc
---- enclosure vortex-diag output ----
bash-2.04# ./vortex-diag -a -v
vortex-diag.c:v2.05 5/15/2001 Donald Becker (becker@scyld.com)
http://www.scyld.com/diag/index.html
Index #1: Found a 3c905C Tornado 100baseTx adapter at 0xec80.
The Vortex chip may be active, so FIFO registers will not be read.
To see all register values use the '-f' flag.
Initial window 4, registers values by window:
Window 0: 0000 0000 0000 0000 adad 00bf ffff 0000.
Window 1: FIFO FIFO 0700 0000 0000 003f 0000 2000.
Window 2: 0600 475b 78d0 0000 0000 0000 0052 4000.
Window 3: 0000 0180 05ea 0020 000a 0800 0800 6000.
Window 4: 0000 0000 0000 0cc6 0001 88c0 0000 8000.
Window 5: 1ffc 0000 0000 0600 0807 06ce 06c6 a000.
Window 6: 0000 0000 0000 2900 0000 1334 0000 c000.
Window 7: 0000 0000 0000 0000 0000 0000 0000 e000.
Vortex chip registers at 0xec80
0xEC90: **FIFO** 00000000 00000011 *STATUS*
0xECA0: 00000020 00000000 00080000 00000004
0xECB0: 00000000 94166bea 091470e0 00080004
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:47:d0:78.
Configuration options 0052.
Saved EEPROM settings of a 3Com Vortex/Boomerang:
3Com Node Address 00:06:5B:47:D0:78 (used as a unique ID only).
OEM Station address 00:06:5B:47:D0:78 (used as the ethernet address).
Manufacture date (MM/DD/YYYY) 6/10/2000, division , product .
Options: negotiated duplex, link beat required.
Vortex format checksum is incorrect (0002 vs. 1028).
Cyclone format checksum is incorrect (0xa3 vs. 0x65).
Hurricane format checksum is correct (0x65 vs. 0x65).
MII PHY found at address 1, status 0024.
MII PHY found at address 2, status 0024.
MII PHY found at address 3, status 0024.
MII PHY found at address 4, status 0024.
MII PHY 0 at #1 transceiver registers:
0000 0024 0000 0000 0100 45e1 0003 0800
0000 0000 0000 0000 0000 0000 0000 0000
0600 c711 0000 4000 0000 0000 0000 0000
0000 0800 0000 0000 0000 0ae9 0000 0000.
MII PHY 1 at #2 transceiver registers:
0000 0024 0000 0000 0100 45e1 0003 0800
0000 0000 0000 0000 0000 0000 0000 0000
0600 c711 0000 4000 0000 0000 0000 0000
0000 0800 0000 0000 0000 0ae9 0000 0000.
MII PHY 2 at #3 transceiver registers:
0000 0024 0000 0000 0100 45e1 0003 0800
0000 0000 0000 0000 0000 0000 0000 0000
0600 c711 0000 4000 0000 0000 0000 0000
0000 0800 0000 0000 0000 0ae9 0000 0000.
MII PHY 3 at #4 transceiver registers:
0000 0024 0000 0000 0100 45e1 0003 0800
0000 0000 0000 0000 0000 0000 0000 0000
0600 c711 0000 4000 0000 0000 0000 0000
0000 0800 0000 0000 0000 0ae9 0000 0000.
bash-2.04#