[tulip] Netgear tulip autonegotiation problem..

John Clemens clemens@missioncriticallinux.com
Fri, 17 Nov 2000 13:52:17 -0500 (EST)


I have kindav a weird problem...

Two Netgear tulip-based cards, hooked back-to-back with a crossover
cable.  Both cards come up and autonegotiate at 100-FD and work happily.
Now, if disconnect the network cord from one card, and then re-connect,
the connection stops working until you ifconfig down/up the
interface.  It appears to be a problem with autonegotiation, because if
you pin the speeds using the options= flag, then you don't have this
problem (aka, the cards continue working without the need to ifconfig
down/up).  Also, if you use the old_tulip driver in 2.2.16, the it works
fine.  It even works fine if you have a hub in between.  Here's a summary
of the situation:

       2.4.0-test10 (crossover, no kernel options) : doesn't work
       2.4.0-test10 (crossover, options=0x214) : works
       2.4.0-test10 (crossover, options=0x205) : works
       2.2.16 (crossover, no kernel options, tulip) : doesn't work
       2.2.16 (crossover, no kernel options, old_tulip) : works
       all 2.2.16 with specific options: works.
       all with a netgear DS516 hub in between: works.

There are a ton of workarounds for this, but i'd like to know why some
work and some don't.  I'm guessing that the MII autonegotiation on these
cards is broken in that it fails to tell the other card to re-renegotiate
after it detected the link failure... but this is way over my head.  The
old_tulip driver does seem to default to the old PHY interface however, if
that helps.

mii-diag output available upon request.

any help would be much appreciated,
john.c

- --
John Clemens        clemens@missioncriticallinux.com
Kernel Engineer               Mission Critical Linux
Linux Parallel/Architecture/HPC/OS/Driver Specialist