Hello Andrew!
Andrew Morton wrote:
> "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.
>
> As Don says, this is pretty wierd.
As you can see from my reply to him, the timeouts still occur from time
to time.
> It would be interesting to run 'vortex-diag -aa' when the card is up and
> running so we can verify that the TxStartThresh register is indeed set
> to the correct default value of 0x1ffc. Would you be able to grab
> vortex-diag.c from http://www.scyld.com/diag/ and do this?
Done - the output is:
vortex-diag.c:v2.00 4/19/2000 Donald Becker ([EMAIL PROTECTED])
http://www.scyld.com/diag/index.html
Index #1: Found a 3Com 3c590 Vortex 10Mbps adapter at 0x6200.
The Vortex chip may be active, so FIFO registers will not be read.
To see all register values use the '-f' flag.
Initial window 7, registers values by window:
Window 0: 0000 0000 0000 0000 0000 00bf 0000 0000.
Window 1: FIFO FIFO 0000 2000 8000 00ff 0ffc 2000.
Window 2: a000 cb24 e4d2 0000 0000 0000 00de 4000.
Window 3: 0010 0102 0000 0000 e138 0fff 0fff 6000.
Window 4: 0000 00d1 0000 0c80 0000 88c0 0000 8000.
Window 5: 1ffc 1ffc 00de 1ffc 0007 02de 00de a000.
Window 6: 0000 0200 0000 0600 0000 1a86 00c6 c000.
Window 7: 0000 0000 0000 0000 8000 00ff 0000 e000.
Vortex chip registers at 0x6200
0x6210: **FIFO** 00000000 00008000 *STATUS*
0x6220: ffffffff ffffffff ffffffff ffffffff
0x6230: ffffffff ffffffff ffffffff ffffffff
Indication enable is 00de, interrupt enable is 02de.
No interrupt sources are pending.
Transceiver/media interfaces available: 10baseT 10base2 AUI.
Transceiver type in use: 10baseT.
MAC settings: half-duplex.
Maximum packet size is 0.
Station address set to 00:a0:24:cb:d2:e4.
Configuration options 4000.
> Probably a better (prompter) fix for Tx underrun is to do a TxReset in
> vortex_error, clear tbusy and force a new BH Tx run.
Are you thinking of something like the following (I don't know what you
mean by "force a new BH Tx run")?
*** 3c59x.c.orig Wed May 24 00:15:19 2000
--- 3c59x.c Wed May 24 13:12:08 2000
***************
*** 1489,1502 ****
--- 1497,1511 ----
if (do_tx_reset) {
int j;
outw(TxReset, ioaddr + EL3_CMD);
for (j = 200; j >= 0 ; j--)
if ( ! (inw(ioaddr + EL3_STATUS) & CmdInProgress))
break;
outw(TxEnable, ioaddr + EL3_CMD);
+ clear_bit(0, (void*)&dev->tbusy);
}
}
Regards,
Anders K. Pedersen
-
To unsubscribe from this list: send the line "unsubscribe linux-net" in
the body of a message to [EMAIL PROTECTED]