[vortex] 3c590 media selection

Andrew Morton andrewm@uow.edu.au
Sun, 07 Jan 2001 21:39:44 +1100


Donald Becker wrote:
> 
> On Sun, 7 Jan 2001, Andrew Morton wrote:
> 
> > > IIRC, we must select the 10baseT transceiver for some significant time to
> > > reliably detect 10baseT link beat, so we risk dropping a 10base2 packet if
> > > we poll.
> > 1.4 seconds.
> 
> Unrelated note: Autonegotation takes up to 3.0 seconds.  It used to be
> documented as 2.4, but they missed an unlikely even-worse-case scenerio.

The driver has 3.0.

That's a very long time.  Why should it take more than a microsecond?

> > In this case, dev->if_port is XCVR_10baseT, from `options'.  But there's
> > no link beat, so `ok' remains at zero and we go on to select the next
> > media type.
> >
> > I tested 0.99Ra with the 3c590, BTW.  It too got stuck on the 10base2
> > port when the 10baseT cable was removed.
> 
> > > > What happens is that the selection logic rotates to
> > > > 10base2 and then gets stuck there because 10base2
> > > > has no link beat indication.
> 
> Hmmm, after thinking about this for a while, it might make sense to have the
> following semantics for the 3c590:
>   if 10baseT link beat is ever detected, lock the media down to 10baseT.
> 
> It's pretty unlikely that a user would disconnect 10baseT and expect the
> card to switch to 10base2.  The only case I can think of is using a 10base2
> network as a fail-over when the 10baseT hub loses power.
> 
> It's much more likely that losing 10baseT link beat is temporary, and the
> user doesn't expect the card to work until link beat returns.

Yes, it is tricky.

I think the problem with this scheme is the situation where the machine
is booted with no ethernet attached.  It flips over to 10base2 and stays
there, which is probably irritating.

With the `medialock' change, users can reliably select their interface
via configuration.  The problem which remains is that people won't
know that they basically *have* to provide an `options' argument
to keep the 3c590 sane.  They'll just load the driver with no
options and get used to reloading the driver or rebooting every
time they disconnect the cable.

So perhaps it would be best to always lock down the media type for
a 3c590.  If no `options' were provided we lock it down to the
`default' value from EEPROM.

All we really lose from this is the ability to failover to 10base2,
and as you say this is probably a rare requirement.  And given
that there's no way to get back to the 10baseT inerface apart
from reloading the driver, it's perhaps not a very useful feature.