[vortex] Re: 3c575 bug w/ full duplex mode
Tuomo Soini
tuomo.soini@vtg.fi
Mon, 28 Aug 2000 15:39:58 +0300
IBM Thinkpad 390X
redhat 6.2
linux-2.2.17pre20
pcmcia-cs-3.1.19
Okey, I'm back in the business again, as I promised to you.
Sorry, this took some time.
Here is more information of problem with 3C 575BT card.
# mii-diag -v
mii-diag.c:v2.00 4/19/2000 Donald Becker (becker@scyld.com)
http://www.scyld.com/diag/index.html
MII PHY #0 transceiver registers:
3000 282d 0300 e54b 00a1 41e1 0001 0000
0000 0000 0000 0000 0000 0000 0000 0000
0140 0000 0700 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000.
Basic mode control register 0x3000: Auto-negotiation enabled.
You have link beat, and everything is working OK.
This transceiver is capable of 100baseTx 10baseT.
Able to perform Auto-negotiation, negotiation complete.
Your link partner advertised 41e1: 100baseTx-FD 100baseTx 10baseT-FD
10baseT.
MII PHY #0 transceiver registers:
3000 282d 0300 e54b 00a1 41e1 0001 0000
0000 0000 0000 0000 0000 0000 0000 0000
0140 0000 0700 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000.
Basic mode control register 0x3000: Auto-negotiation enabled.
Basic mode status register 0x282d ... 282d.
Link status: established.
Capable of 100baseTx 10baseT.
Able to perform Auto-negotiation, negotiation complete.
Vendor ID is 00:c0:39:--:--:--, model 20 rev. 11.
Vendor/Part: TDK transceiver (unknown type).
I'm advertising 00a1: 100baseTx 10baseT
Advertising no additional info pages.
IEEE 802.3 CSMA/CD protocol.
Link partner capability is 41e1: 100baseTx-FD 100baseTx 10baseT-FD
10baseT.
Negotiation completed.
TDK 78q2120 vendor-specific registers 16..18 are 0x0140 0x0000 0x0700
Link polarity is detected as normal.
Auto-negotiation complete, 100Mbps half duplex.
Rx link in pass state, PLL locked.
No new link status events.
# vortex-diag -aaee
vortex-diag.c:v2.00 4/19/2000 Donald Becker (becker@scyld.com)
http://www.scyld.com/diag/index.html
Index #1: Found a 3CCFE575 CardBus adapter at 0x200.
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 0000 06ff ffff 0000.
Window 1: FIFO FIFO 0000 0000 0000 0000 0000 2000.
Window 2: 0000 3e86 1510 0000 0000 0000 0112 4000.
Window 3: 0000 0060 05ea 0020 0040 1000 0800 6000.
Window 4: 0000 0000 0000 0cc2 0003 a800 0000 8000.
Window 5: 1ffc 0000 0000 0600 0807 06de 06c6 a000.
Window 6: 0000 0000 0000 0000 0000 0000 0000 c000.
Window 7: 0000 0000 0000 0000 0000 0000 0002 e000.
Vortex chip registers at 0x200
0x210: **FIFO** 00000000 0000000a *STATUS*
Indication enable is 06c6, interrupt enable is 06de.
No interrupt sources are pending.
Transceiver/media interfaces available: MII.
Transceiver type in use: MII.
MAC settings: full-duplex.
Station address set to 00:00:86:3e:10:15.
Configuration options 4000.
EEPROM contents (256 words):
0x000: 10b7 5157 0007 0000 0001 0200 4000 0000
0x008: 0000 0000 0000 0000 0000 0000 0000 0000
0x010: 0000 0000 0000 0000 0090 0000 10b7 5b57
0x018: 0000 0000 0000 0000 0000 0000 0109 0a0a
0x020: 0000 0060 0000 0000 0000 0000 0000 0000
0x028: 0000 0000 0000 0000 0000 0000 0000 0000
0x030: 0000 863e 1015 5157 c46a 0036 564e 6d50
0x038: 3000 0009 0000 863e 1015 2010 0000 0006
0x040: 32a6 1570 0000 0060 0007 0000 0000 0022
0x048: 0313 4943 2053 0104 5701 0451 0306 0001
0x050: 0000 0500 410c 019a 1eb5 5501 3002 ffff
0x058: 0701 1106 4000 0000 1500 0534 3300 6f43
0x060: 206d 6f43 7072 726f 7461 6f69 006e 4333
0x068: 4643 3545 3537 5442 4c00 4e41 4320 7261
0x070: 6264 7375 4320 7261 0064 3030 0031 21ff
0x078: 0602 0501 0006 8080 8080 ff19 ffff ffff
0x080: ffff ffff ffff ffff ffff ffff ffff ffff
0x088: ffff ffff ffff ffff ffff ffff ffff ffff
0x090: ffff ffff ffff ffff ffff ffff ffff ffff
0x098: ffff ffff ffff ffff ffff ffff ffff ffff
0x0a0: ffff ffff ffff ffff ffff ffff ffff ffff
0x0a8: ffff ffff ffff ffff ffff ffff ffff ffff
0x0b0: ffff ffff ffff ffff ffff ffff ffff ffff
0x0b8: ffff ffff ffff ffff ffff ffff ffff ffff
0x0c0: ffff ffff ffff ffff ffff ffff ffff ffff
0x0c8: ffff ffff ffff ffff ffff ffff ffff ffff
0x0d0: ffff ffff ffff ffff ffff ffff ffff ffff
0x0d8: ffff ffff ffff ffff ffff ffff ffff ffff
0x0e0: ffff ffff ffff ffff ffff ffff ffff ffff
0x0e8: ffff ffff ffff ffff ffff ffff ffff ffff
0x0f0: ffff ffff ffff ffff ffff ffff ffff ffff
0x0f8: ffff ffff ffff ffff ffff ffff ffff ffff
The word-wide EEPROM checksum is 0x5e7e.
Parsing the EEPROM of a 3Com Vortex/Boomerang:
The CardBus product ID is 10b7 5157.
3Com Node Address 00:00:86:3E:10:15 (used as a unique ID only).
OEM Station address 00:00:86:3E:10:15 (used as the ethernet address).
Manufacture date (MM/DD/YYYY) 3/10/1998, division 6, product NV.
Options: none.
Vortex format checksum is correct (0022 vs. 0022).
Cyclone format checksum is incorrect (0x1a vs. 00).
Hurricane format checksum is incorrect (0x6b vs. 00).
And this is exactly same version of card than you have.
Problems are: Card announces capability of 10Base-T and 100Base-TX but
driver still changes to Full-duplex according to remote capability,
while own announced capability told other end to select half-duplex, and
result is VERY bad performance. I have HP 2424M switch, and I can get
acceptable performance if change switch to 100HDx only mode.
With autosensing nonmanaged switch there is no way to get acceptable
performance.
I have two 3CXFE575BT cards with same revisions, and both have same
problem.
My conclusion:
There is nasty bug in driver, it changes to full-duplex mode while card
announces only half-duplex mode.
There is bug in the card, it announces wrong capabilities.
I have two of those 3CFXE575BT cards, both work same way.
Is there any solution for this problem?
If card can't be fixed with driver, is there way to fix driver so it
won't change to modes card doesn't announce.
--
Tuomo Soini <tuomo.soini@vtg.fi>