[tulip] problems with ADMtek device

Donald Becker becker@scyld.com
Mon, 5 Feb 2001 06:22:07 -0500 (EST)


On Mon, 5 Feb 2001, Gero Zylka wrote:

> since upgrading from a 10Mbps to a 100Mbps hup I've got problems
> with my network device under Linux. I guess the problem is caused
> by an incompatibility between network device (still running at
> 10 Mbps/half_duplex) and the hup (running at 100Mbps, full_duplex).

Full duplex??  Do you have a switch?
"Hub" usually refers to a repeater.  A switch or router is technically a
hub, but referred to by the more precise name.

Why did you force the duplex on the switch?  That's the cause of your
problem.  Forcing the duplex disables autonegotiation, resulting in the
duplex mismatch that you are seeing here.  Even if you correctly force
the duplex at both ends, you are inviting future configuration problems.

> Here are the facts:
> The network device of my linux box hangs once a day with a transmitter
> timeout problem:
> 
> Feb  4 22:53:06 scream kernel: eth0: Transmit timed out, status fc264010, CSR12
> 00000000, resetting...
...
> Also, I detected a lot of carrier problems and network collisions:

You should expect problems with a misconfiguration!
What driver version are you using?  What is the detection message?
The driver should recover from transmit errors, but without knowing the
details...

> The problem is that I dont know how to switch my network card to
> 100Mbps full_duplex.

It depends on the transceiver type the card uses.  That's described in
the detection message, along with the driver version.

> Using the mii_diag tool I get the following output:
> 
> [root@scream PACKAGES]# ./mii-diag -vfA 100baseTx-FD
...
>  Setting the media capability advertisement register of PHY #1 to 0x0101.
>  MII PHY #1 transceiver registers:
>    0000 0000 0000 0000 0000 0000 0000 ffff

OK, this is a problem.
You are _advertising_ 100baseTx-FDX, not forcing full duplex.
Your link partner is set to forced full duplex, which turns off
 autonegotiation.
Since autonegotiation did not complete, you didn't agree on a media
type!

> [root@scream ~/tulip]# ./tulip-diag -afmmevwA 100baseTx-FD
> tulip-diag.c:v2.06 1/8/2001 Donald Becker (becker@scyld.com)
>  http://www.scyld.com/diag/index.html
> Index #1: Found a ADMtek AL985 Centaur-P adapter at 0x1400.
> ADMtek AL985 Centaur-P chip registers at 0x1400:
...
>  Comet duplex is reported in the MII status registers.
>  Transmit started, Receive started, half-duplex.
>   The Rx process state is 'Waiting for packets'.
...
>  MII PHY found at address 1, status 0x786d.
>  MII PHY #1 transceiver registers:
>    3000 786d 0022 5410 0101 0081 0004 2001

This is a normal status.  Your link partner is generating 100baseTx link
beat and you didn't autonegotiate.

The primary recommendation is to stop forcing full duplex on both ends
and allow autonegotiation .  This link will just work, and you will
avoid future problems.

If you *must* force full duplex, use
   mii-diag -F 100baseTx-FDX

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