if_en(4) [freebsd man page]
EN(4) BSD Kernel Interfaces Manual EN(4) NAME
en -- device driver for Midway-based ATM interfaces SYNOPSIS
To compile this driver into the kernel, place the following lines in your kernel configuration file: device en device atm device utopia Alternatively, to load the driver as a module at boot time, place the following line in loader.conf(5): if_en_load="YES" DESCRIPTION
The en device driver supports Midway-based ATM interfaces including the Efficient Networks, Inc. ENI-155 and Adaptec ANA-59x0. Midway is an AAL5 SAR (Segmentation and Reassembly) chip. For configuring the card for IP see natmip(4). The following sysctls are recognized by the driver additionally to those handled by utopia(4): hw.atm.enX.istats Contains an array of uint32_t with internal driver statistics. hw.atm.enX.debug This is a bit map of debugging options. This variable is only available when the driver is compiled with debugging support. The driver supports the media options sdh, noscramb and unassigned (see utopia(4)). DIAGNOSTICS
en0 <Efficient Networks ENI-155p> rev 0 int a irq 5 on pci0:16 en0: ATM midway v0, board IDs 6.0, Utopia (pipelined), 512KB on-board RAM en0: maximum DMA burst length = 64 bytes en0: 7 32KB receive buffers, 8 32KB transmit buffers allocated SEE ALSO
natm(4), natmip(4), utopia(4), ifconfig(8), route(8) AUTHORS
Chuck Cranor of Washington University implemented en driver in 1996 for NetBSD. CAVEATS
The driver extensively uses DMA on PCI. The first generation PCI chipsets do not work or exhibit poor performance. BSD
July 16, 2005 BSD
Check Out this Related Man Page
PATM(4) BSD Kernel Interfaces Manual PATM(4) NAME
patm -- device driver for IDT77252 based ATM interfaces (ProSum and IDT) SYNOPSIS
device patm device utopia device atm options NATM options LIBMBPOOL DESCRIPTION
The patm device driver supports ATM cards based on the IDT77252 chip. It has been tested with ProSum's ProATM-155 cards and with IDT's eval- uation boards. The driver interfaces with the natm(4) framework, netgraph(4) and HARP. It provides only PVC services. Signalling, ATMARP, ILMI and other higher layer protocols are implemented using netgraph(4) or HARP. For configuring the card for IP see natmip(4). The driver supports UBR, CBR, VBR and ABR traffic. Supported AALs are: AAL0 (cell payloads), AAL5 and raw AAL. The driver supports opening of VCI/VPI 0/0 in RX, raw AAL-mode. This VC will receive all incoming cells (even those with non-zero GFC fields and VPI/VCI values outside the allowed range) that are not claimed by other open connections. This may be used for monitoring purposes. The following sysctls are recognized by the driver additionally to those handled by utopia(4): hw.atm.patmN.istats Returns a list of uint32_t statistic counters with internal driver statistics. hw.atm.patmN.eeprom This is a read-only variable containing the contents of the on-board EEPROM device. hw.atm.patmN.lbuf_max This puts an upper limit on the number of large receive buffers the driver will allocate. This is a read-only variable that can be set via a loader(8) tunable. hw.atm.patmN.tx_maxmaps This is the upper limit of transmission DMA maps the driver will allocate. This is read-only but may be set via a loader(8) tunable. hw.atm.patmN.debug (Only if debugging enabled.) These are debugging flags. See src/sys/dev/patm/if_patmvar.h for the possible flags. This may be ini- tialized via a loader(8) tunable. hw.atm.patmN.regs (Only if debugging enabled.) Returns the current values of the card's registers. hw.atm.patmN.tsq Returns the transmit status queue. When loaded, the driver initializes several variables from loader(8) tunables: hw.patmN.lbuf_max This initializes the corresponding sysctl(8) variable and defines an upper limit on the number of large receive buffers (mbuf clus- ters). hw.patmN.tx_maxmaps This initializes the corresponding sysctl(8) variable and is the maximum number of DMA maps for transmission that the driver will allocated. hw.patmN.debug (Only if debugging enabled.) Initializes the debugging flags. The driver supports the media options sdh, noscramb and unassigned (see utopia(4)) when the card is a 155MBit card. Both PMC-Sierra S/UNI and IDT77155 PHY chips are supported for these cards. For 25MBit cards the IDT77105 is supported. DIAGNOSTICS
patm1: <NICStAR (77222/77252) ATM adapter> port 0xc000-0xc0ff mem 0xf8000000-0xf83fffff,0xf4000000-0xf4000fff irq 11 at device 8.0 on pci2 patm1: IDT77252 155MBit interface; idt77252 Rev. G; IDT77155 PHY patm1: 128K x 32 SRAM; 4096 connections SEE ALSO
natm(4), natmip(4), utopia(4) CAVEATS
The card fails to generate an interrupt if a cell is received in AAL0 mode that has the MSB of the PTI field cleared. Therefore cells will be delivered on the next receive interrupt which can happen either when the receive status queue is full, or a cell with the last bit of the PTI set is received. Although the card supports AAL3/4 the driver does not. The rate tables used by this driver are not the tables recommended by IDT (they are wrong anyway). The driver's tables are slightly more aggressive than IDT's. That means, that the actual cell rate can be slightly higher than the specified. This is in contrast to the IDT tables where cell rates 5% less than the allowed one have been observed. This can be changed by changing the program that generates these tables, found in /usr/src/sys/dev/patm/genrtab, and regenerating them. The reported media for the 155MBit cards will always be OC3/MM, because there is no (known to me) way to figure out the actual medium. The medium should really be coded in the EEPROM by the manufacturer. The Tx cell counter in the utopia statistics is wrong, because the chip uses idle cells for spacing and the PHY counts these cells. While there is a configuration option for the chip to switch of these cells and, according to the documentation, this should not influence cell spacing, it does, so the driver lets the chip generate idle cells. ACKNOWLEDGEMENTS
Thanks to Christian Bucari from ProSum for lending two of these cards to enable the development of this driver. Thanks also for answering my questions. AUTHORS
Harti Brandt <harti@FreeBSD.org> BSD July 15, 2003 BSD