[vortex] 3C905TX doesn't see 10Mbps hub till unplugged/replugged

Donald Becker becker@scyld.com
Fri, 30 Jun 2000 17:29:44 -0400 (EDT)


On Fri, 30 Jun 2000, Bogdan Costescu wrote:

> On Fri, 30 Jun 2000, Donald Becker wrote:
> > The standard doesn't define the contents of MII reg 5 when autonegotiation
> > hasn't occurred.  Some transceivers report the link speed without setting
> > the 0x4000 "autonegotiation complete" bit, but others just leave reg 5 set
> > to '0x0000'.
> 
> You mean that reg. 5 can be '0x0000' when autonegotiate did complete?
> I was thinking of reg. 5 == 0 as a "bad things happened" indicator.

No, it might just mean that autonegotiation did not complete.

> No, it was not clear. I have found this register in the docs for both 905C
> and 905/905b and I supposed that is more or less standard. (I also suppose

The 905 always uses an external transceiver.

> that standard means here "whatever 3Com provides on their boards" and not
> "MII general standard"; I always talk about 3Com specifics).

Keep in mind that there are 100baseT4 MII transceivers, not just 100baseTx.

> I also see in your driver (in set_media_type() from 0.99Qg):
> 
> 	if (mii_reg5 == 0xffff || mii_reg5 == 0x0000)
>;			/* No MII device or no link partner report */
> 
> What's the meaning of this ?

0xffff means that there is no MII transceiver.
0x0000 might mean that there is no MII transceiver, but it usually means
that there is no link partner report (no autonegotiation).

> OK, that means that we have at least one reliable way of detecting the
> situation when the link was not established. So we can check for this and
> restart the autonegotiation.

Consider MII+10base2 boards.  The driver must switch to 10base2 when there
is no twisted pair link beat.

Donald Becker				becker@scyld.com
Scyld Computing Corporation		http://www.scyld.com
410 Severn Ave. Suite 210		Beowulf Clusters / Linux Installations
Annapolis MD 21403