LE(4)                   NetBSD Kernel Interfaces Manual                  LE(4)

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, prod-
                      uct 201

     The A2065 and Ameristar Ethernet cards support only manual media selec-
     tion.

     The Ariadne card supports a software media selection for its two differ-
     ent 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 dis-
     tance 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 transmis-
     sion 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 fail-
     ure.

     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)

     Am79C90 - CMOS Local Area Network Controller for Ethernet, 17881, May
     1994, Advanced Micro Devices.

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
     NetBSD 1.2.

     The Amiga le interface first appeared in NetBSD 1.0

     The Ariadne Ethernet card first appeared with the Amiga ae interface in
     NetBSD 1.1 and was converted to the Amiga le interface in NetBSD 1.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:
     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 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.

NetBSD 5.0_STABLE               April 27, 2001               NetBSD 5.0_STABLE
