[vortex] 3c905C not auto-negotiating full duplex 100BaseT

David LANDGREN dlandgre@bpinet.com
Thu, 27 Sep 2001 15:03:31 +0200


The ongoing saga...

|After running
|
|     mii-diag -F100baseTx -R eth0
|
|I have
|
|# /usr/local/sbin/mii-diag eth0
|Basic registers of MII PHY #24:  2100 780d 0040 6176 05e1 0000 0000 0000.
| Basic mode control register 0x2100: Auto-negotiation disabled, with
| Speed fixed at 100 mbps, full-duplex.
| You have link beat, and everything is working OK.
| Link partner information is not exchanged when in fixed speed mode.
|   End of basic transceiver information.

There is something weird going on. When I configure the switch to 100FD,
the link dies. When I configure it to autoneg, the switch says it
negotiated 10HD, despite the fact that mii-diag is reporting 100FD.

I just found vortex-diag. Running that gives:

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 0xe800.
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 d93f 0000 e3e3 00bf ffff 0000.
  Window 1: FIFO FIFO 0700 0000 0000 007f 0000 2000.
  Window 2: 5000 4ada 6537 0000 0000 0000 0052 4000.
  Window 3: 0000 0000 05ea 0020 000a 0800 0764 6000.
  Window 4: 0000 0000 0000 0efa 0001 98c0 0000 8000.
  Window 5: 1ffc 0000 0000 0600 0807 06de 06c6 a000.
  Window 6: 0000 0000 0000 1f00 1000 081f 0e76 c000.
  Window 7: 0000 0000 0000 0000 0000 0000 0000 e000.
Vortex chip registers at 0xe800
  0xE810: **FIFO** 00000000 00000058 *STATUS*
  0xE820: 00000020 03433200 00080000 00001404
  0xE830: 00000000 5d27a2d9 034330c0 00080004
 Indication enable is 06c6, interrupt enable is 06de.
 No interrupt sources are pending.
 Transceiver/media interfaces available:  100baseTx 10baseT.
Transceiver type in use:  10baseT.
 MAC settings: full-duplex.
 Station address set to 00:50:da:4a:37:65.
 Configuration options 0052.
EEPROM contents (64 words, offset 0):
 0x000: 0050 da4a 3765 9200 c781 0036 5759 6d50
 0x008: 2940 0800 0050 da4a 3765 8020 0000 00aa
 0x010: 72a2 0000 0000 0000 0000 0004 0429 10b7
 0x018: 1000 000a 0002 6300 ffb7 b7b7 0000 0000
 0x020: 00d7 1234 5600 0000 0000 0000 0000 0000
 0x028: 0000 0000 0000 0000 0000 0000 0000 0000
 0x030: ffff ffff ffff ffff ffff ffff ffff ffff
 0x038: ffff ffff ffff ffff ffff ffff ffff ffff
 The word-wide EEPROM checksum is 0x0f63.
Saved EEPROM settings of a 3Com Vortex/Boomerang:
 3Com Node Address 00:50:DA:4A:37:65 (used as a unique ID only).
 OEM Station address 00:50:DA:4A:37:65 (used as the ethernet address).
 Manufacture date (MM/DD/YYYY) 12/1/1999, division 6, product YW.
 Options: force full duplex, link beat required.
  Vortex format checksum is incorrect (006e vs. 10b7).
  Cyclone format checksum is incorrect (0xfe vs. 0xd7).
  Hurricane format checksum is correct (0xd7 vs. 0xd7).

Hope this makes sense to someone. I'm all for writing values to the EEPROM,
if only I know what...

Later,
David.