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

Donald Becker becker@scyld.com
Sun, 25 Jun 2000 18:19:12 -0400 (EDT)

On Sun, 25 Jun 2000, Bogdan Costescu wrote:

> On Sun, 25 Jun 2000, Donald Becker wrote:
> > There are several tools that do the equivalent of
> >   ifconfig down; muck with a parameter; ifconfig up
> > They expect that the interface will drop few, if any, packets.
> ifconfig does vortex_open AFAIK. If vortex_open blocks until interface is
> read, I see no problem.

If you reset the transceiver on 'down+up', you will drop up to three seconds
worth of received packets.  This is Bad.

> > > Another (expensive) solution would be to try to set all modes on the MII
> > > and see which one is working (by trying to read the MII remote end
> > > registers); of course, we'd do this only if the (current) automatic
> > > procedure didn't work, so we just add a test for it and the new code.
> > 
> > I'm not certain what you mean by this.  Not all transceivers support the
> > "remote page" facility.
> I mean: we leave the current code in, but at the end of media-setting-for- 
> MII code we check if it's working by trying to read the "link partner
> ability" (if we have this register). If we read 0 or something stupid,

The bit to read is either "autonegotiation complete" in register 5, or link
beat in register 4.

Some MII transceivers report the link speed sensed in register 5 when
autonegotiation did not complete, but this cannot be relied upon.
Similarly, the negotiated duplex and speed may be reported in the register
0, but this is not standardized.

> then we try one by one all the modes that are available on the
> transceiver. That does not modify the way the driver currently works, it

If by "trying all of the modes" you mean setting the link speed explicitly,
this isn't the correct approach:
   It should never be necessary
   It aborts any autonegotiation or autosensing in progress.
   Forcing 100baseTx will clog some 10baseT repeaters, which will output
     continuous collisions on all ports.  This can cascade and shutdown a
     whole repeated network!

It may be acceptable for the driver to reset the autonegotiation/autosensing
if no link beat is detected for three seconds after activating the
interface, but we should only only do this if it is confirmed to fix a

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