NAME
le
- AMD 7990, 79C90, 79C960, 79C970 LANCE Ethernet interface driver
SYNOPSIS
ISA boards
nele0 at isa? port 0x320 irq 9 drq 7 # NE2100
le* at nele?
bicc0 at isa? port 0x320 irq 10 drq 7 # BICC Isolan
le* at bicc?
depca0 at isa? port 0x300 iomem 0xc8000 iosiz 0x8000 irq 5 # DEC DEPCA
le* at depca?
le* at isapnp? # ISA Plug-and-Play adapters
EISA boards
depca* at eisa? slot ? # DEC DE422
le* at depca?
MCA boards
le* at mca? slot ? # SKNET Personal/MC2+
PCI boards and mainboard adapters
le* at pci? dev? function ?
TURBOchannel PMAD-A or onboard (alpha, pmax)
le* at tc? slot ? offset ?
alpha
le* at ioasic? offset ?
amiga
le* at zbus0
atari
le0 at vme0 irq 4 # BVME410
le0 at vme0 irq 5 # Riebl/PAM
hp300
le* at dio? scode ?
mvme68k
le0 at pcc? ipl 3 # MVME147
news68k
le0 at hb0 addr 0xe0f00000 ipl 4
newsmips
le0 at hb0 addr 0xbff80000 level 1
pmax
le* at ioasic? offset ?
le* at ibus0 addr ?
sparc and sparc64
le* at sbus? slot ? offset ?
le* at ledma0 slot ? offset ?
le* at lebuffer? slot ? offset ?
sun3
le0 at obio0 addr 0x120000 ipl 3
options LANCE_REVC_BUG
vax
le0 at vsbus0 csr 0x200e0000
DESCRIPTION
The
le
interface provides access to a
Ethernet
network via the
AMD
Am7990 and Am79C90 (CMOS, pin-compatible)
LANCE
(Local Area Network Controller - Ethernet) chip set.
The
le
driver also supports PCnet-PCI cards based on the
AMD 79c970
chipset, which is a single-chip implementation of a
LANCE
chip and
PCI
bus interface.
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.
Selective reception of multicast Ethernet frames is provided
by a 64-bit mask; multicast destination addresses are hashed to a
bit entry using the Ethernet CRC function.
The use of
"trailer
encapsulation to minimize copying data on input and output is
supported by the interface but offers no advantage on systems with
large page sizes.
The use of trailers is automatically negotiated with
ARP.
This negotiation may be disabled, on a per-interface basis, with
ifconfig(8).
HARDWARE
amiga
The
le
interface supports the following Zorro II expansion cards:
- A2065
-
Commodore's Ethernet card, manufacturer 514, product 112
- AMERISTAR
-
Ameristar's Ethernet card, manufacturer 1053, product 1
- ARIADNE
-
Village Tronic's Ethernet card, manufacturer 2167, product 201
The A2065 and Ameristar Ethernet cards support only manual media selection.
The Ariadne card supports a software media selection for its two
different connectors:
- 10Base2/BNC
-
also known as thinwire-Ethernet
- 10BaseT/UTP
-
also known as twisted pair
The Ariadne card uses an autoselect between UTP and BNC, so it uses
UTP when an active UTP line is connected or otherwise BNC.
See
ifmedia(4)
for media selection options for
ifconfig(8).
ISA
The ISA-bus Ethernet cards supported by the
le
interface are:
- BICC Isolan
-
- Novell NE2100
-
- Digital DEPCA
-
EISA
The EISA-bus Ethernet cards supported by the
le
interface are:
- DEC DE422
-
MCA
The MCA-bus Ethernet cards supported by the
le
interface are:
- SKNET Personal MC2
-
- SKNET MC2+
-
pmax
All
LANCE
interfaces on
DECstations
are supported, as are interfaces on
Alpha AXP
machines with a
TURBOchannel
bus.
No support is provided for switching between media ports.
The
DECstation
3100 provides both AUI and BNC (thinwire or 10BASE2) connectors.
Port selection is via a manual switch and is not software configurable.
The
DECstation
model 5000/200
PMAD-AA
baseboard device provides only a BNC connector.
The
ioasic
baseboard devices and the
PMAD-AA
TURBOchannel
option card provide only an AUI port.
sparc
The
Sbus
Ethernet
cards supported by the
le
interface include:
- SBE/S
-
SCSI
and Buffered
Ethernet
(sun part 501-1860)
- FSBE/S
-
Fast
SCSI
and Buffered
Ethernet
(sun part 501-2015)
- Antares SBus 10Base-T Ethernet
-
Buffered Ethernet
(antares part 20-050-1007)
Interfaces attached to an
ledma0
on SPARC systems typically have two types of connectors:
- AUI/DIX
-
Standard 15 pin connector
- 10BaseT
-
UTP, also known as twisted pair
The appropriate connector can be selected by supplying a
media
parameter to
ifconfig(8).
The supported arguments for
media
are:
- 10base5/AUI
-
to select the AUI connector, or
- 10baseT/UTP
-
to select the UTP connector.
If a
media
parameter is not specified, a default connector is selected for
use by examining all media types for carrier.
The first connector on which a carrier is detected will be selected.
Additionally, if carrier is dropped on a port, the driver will
switch between the possible ports until one with carrier is found.
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.
Since the
le
driver allocates buffers large enough to receive the maximum size
Ethernet
packet, this means some other station on the LAN transmitted a
packet larger than allowed by the
Ethernet
standard.
- le%d: transmit buffer error
-
LANCE
ran out of buffer before finishing the transmission of a packet.
If this error occurs, the driver software has a bug.
- le%d: underflow
-
LANCE
ran out of buffer before finishing the transmission of a packet.
If this error occurs, 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
arp(4),
ifmedia(4),
inet(4),
intro(4),
mca(4),
ifconfig(8)
HISTORY
The pmax
le
driver is derived from a
le
driver that first appeared in
4.4BSD.
Support for multiple bus attachments first appeared in
NetBSD1.2.
The
Amiga
le
interface first appeared in
NetBSD1.0
The Ariadne Ethernet card first appeared with the
Amiga
ae interface in
NetBSD1.1
and was converted to the
Amiga
le
interface in
NetBSD1.3
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:
-
loss of multicast support, and
-
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 this bad 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,
to compare against a list of what chip revisions were fabricated
between which dates.
Alas, the Am7990 chip is so old that
AMD
has
"de-archived
the production information about it; pending a search elsewhere,
we don't know how to identify the revision C chip from the date
codes.
On all pmax front-ends, performance is impaired by hardware which
forces a software copy of packets to and from DMA buffers.
The
ioasic
machines and the
DECstation
3100 must
copy packets to and from non-contiguous DMA buffers.
The
DECstation
5000/200 and the
PMAD-AA
must copy to and from an onboard SRAM DMA buffer.
The CPU overhead is noticeable, but all machines
can sustain full 10 Mb/s media speed.