Problems with LinkSys 10/100 cards

Steve Huang
Wed Feb 3 20:37:05 1999

    Many people claimed this problem, as using a PNIC adapter, the
always shows the messag "eth0: The transmitter stopped! CSR5 is 2678016,
CSR6 816e2002."
when system boot up or media changed. This is coursed by pnic_timer
when media changed, pnic_timer STOP transmitter first and then update
STOP transmit Interrupt occured and show the message. We can remove the
Stop Tx code in the pnic_timer routine to reduce the message show.

              outl(tp->csr6 | 0x0002, ioaddr + CSR6);     /* Restart Tx
              outl(tp->csr6 | 0x2002, ioaddr + CSR6);   (orginal)
              outl(tp->csr6 | 0x2002, ioaddr + CSR6);   (new)

    Many people complained that the performance of PNIC adapter has 30%
loss then DC21140. I install the latest tulip.c(v0.90f) and found the
Linux tulip
driver set default Tx threshold to STORE AND FORWARD for PNIC adapter,
but set default Tx threshold to 128 bytes for DC21140 adapter. So the
performance of PNIC has 30% loss then DC21140.

    We can change default Tx threshold to 128 bytes for PNIC adapter in
the tulip.c . The following is the line number of tulip.c(v0.90f) needed
be modified. Take it for referance.

<           tp->csr6 = 0x814C0000 | (tp->full_duplex ? 0x0200 : 0);
>           tp->csr6 = 0x816C0000 | (tp->full_duplex ? 0x0200 : 0);
<             new_csr6 = 0x810C0000;   (new)
>             new_csr6 = 0x812C0000;   (orginal)
<             new_csr6 |= 0x810C0000;   (new)
>             new_csr6 |= 0x812E0000;   (orginal)
<             new_csr6 |= 0x814C0000;   (new)
>             new_csr6 |= 0x816E0000;   (orginal)

Best regards,

Steve Huang, Software Engineer
LITE-ON Communictions Corp.

> -----Original Message-----
> From: Brian Denheyer []
> Sent: Thursday, February 04, 1999 1:43 AM
> To:
> Cc:
> Subject: Re: Problems with LinkSys 10/100 cards
> >>>>> "Adam" == Adam Crews <> writes:
>     Adam> I added a Linksys 10/100 card to both machines as eth1 and
>     Adam> have connected them together with a crossover cable.  I am
>     Adam> using the tulip.c:v0.90 version of the driver on a 2.0.36
>     Adam> kernel.  I have tried the tulip.c:v0.90h version with the
>     Adam> same results.
>     Adam> Both host's eth1 get the errors: eth1: The transmitter
>     Adam> stopped!  CSR5 is 2678016, CSR6 812e2202.  eth1: Changing
>     Adam> PNIC configuration to full-duplex, CSR6 812e0200.
> Seems like everyone gets that "warning" including me.  And by the way
> it is referred to as a warning, not an error, in the source.
> What I have noticed is that you have to have both machines up and
> running when you load the driver, or at any rate, that seems to help.
> I think that the cards do "auto-negotiation" for speed and so when
> there is nothing else to talk to when the driver activates the card it
> sort of just stops.
> In theory, one would think it would "start" again when the other
> computer fires up and that does seem to happen when I use win.  When I
> use linux I have to ifconfig eth0 down, rmmod and then bring the
> eth0's back up to get things working... Not exactly convenient.
> The really bad news is that even when it works under Linux->Linux
> (2.0.36) the transfer rates stink (< 1 Mbyte/s).  Then again they're
> not very good going from Win->Linux either, and I'm using a 7 ft
> cable.
> So I see two problems :
>   A. the warning messages
>   B. the crummy performance (< 1Mb/s)
> Could someone PLEASE direct me to a datasheet for the LC82C169 so that
> I can stop whining and get under the hood and fix this...  I ain't
> afraid of device drivers, Donald's already done 100% of the work, that
> last 0% shouldn't be too bad :-)  
> Also if someone could explain how option interpretation for the
> modules works that would be helpful.  It would be nice for debugging
> purposes to add options which turned various debugging code on and
> off.
> In the meantime, Linksys Etherfast 10/100 cards should probably be
> avoided.
> Thanks
> Brian
> --
> Brian Denheyer   
> Deldot Design, Inc.        (503) 788-1607
> __             
> \/.d = Electronic design and development