[vortex] The mysteries of on-chip MII.
Bogdan Costescu
bogdan.costescu@iwr.uni-heidelberg.de
Mon Mar 25 10:59:25 2002
On Sat, 23 Mar 2002, Bill Cattey wrote:
> Having set EEPROM location 0x000d to the toxic 0x0160 value
> here are our results:
To answer your previous post, 0x0160 means "use autoselect+MII", while
0x0180 means "use autoselect+NWAY". "use MII" is a relict value from the
older cards (up to and including Boomerang), so having the card not
activate the on-chip transceiver in this case is somehow understandable.
I'm a bit surprised that the 3c90x driver (if it's the 3Com one) does this
as it was supposed to only support Cyclone and later chips where "use MII"
(=6) doesn't make sense, the right value for external MII transceivers is
9 (if it makes sense at all to use this as default media...)
> Many errors in dmesg output of the form:
> Rx error: status 8c.
> Rx error: status 08.
They mean:
08 - crcError
8c - dribbleBits, crcError and alignmentError
dribbleBits is tagged as informative only.
I haven't seen such errors before, but I guess that they are caused by
a duplex mismatch.
> I'm advertising 0501: Flow-control 100baseTx-FD
But that's not quite what I expected, I expected 10baseT-FD to be there as
well. Did you play with 'mii-diag -A' ?
OK, so you say that restarting the autonegotiation fixes the problem. Hmm,
this is good news for getting this type of cards to work, but we can't do
it for the general case: leaving the link alone when the driver comes up
was introduced in the driver some months ago and supposed to be the proper
thing to do. So maybe it's time for a new module option to request
restarting of the autonegotiation in _up/_open; actually, immediately
after this modification was made to the driver, I posted a message
explaining some problems that I had where restarting autonegotiation might
have helped; see this message and the rest of the thread:
http://www.scyld.com/pipermail/vortex-bug/2001-July/000997.html
Can somebody else please confirm or infirm my judgement ?
Another option might be to do the restart only when all these conditions
are met:
- the card is a Cyclone or newer
- EEPROM media is set to 10baseT, 100baseTx or MII (=6) - but not to
AUI, FX, T4 and external MII (=9); we also don't do it when EEPROM media
is set to Autonegotiate - in this case the card is supposed to come up
properly
- EEPROM media Autoselect bit is set; this is the ideal case, to let
people who really know what they are doing... wrong 8-)) get the desired
media.
- media related module options are missing or "force" autonegotiation
So people (like me 8-)) who make sure that the EEPROM media setting says
"Autonegotiate" (with or without Autoselect bit turned on) are unaffected.
This would however not solve the problem mentioned in the above thread,
maybe we should have a module option anyway...
--
Bogdan Costescu
IWR - Interdisziplinaeres Zentrum fuer Wissenschaftliches Rechnen
Universitaet Heidelberg, INF 368, D-69120 Heidelberg, GERMANY
Telephone: +49 6221 54 8869, Telefax: +49 6221 54 8868
E-mail: Bogdan.Costescu@IWR.Uni-Heidelberg.De