On Wed, 24 May 2000, Anders K. Pedersen wrote:

> We had a problem with a 3c590 card, that after a while stopped
> transmitting packets, and the only way to get it to work again was
> to unload the driver and restart the network. Every time it happened,
> a "Transmit error, Tx status register 90." (from time to time more

Hmmm, A PCI Tx underrun, on a Vortex.
(See  http://www.scyld.com/network/vortex.html  for a decode of the error
bits.)


> May 23 21:05:17 socks kernel: 3c59x.c:v0.99H 19May00 Donald Becker 
>http://cesdis.gsfc.nasa.gov/linux/drivers/vortex.html 
> May 23 21:05:17 socks kernel: eth1: 3Com 3c590 Vortex 10Mbps at 0x6200,  
>00:a0:24:cb:d2:e4, IRQ 10 
> May 23 21:05:17 socks kernel:   8K byte-wide RAM 1:1 Rx:Tx split, autoselect/10baseT 
>interface. 

Note: this is an old 3c590 card, not a 3c900 series card.
The transmit (and Tx error recovery) path is different.

> May 23 23:19:56 socks kernel: eth1: Transmit error, Tx status register 90. 

Hmmm, it's very curious that this would be happening with a 10Mbps-only
card.  The Tx FIFO is 4KB, and the chip shouldn't start transmitting until
the whole packet is in the FIFO.  That should rule out a FIFO underrun as an
error source.


> --- 3c59x.c.orig      Wed May 24 00:15:19 2000
> +++ 3c59x.c   Wed May 24 00:20:21 2000
> @@ -1401,6 +1401,12 @@
>       outw(TxEnable, ioaddr + EL3_CMD);
>       dev->trans_start = jiffies;
>  
> +     /*
> +      * AKP: Clear the transmitter busy flag
> +      * otherwise the driver will never transmit again
> +      */
> +     dev->tbusy = 0;
> +
>       /* Switch to register set 7 for normal use. */
>       EL3WINDOW(7);
>  }

This is a bad patch -- the tbusy should only be cleared for the Vortex
chips.  Move it up a few lines:

                outb(PKT_BUF_SZ>>8, ioaddr + TxFreeThreshold);
                outw(DownUnstall, ioaddr + EL3_CMD);
-       } else
+       } else {
                vp->stats.tx_dropped++;
+               clear_bit(0, (void*)&dev->tbusy);
+       }

But this still should never be happening...

Donald Becker                           [EMAIL PROTECTED]
Scyld Computing Corporation
410 Severn Ave. Suite 210
Annapolis MD 21403


-
To unsubscribe from this list: send the line "unsubscribe linux-net" in
the body of a message to [EMAIL PROTECTED]

Reply via email to