[tulip] FULL DUPLEX

Donald Becker becker@scyld.com
Sun Nov 3 22:38:00 2002


On Sun, 3 Nov 2002, Homer Wilson Smith wrote:

> > >     Running Linux 2.0.38 using latest tulip.c, and pci-scan.c, tulip-diag
> > > SAYS the chip is in full duplex mode, but the full dup light is not on,
> >
> > What driver version?
> > What option are you passing?
> > What is the detection message?
> 
>    Follows....
> 
> Ran the following /root/net to modprobe eth0 and assign IP's.
> 
> Also tried options=10,10,10,10 but that locks it up cold,
> lights go out, no connection at all.

Using '10' is the correct value.
Please send the output of tulip-diag with that setting.

Also, please try running
  mii-diag eth0 -F 10baseTx-FDX
and report the result.

> modprobe eth0 options=4,4,4,4

This will set the to use the "serial" (non-MII) transceiver, which isn't
connected.

> Nov  3 19:56:10 fw1 kernel: tulip.c:v0.95 6/21/2002  Written by Donald Becker <becker@scyld.com>
> Nov  3 19:56:10 fw1 kernel:   http://www.scyld.com/network/tulip.html
> Nov  3 19:56:10 fw1 kernel: eth0: Digital DS21143-xD Tulip rev 65 at 0xd000, 00:80:C8:B9:55:A5, IRQ 11.
> Nov  3 19:56:10 fw1 kernel: eth0: Transceiver selection forced to 10baseT-FDX.
> Nov  3 19:56:10 fw1 kernel: eth0:  Index #0 - Media MII (#11) described by a 21142 MII PHY (3) block.

> Here are td, td -af, td -ee and td -mm
> 
> As you can see port 4 says it is in full duplex mode, but
> the Fd light is not on, and performance stats on
> Cisco Switch show runt frames and alignment errors indicating
> half dup connection.  Put Cisco into half dup, and conneciton
> runs fine.
...
> Index #4: Found a Digital DS21143 Tulip adapter at 0xd000.
>  Port selection is MII, full-duplex.
>  Transmit started, Receive started.

Hmmm....

>  MII PHY #1 transceiver registers:
>    1100 786d 2000 5c10 01e1 0021 0004 2001

Ahhh, autonegotiation is still enabled.
Please try the following change in tulip.c around line 969

	/* 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));
+				0x2000 : 0x0000));

-- 
Donald Becker				becker@scyld.com
Scyld Computing Corporation		http://www.scyld.com
410 Severn Ave. Suite 210		Scyld Beowulf cluster system
Annapolis MD 21403			410-990-9993