[vortex] 3c590 media selection

Donald Becker becker@scyld.com
Sun, 7 Jan 2001 13:40:17 -0500 (EST)

On Sun, 7 Jan 2001, Andrew Morton wrote:

> > 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?

Quick tutorial:

Autonegotiation takes place on top of the 10baseT link beat.

10baseT link beat was originally a few bits transmitted every 16.8
milliseconds when the link is idles.  The link beat looks like an incomplete
packet preamble, and is ignored by the Ethernet hardware.  Link beat was a
clever way to verify that the link was established -- the Rx data LED
indicated that the link was connected.

Autonegotiation encodes one communication word in the same 16.8 msec period.
The data looks like link beat pulses to old hardware, but the pulses are
carefully timed to communicate an 11-13 bit word.
The same word is retransmitted until acknowledged.  For reliability the
receiver must see the same data at least three times before acknowledging.
Add on the time to switch to the negotiated mode at it starts taking a
human-perceivable amount of time to complete autonegotiation.

for more information on how this works.

> > > 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 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.

Our goal is to have almost properly connected systems working with no
I think that we can consider the system above as "not properly connected".

> 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.

The disconnect-the-cable scenerio is the only one that concerns me.  The
driver should continue to work even with a temporary loss of link beat.
That situation won't be solved by an override, because the driver will work
with the default when they initially install and the user won't know they
need to force the media type to have a reliable connection.

> 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.

IIRC, the default value is '0' which means autoselect preferring 10baseT.

BTW, there are two concepts for forced-10baseT
   Media lock to 10baseT, but require link beat before transmitting
   Ignore link beat

Donald Becker				becker@scyld.com
Scyld Computing Corporation		http://www.scyld.com
410 Severn Ave. Suite 210		Second Generation Beowulf Clusters
Annapolis MD 21403			410-990-9993