LE(4)

NAME
le - AMD 7990 LANCE ethernet interface driver

SYNOPSIS
le* at obio0 addr ? level ?
option LANCE_REVC_BUG

DESCRIPTION
The le interface provides access to a 10 Mb/s Ethernet network via the AMD Am7990 and Am79C90 (CMOS, pin-compatible) LANCE (Local Area Network Controller - Ethernet) chip set.

Each of the host's network addresses is specified at boot time with an SIOCSIFADDR ioctl(2). The le interface employs the Address Resolution Protocol (ARP) described in arp(4) to dynamically map between Internet and Ethernet addresses on the local network.

BUGS
The Am7990 Revision C chips have a bug which causes garbage to be inserted in front of the received packet occasionally. The work-around is to ignore packets with an invalid destination address (garbage will usually not match), by double-checking the destination address of every packet in the driver. This work-around is enabled with the LANCE_REVC_BUG kernel option.

When LANCE_REVC_BUG is enabled, the le driver executes one or two calls to an inline ethernet address comparison function for every received packet. On the mc68000 it is exactly eight instructions of 16-bits each. There is one comparison for each unicast packet, and two comparisons for each broadcast packet.

In summary, the cost of the LANCE_REVC_BUG option is:
1.  loss of multicast support, and
2.  eight extra CPU instructions per received packet, sometimes sixteen, depending on both the processor, and the type of packet.

All sun3 systems are presumed to have bad this revision of the Am7990, until proven otherwise. Alas, the only way to prove what revision of the chip is in a particular system is inspection of the date code on the chip package, with a list of what chip revisions were fabricated between which dates.

Alas, this chip is so old that AMD has "de-archived" the information about it; pending a search elsewhere, we don't know how to identify the revision C chip from the date codes.

DIAGNOSTICS

le%d: overflow More packets came in from the Ethernet than there was space in the receive buffers. Packets were missed.

le%d: receive buffer error Ran out of buffer space, packet dropped.

le%d: lost carrier The Ethernet carrier disappeared during an attempt to transmit. It will finish transmitting the current packet, but will not automatically retry transmission if there is a collision.

le%d: excessive collisions, tdr %d Ethernet extremely busy or jammed, outbound packets dropped after 16 attempts to retransmit.

TDR is "Time Domain Reflectometry". The LANCE TDR value is an internal counter of the interval between the start of a transmission, and the occurrence of a collision. This value can be used to determine the distance from the Ethernet tap to the point on the Ethernet cable that is shorted or open (unterminated).

le%d: dropping chained buffer Packet didn't fit into a single receive buffer, packet dropped.

le%d: transmit buffer error LANCE ran out of buffer before finishing the transmission of a packet. If this error occurrs, the driver software has a bug.

le%d: underflow LANCE ran out of buffer before finishing the transmission of a packet. If this error occurrs, the driver software has a bug.

le%d: controller failed to initialize Driver failed to start the AM7990 LANCE. This is potentially a hardware failure.

le%d: memory error RAM failed to respond within the timeout when the LANCE wanted to read or write it. This is potentially a hardware failure.

le%d: receiver disabled The LANCE receiver was turned off due to an error.

le%d: transmitter disabled The LANCE transmitter was turned off due to an error.

SEE ALSO
ie(4), intro(4), inet(4), arp(4) Am79C90 - CMOS Local Area Network Controller for Ethernet, May 1994, 17881, Advanced Micro Devices.