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.\" from: @(#)le.4 8.1 (Berkeley) 6/9/93 37.\" $FreeBSD$ 38.\" 39.Dd September 4, 2006 40.Dt LE 4 41.Os 42.Sh NAME 43.Nm le 44.Nd "AMD Am7900 LANCE and Am79C9xx PCnet Ethernet interface driver" 45.Sh SYNOPSIS 46To compile this driver into the kernel, 47place the following line in your 48kernel configuration file: 49.Bd -ragged -offset indent 50.Cd "device le" 51.Ed 52.Pp 53Alternatively, to load the driver as a 54module at boot time, place the following line in 55.Xr loader.conf 5 : 56.Bd -literal -offset indent 57if_le_load="YES" 58.Ed 59.Pp 60For C-Bus non-PnP cards, the port address and the IRQ number have to be 61specified in 62.Pa /boot/device.hints : 63.Cd hint.le.0.at="isa" 64.Cd hint.le.0.port="0x03d0" 65.Cd hint.le.0.irq="6" 66.Pp 67For ISA non-PnP cards, the port address as well as the IRQ and the DRQ 68numbers have to be specified in 69.Pa /boot/device.hints : 70.Cd hint.le.0.at="isa" 71.Cd hint.le.0.port="0x280" 72.Cd hint.le.0.irq="10" 73.Cd hint.le.0.drq="0" 74.Sh DESCRIPTION 75The 76.Nm 77driver provides support for Ethernet adapters based on the 78.Tn AMD 79Am7990 and Am79C90 (CMOS, pin-compatible) 80Local Area Network Controller for Ethernet 81.Pq Tn LANCE 82chips. 83.Pp 84The 85.Nm 86driver also supports Ethernet adapters based on the 87.Tn AMD 79C9xx 88family of chips, which are single-chip implementations of a 89.Tn LANCE 90chip and a DMA engine. 91This includes a superset of the 92.Tn PCI 93bus Ethernet chips supported by the 94.Xr pcn 4 95driver. 96The 97.Nm 98driver treats all of these 99.Tn PCI 100bus Ethernet chips as an 101.Tn AMD Am79C970 PCnet-PCI 102and does not support the additional features like the MII bus and burst mode of 103.Tn AMD Am79C971 PCnet-FAST 104and greater chips. 105Thus the 106.Xr pcn 4 107driver should be preferred for the latter. 108.Pp 109Generally, the 110.Nm 111driver aims at supporting as many different chips on as many different 112platforms as possible, 113partially at the cost of the best performance with some of these. 114.Pp 115The 116.Nm 117driver supports reception and transmission of extended frames for 118.Xr vlan 4 . 119Selective reception of multicast Ethernet frames is provided by a 64-bit mask; 120multicast destination addresses are hashed to a bit entry using the Ethernet 121CRC function. 122.Sh HARDWARE 123.Ss C-Bus and ISA 124The 125.Nm 126driver supports 127.Tn C-Bus 128and 129.Tn ISA 130bus Ethernet adapters which are based on the following chips: 131.Pp 132.Bl -bullet -compact 133.It 134.Tn AMD Am7990 and Am79C90 LANCE 135.It 136.Tn AMD Am79C960 PCnet-ISA 137.It 138.Tn AMD Am79C961 PCnet-ISA+ 139.It 140.Tn AMD Am79C961A PCnet-ISA II 141.El 142.Pp 143This includes support for the following Ethernet adapters: 144.Pp 145C-Bus non-PnP: 146.Pp 147.Bl -bullet -compact 148.It 149.Tn Contec C-NET(98)S 150.El 151.Pp 152ISA non-PnP: 153.Pp 154.Bl -bullet -compact 155.It 156.Tn BICC Isolan 157.\" .It 158.\" .Tn Digital DEPCA 159.It 160.Tn Novell NE2100 161.El 162.Pp 163ISA PnP: 164.Pp 165.Bl -bullet -compact 166.It 167.Tn AMD AM1500T/AM2100 168.It 169.Tn AMD PCnet-32 170.It 171.Tn AMD PCnet-ISA 172.It 173.Tn Boca LANCard Combo 174.It 175.Tn Cabletron E2100 Series DNI 176.It 177.Tn Cabletron E2200 Single Chip 178.It 179.Tn Melco Inc. LGY-IV 180.It 181.Tn Novell NE2100 182.It 183.Tn Racal InterLan EtherBlaster 184.El 185.Pp 186The 187.Nm 188driver does not support the selection of media types and options via 189.Xr ifconfig 8 190with 191.Tn C-Bus 192and 193.Tn ISA 194bus Ethernet adapters. 195.\" .Ss EISA 196.\" The 197.\" .Tn EISA 198.\" bus Ethernet cards supported by the 199.\" .Nm 200.\" driver are: 201.\" .Pp 202.\" .Bl -bullet -compact 203.\" .It 204.\" .Tn DEC DE422 205.\" .El 206.\" .Ss MCA 207.\" The 208.\" .Tn MCA 209.\" bus Ethernet cards supported by the 210.\" .Nm 211.\" driver are: 212.\" .Pp 213.\" .Bl -bullet -compact 214.\" .It 215.\" .Tn SKNET Personal MC2 216.\" .It 217.\" .Tn SKNET MC2+ 218.\" .El 219.Ss PCI 220The 221.Tn PCI 222bus Ethernet chips supported by the 223.Nm 224driver are: 225.Pp 226.Bl -bullet -compact 227.It 228.Tn AMD Am53C974/Am79C970/Am79C974 PCnet-PCI 229.It 230.Tn AMD Am79C970A PCnet-PCI II 231.It 232.Tn AMD Am79C971 PCnet-FAST 233.It 234.Tn AMD Am79C972 PCnet-FAST+ 235.It 236.Tn AMD Am79C973/Am79C975 PCnet-FAST III 237.It 238.Tn AMD Am79C976 PCnet-PRO 239.It 240.Tn AMD Am79C978 PCnet-Home 241.El 242.Pp 243The 244.Nm 245driver supports the following media types with these chips: 246.Pp 247.Bl -tag -width xxxxxxxxxxxxxxxxxxxx 248.It autoselect 249Enable autoselection of the media type. 250.It 10baseT/UTP 251Select UTP media. 252.It 10base5/AUI 253Select AUI/BNC media. 254.El 255.Pp 256The following media option is supported with these media types: 257.Pp 258.Bl -tag -width xxxxxxxxxxxxxxxxxxxx 259.It full-duplex 260Select full duplex operation. 261.El 262.Pp 263Note that unlike the 264.Xr pcn 4 265driver, the 266.Nm 267driver does not support selecting 100Mbps (Fast Ethernet) media types. 268.Ss sparc64 269The 270.Nm 271driver supports the on-board 272.Tn LANCE 273interfaces found in 274.Tn Sun Ultra 1 275machines. 276The following media types are available with these: 277.Pp 278.Bl -tag -width xxxxxxxxxxxxxxxxxxxx 279.It autoselect 280Enable autoselection of the media type. 281.It 10baseT/UTP 282Select UTP media. 283.It 10base5/AUI 284Select AUI media. 285.El 286.Pp 287When using autoselection, a default media type is selected for use by 288examining all ports for carrier. 289The first media type with which a carrier is detected will be selected. 290Additionally, if carrier is dropped on a port, the driver will switch 291between the possible ports until one with carrier is found. 292.\" .Pp 293.\" The 294.\" .Nm 295.\" driver also supports 296.\" .Tn SBus 297.\" Ethernet cards. 298.\" These include: 299.\" .Bl -bullet -compact 300.\" .It 301.\" SBE/S 302.\" .Tn SCSI 303.\" and Buffered Ethernet 304.\" (Sun P/N 501-1860) 305.\" .It 306.\" FSBE/S 307.\" Fast 308.\" .Tn SCSI 309.\" and Buffered Ethernet 310.\" (Sun P/N 501-2015) 311.\" .El 312.Pp 313For further information on configuring media types and options, see 314.Xr ifconfig 8 . 315.Sh DIAGNOSTICS 316.Bl -diag 317.It "le%d: overflow" 318More packets came in from the Ethernet than there was space in the 319.Tn LANCE 320receive buffers. 321Packets were missed. 322.It "le%d: receive buffer error" 323The 324.Tn LANCE 325ran out of buffer space, packet dropped. 326.It "le%d: lost carrier" 327The Ethernet carrier disappeared during an attempt to transmit. 328The 329.Tn LANCE 330will finish transmitting the current packet, 331but will not automatically retry transmission if there is a collision. 332.It "le%d: excessive collisions, tdr %d" 333The Ethernet was extremely busy or jammed, 334outbound packets were dropped after 16 attempts to retransmit. 335.Pp 336TDR 337is the abbreviation of 338.Qq Time Domain Reflectometry . 339The optionally reported TDR value is an internal counter of the interval 340between the start of a transmission and the occurrence of a collision. 341This value can be used to determine the distance from the Ethernet tap to 342the point on the Ethernet cable that is shorted or open (unterminated). 343.It "le%d: dropping chained buffer" 344A packet did not fit into a single receive buffer and was dropped. 345Since the 346.Nm 347driver allocates buffers large enough to receive maximum sized Ethernet 348packets, this means some other station on the LAN transmitted a packet 349larger than allowed by the Ethernet standard. 350.It "le%d: transmit buffer error" 351The 352.Tn LANCE 353ran out of buffer space before finishing the transmission of a packet. 354If this error occurs, the driver software has a bug. 355.It "le%d: underflow" 356The 357.Tn LANCE 358ran out of buffer space before finishing the transmission of a packet. 359If this error occurs, the driver software has a bug. 360.It "le%d: controller failed to initialize" 361Driver failed to start the 362.Tn LANCE . 363This is potentially a hardware failure. 364.It "le%d: memory error" 365RAM failed to respond within the timeout when the 366.Tn LANCE 367wanted to read or write it. 368This is potentially a hardware failure. 369.It "le%d: receiver disabled" 370The receiver of the 371.Tn LANCE 372was turned off due to an error. 373.It "le%d: transmitter disabled" 374The transmitter of the 375.Tn LANCE 376was turned off due to an error. 377.El 378.Sh SEE ALSO 379.Xr arp 4 , 380.Xr intro 4 , 381.Xr netintro 4 , 382.Xr pcn 4 , 383.Xr vlan 4 , 384.Xr ifconfig 8 385.Sh HISTORY 386The 387.Nm 388driver was ported from 389.Nx 390and first appeared in 391.Fx 6.1 . 392The 393.Nx 394version in turn was derived from the 395.Nm 396driver which first appeared in 397.Bx 4.4 . 398.Sh AUTHORS 399The 400.Nm 401driver was ported by 402.An "Marius Strobl" Aq marius@FreeBSD.org . 403.\" .Sh BUGS 404.\" The Am7990 Revision C chips have a bug which causes garbage to be inserted 405.\" in front of the received packet occasionally. 406.\" The work-around is to ignore packets with an invalid destination address 407.\" (garbage will usually not match), by double-checking the destination 408.\" address of every packet in the driver. 409.\" This work-around can be enabled with the 410.\" .Dv LANCE_REVC_BUG 411.\" kernel option. 412.\" .Pp 413.\" When 414.\" .Dv LANCE_REVC_BUG 415.\" is enabled, the 416.\" .Nm 417.\" driver executes one or two calls to an inline Ethernet address comparison 418.\" function for every received packet. 419.\" On the 420.\" .Tn MC68000 421.\" it is exactly eight instructions of 16 bits each. 422.\" There is one comparison for each unicast packet, and two comparisons for 423.\" each broadcast packet. 424.\" .Pp 425.\" In summary, the cost of the LANCE_REVC_BUG option is: 426.\" .Bl -enum -compact 427.\" .It 428.\" loss of multicast support, and 429.\" .It 430.\" eight extra 431.\" .Tn CPU 432.\" instructions per received packet, sometimes sixteen, depending on both the 433.\" processor, and the type of packet. 434.\" .El 435.\" .Pp 436.\" All sun3 systems are presumed to have this bad revision of the Am7990, 437.\" until proven otherwise. 438.\" Alas, the only way to prove what revision of the chip is in a particular 439.\" system is inspection of the date code on the chip package, 440.\" to compare against a list of what chip revisions were fabricated between 441.\" which dates. 442.\" .Pp 443.\" Alas, the Am7990 chip is so old that 444.\" .Tn AMD 445.\" has 446.\" .Qq de-archived 447.\" the production information about it; pending a search elsewhere, we do not 448.\" know how to identify the revision C chip from the date codes. 449