[tulip] Catalist 1924<->Linksts LNE100TX only half duplex 10BaseT ??? ;-(

Donald Becker becker@scyld.com
Fri, 6 Apr 2001 08:56:28 -0400 (EDT)


On Fri, 6 Apr 2001, Maxim E. Zimovets wrote:

> I just bought a Linksys LNE100TX 10/100 Ethernet adapter v 4.1 and got
> following problem. 
> 
> The card has to be connected to Cisco Catalyst 1924 10BaseT port. Such
> port supports full duplex, but doesn't support autonegotiation.

I claim that this is non-standard/pre-standard equipment.  Equipment
should have autonegotiation to support full duplex.  Still, this
is a configuration that the driver supports.

> I do to insmod with following parameters: (though I changed a lot of parameters)
>  /sbin/insmod tulip full_duplex=1 options=0x20a debug=2
> 
> and dmesg shows
> 
>  tulip.c:v0.92t 1/15/2001  Written by Donald Becker <becker@scyld.com>
>    http://www.scyld.com/network/tulip.html
>  eth0: ADMtek Centaur-P rev 17 at 0xc801f000, 00:03:6D:1B:E4:14, IRQ 5.
>  eth0: Transceiver selection forced to 10baseT-FDX.
>  eth0:  MII transceiver #1 config 1100 status 786d advertising 0041.
>  eth0: tulip_open() irq 5.
>  eth0: No media description table, assuming 10baseT-FDX transceiver, CSR12 00.

That looks fine.

> At the same time mii-diag -v shows:
> mii-diag.c:v2.00 4/19/2000  Donald Becker (becker@scyld.com)
>  http://www.scyld.com/diag/index.html
> Using the default interface 'eth0'.
>  MII PHY #1 transceiver registers:
>    1100 786d 0022 5410 0041 0021 0004 2001
...
>  Basic mode control register 0x1100: Auto-negotiation enabled.

Hmmm, this should arguably be set to 0x0100.

To do this, the code around line 906 should be changed from
		/* Enable autonegotiation: some boards default to off. */
		mdio_write(dev, phy, 0, (mii_reg0 & ~0x3000) |
			   (tp->full_duplex ? 0x0100 : 0x0000) |
			   ((media_cap[tp->default_port] & MediaIs100) ?
				0x2000 : 0x1000));
to	
		/* Enable autonegotiation: some boards default to off. */
		mdio_write(dev, phy, 0, (mii_reg0 & ~0x3000) |
			   (tp->full_duplex ? 0x0100 : 0x0000) |
			   ((media_cap[tp->default_port] & MediaIs100) ?
				0x2000 :
			(media_cap[tp->default_port] & MediaAlwaysFD) ?
		0 : 0x1000));

>  - Is it possible to switch the card from autonegotiation mode only to
> some particular one? 

> (options F and A of tulip-diag and mii-diag don't work. Do they really suppose to work?;-(  )

Yes, AFAIK they should work properly.
You must be 'root' to change the settings, and you must spell the
parameter  "10baseT-FD", not "10baseT-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