[vortex] 3c920 won't autonegotiate after upgrade to 2.6.2 kernel
Chris Newbold
cnewbold@laurelnetworks.com
Wed Feb 11 18:29:03 2004
I've got a box with a 3c920 NIC that was happily running a 2.4.20-mumble
kernel. To do some testing to feel out the 2.6 line, I built and
installed a vanilla 2.6.2 kernel. Then the problems started: the NIC now
only runs in 10base-T, half duplex mode.
After some Google'ing around, I came across a thread here about EEPROM
settings messing these cards up. So I grabbed vortex-diag and issued
"vortex-diag -F Autonegotiation -w". Here's what happened:
[root@bob-the-builder kernel]# ./vortex-diag -F Autonegotiation -w
vortex-diag.c:v2.15a 12/16/2003 Donald Becker (becker@scyld.com)
http://www.scyld.com/diag/index.html
Index #1: Found a 3c920 Series NIC adapter at 0xdc00.
Station address 00:01:03:2a:29:ee.
Receive mode is 0x07: Normal unicast and all multicast.
Writing an EEPROM word offset 19 value 0x0580.
Writing an EEPROM word offset 32 value 0x00a0.
Use '-a' or '-aa' to show device registers,
'-e' to show EEPROM contents, -ee for parsed contents,
or '-m' or '-mm' to show MII management registe
That seemed promising, so I rebooted. No improvement. I guess I wasn't
surprised, given that things were happy with the older kernel. Most
reports of this problem seemed to be from people who'd just upgraded to
2.4.20-ish kernels...
Anyway, the following are spooling to /var/log/messages and the console
(edited for uniqueness):
Feb 11 17:59:02 bob-the-builder kernel: eth0: vortex_error(), status=0xe081
Feb 11 17:59:18 bob-the-builder kernel: eth0: vortex_error(), status=0xe281
Feb 11 18:01:19 bob-the-builder kernel: eth0: vortex_error(), status=0x8081
Feb 11 18:01:54 bob-the-builder kernel: eth0: vortex_error(), status=0x8281
And here are the details from vortex-diag following the EEPROM update:
[root@bob-the-builder kernel]# ./vortex-diag -m
vortex-diag.c:v2.15a 12/16/2003 Donald Becker (becker@scyld.com)
http://www.scyld.com/diag/index.html
Index #1: Found a 3c920 Series NIC adapter at 0xdc00.
Station address 00:01:03:2a:29:ee.
Receive mode is 0x07: Normal unicast and all multicast.
MII PHY found at address 24, status 786d.
MII PHY 0 at #24 transceiver registers:
3000 786d 0180 7750 05e1 45e1 0001 0000
0000 0000 0000 0000 0000 0000 0000 0000
0238 0087 0000 0000 0000 0000 c4c8 0300
0100 0438 2010 2000 8000 0000 0000 0000.
[root@bob-the-builder kernel]# ./vortex-diag -a
vortex-diag.c:v2.15a 12/16/2003 Donald Becker (becker@scyld.com)
http://www.scyld.com/diag/index.html
Index #1: Found a 3c920 Series NIC adapter at 0xdc00.
Station address 00:01:03:2a:29:ee.
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 4, registers values by window:
Window 0: 0000 0000 d93f 0000 e3e3 00bf ffff 0000.
Window 1: FIFO FIFO 0700 0000 0000 007e 0000 2000.
Window 2: 0100 2a03 ee29 0000 0000 0000 0042 4000.
Window 3: 0000 0180 05ea 0000 000a 0800 0800 6000.
Window 4: 0000 0000 0000 0cd8 0001 8c80 0000 8000.
Window 5: 1ffc 0000 0000 0600 0807 06ce 06c6 a000.
Window 6: 0000 0000 0000 0400 0000 0108 0376 c000.
Window 7: 0000 0000 0000 0000 0000 0000 0000 e000.
Vortex chip registers at 0xdc00
0xDC10: **FIFO** 00000000 00000054 *STATUS*
0xDC20: 00000020 00000000 00080000 00000004
0xDC30: 00000000 711d8ee3 35f6f140 00080004
0xDC40: 0091e54f 00000000 000000b7 00000000
0xDC50: 00000000 00000000 00000000 00000000
0xDC60: 00000000 00000000 00000000 00000000
0xDC70: 00009800 00000000 01600160 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 352, Rx 352.
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: half-duplex.
Station address set to 00:01:03:2a:29:ee.
Configuration options 0042.
[root@bob-the-builder kernel]# ./vortex-diag -ee
vortex-diag.c:v2.15a 12/16/2003 Donald Becker (becker@scyld.com)
http://www.scyld.com/diag/index.html
Index #1: Found a 3c920 Series NIC adapter at 0xdc00.
Station address 00:01:03:2a:29:ee.
Receive mode is 0x07: Normal unicast and all multicast.
EEPROM format 64x16, configuration table at offset 0:
00: 0001 032a 29ee 9200 0151 0048 454a 6d50
0x08: 2940 0800 0001 032a 29ee 0010 0000 00aa
0x10: 72a2 0000 0000 0580 0000 0000 0000 10b7
0x18: 1000 000a 0000 6300 ffb7 b7b7 0000 0000
0x20: 00a0 1234 5600 0000 0000 0000 0000 0000
0x28: 0000 0000 0000 0000 0000 0000 0000 0000
0x30: ffff ffff ffff ffff ffff ffff ffff ffff
...
The word-wide EEPROM checksum is 0xee7c.
Saved EEPROM settings of a 3Com Vortex/Boomerang:
3Com Node Address 00:01:03:2A:29:EE (used as a unique ID only).
OEM Station address 00:01:03:2A:29:EE (used as the ethernet address).
Device ID 9200, Manufacturer ID 6d50.
Manufacture date (MM/DD/YYYY) 10/17/2000, division H, product JE.
A BIOS ROM of size 0Kx8 is expected.
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 10b7 Device 1000.
100baseTx 10baseT.
Vortex format checksum is incorrect (36 vs. 10b7).
Cyclone format checksum is incorrect (0x8b vs. 0xa0).
Hurricane format checksum is correct (0xa0 vs. 0xa0).
mii-diag is not so happy, however, and reports:
[root@bob-the-builder kernel]# ./mii-diag
Using the default interface 'eth0'.
Basic registers of MII PHY #24: 0000 0000 0000 0000 0000 0000 0000 0000.
No MII transceiver present!.
Use '--force' to view the information anyway.
--
====( Chris Newbold <cnewbold@laurelnetworks.com> )==========================
Laurel Networks, Inc. voice: +1 412 809 4200 fax: +1 412 809 4201
"If you fool around with a thing for very long you will screw it up." --Murphy
------------------------------------------------------------------------------