1.\" $NetBSD: le.4,v 1.22 2004/10/04 19:12:52 rumble Exp $ 2.\" 3.\"- 4.\" Copyright (c) 1992, 1993 5.\" The Regents of the University of California. All rights reserved. 6.\" 7.\" This software was developed by the Computer Systems Engineering group 8.\" at Lawrence Berkeley Laboratory under DARPA contract BG 91-66 and 9.\" contributed to Berkeley. 10.\" 11.\" Redistribution and use in source and binary forms, with or without 12.\" modification, are permitted provided that the following conditions 13.\" are met: 14.\" 1. Redistributions of source code must retain the above copyright 15.\" notice, this list of conditions and the following disclaimer. 16.\" 2. Redistributions in binary form must reproduce the above copyright 17.\" notice, this list of conditions and the following disclaimer in the 18.\" documentation and/or other materials provided with the distribution. 19.\" 3. Neither the name of the University nor the names of its contributors 20.\" may be used to endorse or promote products derived from this software 21.\" without specific prior written permission. 22.\" 23.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 24.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 25.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 26.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 27.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 28.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 29.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 30.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 31.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 32.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 33.\" SUCH DAMAGE. 34.\" 35.\" from: Header: le.4,v 1.2 92/10/13 05:31:33 leres Exp 36.\" 37.Dd June 21, 2023 38.Dt LE 4 39.Os 40.Sh NAME 41.Nm le 42.Nd "AMD Am7900 LANCE and Am79C9xx ILACC/PCnet Ethernet interface driver" 43.Sh SYNOPSIS 44To compile this driver into the kernel, 45place the following line in your 46kernel configuration file: 47.Bd -ragged -offset indent 48.Cd "device le" 49.Ed 50.Pp 51Alternatively, to load the driver as a 52module at boot time, place the following line in 53.Xr loader.conf 5 : 54.Bd -literal -offset indent 55if_le_load="YES" 56.Ed 57.Pp 58For ISA non-PnP adapters, the port address as well as the IRQ and the DRQ 59numbers have to be specified in 60.Pa /boot/device.hints : 61.Cd hint.le.0.at="isa" 62.Cd hint.le.0.port="0x280" 63.Cd hint.le.0.irq="10" 64.Cd hint.le.0.drq="0" 65.Sh DEPRECATION NOTICE 66The 67.Nm 68driver may not be present in 69.Fx 15.0 70and later. 71.Sh DESCRIPTION 72The 73.Nm 74driver provides support for Ethernet adapters based on the 75.Tn AMD Am7990 76and 77.Tn Am79C90 78.Pq CMOS, pin-compatible 79Local Area Network Controller for Ethernet 80.Pq Tn LANCE 81chips. 82.Pp 83The 84.Nm 85driver also supports Ethernet adapters based on the 86.Tn AMD Am79C900 87Integrated Local Area Communications Controller 88.Pq Tn ILACC 89as well as the 90.Tn Am79C9xx PCnet 91family of chips, which are single-chip implementations of a 92.Tn LANCE 93chip and a DMA engine. 94The 95.Nm 96driver treats all of these 97.Tn PCI 98bus Ethernet chips as an 99.Tn AMD Am79C970 PCnet-PCI 100and does not support the additional features like the MII bus and burst mode of 101.Tn AMD Am79C971 PCnet-FAST 102and greater chips. 103.Pp 104Generally, the 105.Nm 106driver aims at supporting as many different chips on as many different 107platforms as possible, 108partially at the cost of the best performance with some of these. 109.Pp 110The 111.Nm 112driver supports reception and transmission of extended frames for 113.Xr vlan 4 . 114Selective reception of multicast Ethernet frames is provided by a 64-bit mask; 115multicast destination addresses are hashed to a bit entry using the Ethernet 116CRC function. 117.Sh HARDWARE 118.Ss ISA 119The 120.Nm 121driver supports 122.Tn ISA 123bus Ethernet adapters which are based on the following chips: 124.Pp 125.Bl -bullet -compact 126.It 127.Tn AMD Am7990 and Am79C90 LANCE 128.It 129.Tn AMD Am79C960 PCnet-ISA 130.It 131.Tn AMD Am79C961 PCnet-ISA+ 132.It 133.Tn AMD Am79C961A PCnet-ISA II 134.El 135.Pp 136This includes support for the following Ethernet adapters: 137.Pp 138ISA non-PnP: 139.Pp 140.Bl -bullet -compact 141.It 142.Tn BICC Isolan 143.\" .It 144.\" .Tn Digital DEPCA 145.It 146.Tn Novell NE2100 147.El 148.Pp 149ISA PnP: 150.Pp 151.Bl -bullet -compact 152.It 153.Tn AMD AM1500T/AM2100 154.It 155.Tn AMD PCnet-32 156.It 157.Tn AMD PCnet-ISA 158.It 159.Tn Allied Telesyn AT-1500 160.It 161.Tn Boca LANCard Combo 162.It 163.Tn Cabletron E2100 Series DNI 164.It 165.Tn Cabletron E2200 Single Chip 166.It 167.Tn Melco Inc. LGY-IV 168.It 169.Tn Novell NE2100 170.It 171.Tn Racal InterLan EtherBlaster 172.El 173.Pp 174The 175.Nm 176driver does not support the selection of media types and options via 177.Xr ifconfig 8 178with 179.Tn ISA 180bus Ethernet adapters. 181.Ss PCI 182The 183.Tn PCI 184bus Ethernet chips supported by the 185.Nm 186driver are: 187.Pp 188.Bl -bullet -compact 189.It 190.Tn AMD Am53C974/Am79C970/Am79C974 PCnet-PCI 191.It 192.Tn AMD Am79C970A PCnet-PCI II 193.It 194.Tn AMD Am79C971 PCnet-FAST 195.It 196.Tn AMD Am79C972 PCnet-FAST+ 197.It 198.Tn AMD Am79C973/Am79C975 PCnet-FAST III 199.It 200.Tn AMD Am79C976 PCnet-PRO 201.It 202.Tn AMD Am79C978 PCnet-Home 203.El 204.Pp 205This includes support for the following Ethernet adapters: 206.Pp 207.Bl -bullet -compact 208.It 209.Tn AcerLAN NIC P20 210.It 211.Tn Allied Telesyn AT-2450 and AT-2700 series 212.It 213.Tn VMware emulated AMD Am79C970A PCnet-PCI II interface 214.El 215.Pp 216The 217.Nm 218driver supports the selection of the following media types via 219.Xr ifconfig 8 220with 221.Tn PCI 222bus Ethernet adapters: 223.Bl -tag -width ".Cm 10base5/AUI" 224.It Cm autoselect 225Enable autoselection of the media type. 226.It Cm 10baseT/UTP 227Select UTP media. 228.It Cm 10base5/AUI 229Select AUI/BNC media. 230.El 231.Pp 232The following media option is supported with these media types: 233.Bl -tag -width ".Cm full-duplex" 234.It Cm full-duplex 235Select full duplex operation. 236.El 237.Pp 238Note that the 239.Nm 240driver does not support selecting 100Mbps (Fast Ethernet) media types. 241.Sh DIAGNOSTICS 242.Bl -diag 243.It "le%d: overflow" 244More packets came in from the Ethernet than there was space in the 245.Tn LANCE 246receive buffers. 247Packets were missed. 248.It "le%d: receive buffer error" 249The 250.Tn LANCE 251ran out of buffer space, packet dropped. 252.It "le%d: lost carrier" 253The Ethernet carrier disappeared during an attempt to transmit. 254The 255.Tn LANCE 256will finish transmitting the current packet, 257but will not automatically retry transmission if there is a collision. 258.It "le%d: excessive collisions, tdr %d" 259The Ethernet was extremely busy or jammed, 260outbound packets were dropped after 16 attempts to retransmit. 261.Pp 262TDR 263is the abbreviation of 264.Qq Time Domain Reflectometry . 265The optionally reported TDR value is an internal counter of the interval 266between the start of a transmission and the occurrence of a collision. 267This value can be used to determine the distance from the Ethernet tap to 268the point on the Ethernet cable that is shorted or open (unterminated). 269.It "le%d: dropping chained buffer" 270A packet did not fit into a single receive buffer and was dropped. 271Since the 272.Nm 273driver allocates buffers large enough to receive maximum sized Ethernet 274packets, this means some other station on the LAN transmitted a packet 275larger than allowed by the Ethernet standard. 276.It "le%d: transmit buffer error" 277The 278.Tn LANCE 279ran out of buffer space before finishing the transmission of a packet. 280If this error occurs, the driver software has a bug. 281.It "le%d: underflow" 282The 283.Tn LANCE 284ran out of buffer space before finishing the transmission of a packet. 285If this error occurs, the driver software has a bug. 286.It "le%d: controller failed to initialize" 287Driver failed to start the 288.Tn LANCE . 289This is potentially a hardware failure. 290.It "le%d: memory error" 291RAM failed to respond within the timeout when the 292.Tn LANCE 293wanted to read or write it. 294This is potentially a hardware failure. 295.It "le%d: receiver disabled" 296The receiver of the 297.Tn LANCE 298was turned off due to an error. 299.It "le%d: transmitter disabled" 300The transmitter of the 301.Tn LANCE 302was turned off due to an error. 303.El 304.Sh SEE ALSO 305.Xr altq 4 , 306.Xr arp 4 , 307.Xr intro 4 , 308.Xr netintro 4 , 309.Xr vlan 4 , 310.Xr ifconfig 8 311.Sh HISTORY 312The 313.Nm 314driver was ported from 315.Nx 316and first appeared in 317.Fx 6.1 . 318The 319.Nx 320version in turn was derived from the 321.Nm 322driver which first appeared in 323.Bx 4.4 . 324.Sh AUTHORS 325The 326.Nm 327driver was ported by 328.An Marius Strobl Aq Mt marius@FreeBSD.org . 329.\" .Sh BUGS 330.\" The Am7990 Revision C chips have a bug which causes garbage to be inserted 331.\" in front of the received packet occasionally. 332.\" The work-around is to ignore packets with an invalid destination address 333.\" (garbage will usually not match), by double-checking the destination 334.\" address of every packet in the driver. 335.\" This work-around can be enabled with the 336.\" .Dv LANCE_REVC_BUG 337.\" kernel option. 338.\" .Pp 339.\" When 340.\" .Dv LANCE_REVC_BUG 341.\" is enabled, the 342.\" .Nm 343.\" driver executes one or two calls to an inline Ethernet address comparison 344.\" function for every received packet. 345.\" On the 346.\" .Tn MC68000 347.\" it is exactly eight instructions of 16 bits each. 348.\" There is one comparison for each unicast packet, and two comparisons for 349.\" each broadcast packet. 350.\" .Pp 351.\" In summary, the cost of the LANCE_REVC_BUG option is: 352.\" .Bl -enum -compact 353.\" .It 354.\" loss of multicast support, and 355.\" .It 356.\" eight extra 357.\" .Tn CPU 358.\" instructions per received packet, sometimes sixteen, depending on both the 359.\" processor, and the type of packet. 360.\" .El 361.\" .Pp 362.\" All sun3 systems are presumed to have this bad revision of the Am7990, 363.\" until proven otherwise. 364.\" Alas, the only way to prove what revision of the chip is in a particular 365.\" system is inspection of the date code on the chip package, 366.\" to compare against a list of what chip revisions were fabricated between 367.\" which dates. 368.\" .Pp 369.\" Alas, the Am7990 chip is so old that 370.\" .Tn AMD 371.\" has 372.\" .Qq de-archived 373.\" the production information about it; pending a search elsewhere, we do not 374.\" know how to identify the revision C chip from the date codes. 375