Re: Oops with 3c59x module (3com 3c595 NIC)

From: Andrew Morton (akpm@digeo.com)
Date: Sat Dec 07 2002 - 18:46:43 EST


Jeff Garzik wrote:
>
> Andrew Morton wrote:
> > That's a transmit underrun - data is not being fed into the NIC
> > across the PCI bus fast enough. Possibly something has gone
> > wrong with the busmastering logic on the mainboard, or the NIC.
> >
> > The driver will reset the transmitter when this happens, as per the
> > manual. There's not much else we can do.
>
> pci-skeleton.c and several of Don's drivers actually do do something
> else on TxUnderrun, twiddle DMA burst settings:
>
> if ((intr_status & TxUnderrun)
> && (np->tx_config & TxThresholdField) !=
> TxThresholdField) {
> long ioaddr = dev->base_addr;
> np->tx_config += TxThresholdInc;
> writel(np->tx_config, ioaddr + TxMode);
> np->stats.tx_fifo_errors++;
> }
>
> I wonder how feasible it is to do that on 3c59x hardware?

It is quite feasible. But it seems that current versions of the
driver disable thresholding anyway. We had some problems...

Uncommenting this line:

// issue_and_wait(dev, SetTxStart|0x07ff);

might be interesting.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Sat Dec 07 2002 - 22:00:31 EST