[tulip] [PROBLEM]: IntraServer Quad - Digital DS21143

Donald Becker becker@scyld.com
Wed, 27 Jun 2001 16:19:11 -0400 (EDT)


On Wed, 27 Jun 2001, Till Immanuel Patzschke wrote:

> we're using the IntraServer (LSI now) QuadEthernet board w/ Linux 2.4.0.SuSE
> (and tried up to 2.4.5).  The board identifies as Digital DS21143
> Tulip rev 65 at 0xb800,...
>
> I connected (just) one of the ports to an unused switch 10/100 and an Intel
> EEpro100 (based in a different machine) to the same switch.
> When I try to generate traffic, I get ONLY 20.8kB/s (FTP) -- if I connect both
> NICs w/ a cross-over cable, I get almost no traffic at all
> (0.2KB/s)...

This a driver/chip problem with the 21143-TD (rev. 64/65) using a SYM
transceiver and autonegotiating 100baseTx-FDX.

This board should work with the recent drivers from Scyld, however those
drivers support kernel versions 1.2 through 2.2 only, not 2.4.
The modified driver in the 2.4 kernel has the old tulip driver problem
with the 21143TD + SYM boards.

> The log (tulip_debug=7) shows lots of transmission errors and constant
> re-negotiations.

Yes.  With that 21143 configuration the driver must immediately disable (!)
autonegotation, configure the general purpose bits and start testing
100baseTx link beat.  If 100baseTx link beat is established within one
second, the driver should set the FDX bit in CSR6.  If the FDX bit is
set with autonegotiation enabled, the 21143 will ignore the setting.

> Jun 27 13:42:00 ipat01 kernel: eth4: Digital DS21143 Tulip rev 65 at 0xb800,
...
> Jun 27 13:42:00 ipat01 kernel: eth4:  Index #3 - Media 100baseTx-FD (#5)
> described by a 21143 SYM PHY (4) block.
...
> Jun 27 17:12:23 ipat01 kernel: eth4: 21143 link status interrupt 45e1d2ce, CSR5
> f0668010, fffbffff.
> Jun 27 17:12:23 ipat01 kernel: eth4: Switching to 100baseTx-FD based on link
> negotiation 01e0 & 45e1 = 01e0.
> Jun 27 17:12:23 ipat01 kernel: eth4: 21143 non-MII 100baseTx-FD transceiver
> control 08af/0005.

This is the switch -- the driver is setting the general purpose pin
values from the EEPROM table.

> Jun 27 17:12:23 ipat01 kernel: eth4:  Setting CSR15 to 08af0008/00050008.
...
> Jun 27 17:12:23 ipat01 kernel: eth4:  Setting CSR6 83860200/b3862202 CSR12
> 45e1d2ce.

This is the problem: the FDX bit (0x0200) is set in CSR6, but CSR12 has
been left in autonegotiation mode.

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