Errors from lance ethernet driver. Explain?

Errors from lance ethernet driver. Explain?

Post by Albert Schuell » Wed, 16 Jul 1997 04:00:00



Recently setup 4 linux boxes in the lab.  They've been up and running for
about 5 days now and I keep getting error messages from the lance ethernet
driver printed to the console and to /var/log/messages.  Here's a sample:

Jul 14 01:03:24 wastenot kernel: eth0: Tx FIFO error! Status 02ea.

These are old HP cards that are AMD compatible.  AMD LANCE and PCnet
(AT1500 and NE2100) support is what's selected in the kernel.  We had to
get rid of the HP Cards that came with the machines.  Linux couldn't talk
to them.  Anyway, these old cards appear to be working fine but for the
sporadic error messages.  Should I ignore these errors or is there actually
something going on here?  

Thanks,

Albert

--
Albert Schueller            ___   __o         Department of Mathematics
Office:  509-527-5413      ____ _'\<,_        Whitman College
Home:    509-527-9167          (*)/ (*)       Walla Walla, WA 99362

     Pgp Public Key:  http://schuelaw.whitman.edu/pgp.key

 
 
 

Errors from lance ethernet driver. Explain?

Post by Dave Pla » Thu, 17 Jul 1997 04:00:00



>Recently setup 4 linux boxes in the lab.  They've been up and running for
>about 5 days now and I keep getting error messages from the lance ethernet
>driver printed to the console and to /var/log/messages.  Here's a sample:

>Jul 14 01:03:24 wastenot kernel: eth0: Tx FIFO error! Status 02ea.
>These are old HP cards that are AMD compatible.  AMD LANCE and PCnet
>(AT1500 and NE2100) support is what's selected in the kernel.  We had to
>get rid of the HP Cards that came with the machines.  Linux couldn't talk
>to them.  Anyway, these old cards appear to be working fine but for the
>sporadic error messages.  Should I ignore these errors or is there actually
>something going on here?  

The Tx FIFO error condition means that there was a memory-to-chip
underrun while a packet was being transmitted.

The Lance/PCNet chips use an obligate-busmaster architecture.  They
have small (64-byte?) on-chip transmit and receive FIFOs.
When they're ready to start transmitting a packet, they fill their
transmit FIFO via busmaster ISA or PCI transfers, arbitrate for the
Ethernet, and start sending the packet.  Whenever the transmit FIFO
drains down to a threshold amount, the chip bids for another ISA or
PCI DMA timeslice, waits for the DMA arbitration to be completed and
access to be granted, and bursts another chunk of the packet into the
input of its FIFO.

If the chip isn't able to get enough DMA cycles or bandwidth, it's
possible for the transmit FIFO to run dry before the end of the packet
has been transmitted (some of the packet is still in the host memory
and hasn't been DMA'ed to the chip yet).  This is a Bad Thing.  The
chip can't simply stop transmitting in the middle of the packet and
resume later... the data _has_ to go out on time if it's to be sent at
all.

The Lance reacts to this condition by flagging the error in its status
registers, turning off its transmitter, and interrupting.  The network
"sees" a truncated packet;  it's normally discarded by the receiving
system or by the first gateway/router.

The Lance driver automatically flushes any untransmitted packets in
its transmit queue, resets the queue, and re-enables the transmitter.
The net effect is that any queued packets are lost;  the higher-level
code in the network stack (e.g. TCP) will usually retransmit the lost
data after a timeout.

The usual cause of a Tx FIFO underrun is contention for the host
memory bus.  It's fairly common for other busmaster-DMA controllers
(e.g. Adaptec / BusLogic / Future Domain SCSI controllers) to "hog"
the bus - they do fairly long DMA transfers and chew up a large
percentage of the total memory-bus bandwidth.  It's sometimes possible
to tweak these controllers to decrease their "on-time/off-time" ratio,
so that they will use (e.g.) only 25% of the available memory-bus time
rather than 50% or more.  Sometimes these controllers have DIP
switches to control this timing;  other times, you must modify the
driver source code.  If you're using a "floppy tape" system (tape
drive connected to the floppy controller), tweak the driver to
decrease the DMA block size - the default version does such big
transfers that it'll starve out a Lance for certain, and you'll get
"DMA busmaster arbitration errors" whenever the tape drive is running.

There are some chipsets (e.g. Intel Saturn II for the 486) which have
bugs in their busmaster/DMA arbitration logic.  On Saturn-based
systems (e.g. ASUS SP3G), turn off the "ISA GAT" feature - it _causes_
ISA busmaster timeouts, rather than helping matters.

If the problem isn't severe, you can probably live with it with few
ill effects.

--
Dave Platt                                        Speaker-to-kernels

Visit the Jade Warrior home page:  http://iq.navio.com/jade-warrior/

 
 
 

1. Q : LANCE Ethernet Driver(le) Problems

I have some problems about LANCE ethernet driver(le) in Solaris 2.3.

1. I found function prototype as below.
    void ddi_dev_is_needed(dev_info_t *dip, int cmpt, int level)
    I don't know constant values what cmpt and level parameter
can contain. Where that constants are defined?

2. In sun addition DLPI, what struct is for DL_IOC_HDR_INFO?
    If that struct is not common for all driver, what struct is for
le?

3. I wanna know usage for struct leops and parameters for lo_init(),
lo_intr() in le.h.

4. How to use the member variable queue_t *le_ipq of struct le in
le.h?

Thanks anybody helping me in advance.

------------------------------------------------------------
Q-Young Lee. Hanmesoft Corp., Seoul, Korea.

TEL    : +82-2-578-8303                  FAX : +82-2-529-8988
------------------------------------------------------------

2. PPP stalling

3. Lance Ethernet Driver Problem

4. RedHat v8, Canon USB scanner and Xsane..

5. Lance ethernet driver troubles

6. US-FL-ORACLE V.7 OPENIN-THE EXPERTS

7. Linux drivers for LANCE PCI ethernet card

8. Loadlin & CDU33a

9. Help w/latest AMD LANCE ethernet driver

10. LANCE ethernet chip - ~24 drivers

11. Help w/latest AMD LANCE ethernet driver

12. 16bit driver for AMD Lance ethernet card?

13. Lance ethernet driver