[vortex] 3c905C not auto-negotiating full duplex 100BaseT
David LANDGREN
dlandgre@bpinet.com
Thu, 27 Sep 2001 10:41:04 +0200
|> # mii-diag eth0
|> Basic registers of MII PHY #0: 0000 0000 0000 0000 0000 0000 0000 0000.
|
|This is wrong -- the transceiver should PHY #24.
|
|> dmesg contains:
|> 3c59x.c 16Aug00 Donald Becker and others
|> http://www.scyld.com/network/vortex.html
|> eth0: 3Com 3c905C Tornado at 0xe800, 00:xx:xx:xx:xx:xx, IRQ 11
|> 8K byte-wide RAM 5:3 Rx:Tx split, 10baseT interface.
|
|The card should be set to "Autonegotiate" for this driver version.
|
|Either change the EEPROM setting or get an updated driver.
Given that I haven't found out how to play with the EEPROM to set the card
to autonegotiate, I updated the driver (aside: I would like to mention that
http://www.scyld.com/network/updates.html is very well written and easy to
follow. I wish all documentation was this clear). I couldn't unload the
module (device busy), so I rebooted the box and dmesg now reports:
[...]
3c59x.c:v0.99U 7/30/2001 Donald Becker, becker@scyld.com
http://www.scyld.com/network/vortex.html
eth0: 3Com 3c905C Tornado at 0xe800, 00:50:da:4a:37:65, IRQ 11
8K buffer 5:3 Rx:Tx split, 10baseT interface.
MII transceiver found at address 24, status 780d.
Using bus-master transmits and whole-frame receives.
mii-diag reports
# mii-diag eth0
Basic registers of MII PHY #24: 1000 780d 0040 6176 0541 0000 0000 0000.
Basic mode control register 0x1000: Auto-negotiation enabled.
You have link beat, and everything is working OK.
Your link partner does not do autonegotiation, and this transceiver type
does not report the sensed link speed.
End of basic transceiver information.
# mii-diag -r eth0
Restarting negotiation...
Basic registers of MII PHY #24: 1000 780d 0040 6176 0541 0000 0000 0000.
Basic mode control register 0x1000: Auto-negotiation enabled.
You have link beat, and everything is working OK.
Your link partner does not do autonegotiation, and this transceiver type
does not report the sensed link speed.
End of basic transceiver information.
Just for completeness, lsmod reports
[...]
3c59x 20956 1
pci-scan 3516 1 [3c59x]
(so I know I have pci-scan in there too).
What's wrong with this picture? The link partner is an HP ProCurve 1600,
and the port in question is configured for autoneg. In fact all ports on
that switch are, in the unlikely event that I traced cables incorrectly.
Further info: I have the same model card, same model PC, same switch, but
running under FreeBSD 4.2 and its ifconfig reports
xl0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
inet x.x.x.x netmask 0xffffffff broadcast x.x.x.x
inet6 fe80::xxx:xxx:xxxx:xxxx%xl0 prefixlen 64 scopeid 0x1
ether 00:xx:xx:xx:xx:xx
media: autoselect (100baseTX <full-duplex>) status: active
I would like to know whether I should be doing something like
insmod 3c95x.o options=x
where x is one of 4, 5, 0x204, 0x205...
Or is there something else I should be doing?
Thanks,
David