[eepro100] Auto-negotiation: can set by mii-diag but not by boot

Donald Becker becker@scyld.com
Tue, 26 Jun 2001 23:37:22 -0400 (EDT)


On Tue, 26 Jun 2001, Dan Halbert wrote:

>   DH>> Originally, /etc/lilo.conf said:
>   DH>>  append="ether=0,0,0x30,eth0"    # set 100Full no autonegotiate
>   DH>> I removed this line to enable autonegotiation, since I understand that
>   DH>> "options=0" should mean auto-negotiation is turned on (right?).
> 
>   DB>"options=0" did mean that the setting is left unchanged.
> 
> Aha!  So there's a different way of forcing NWay autonegotiation?

No, uhmm, yes, but...
If you compile the driver with -Dhonor_default_port you can turn on
autonegotation, or force the various speeds and duplex combinations.
But if the driver isn't compiled with that (obscure) flag, there is no
boot-time way to turn autonegotation back on.

> I was assuming that options=0 would set auto-negotiation because
> of the example on this page:
>   http://www.scyld.com/network/eepro100.html

>         insmod eepro100.o debug=1 options=0x20,0,0x50
>   This sets the first adapter to 100mbps-only operation, the second to
>   the default NWay autonegotiation, and the third...

What the page should have said is that value "0", the default value,
leaves the transceiver at it's previous setting.  The transceiver powers
up in autonegotation mode, so "0" usually leaves the transceiver in that
mode.  If a previous driver or the BIOS changes the setting you should
use 'mii-diag -R' (-R means reset) or 'mii-diag -A 0x01e1' to restore
the setting.

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