ED(4) MidnightBSD Kernel Interfaces Manual ED(4)

NAME

ed — NE-2000 and WD-80x3 Ethernet driver

SYNOPSIS

To compile this driver into the kernel, place the following lines in your kernel configuration file:

device miibus
device ed

Alternatively, to load the driver as a module at boot time, place the following line in loader.conf(5):

if_ed_load="YES"

DESCRIPTION

The ed driver provides support for 8 and 16bit Ethernet cards that are based on the National Semiconductor DS8390 and similar NICs manufactured by other companies.

The ed driver uses a unique multi-buffering mechanism to achieve high transmit performance. When using 16bit ISA cards, as high as 97% of the theoretical maximum performance of the IEEE 802.3 CSMA Ethernet is possible.

In addition to the standard port and IRQ specifications, the ed driver also supports a number of flags which can force 8/16bit mode, enable/disable multi-buffering, and select the default interface type (AUI/BNC, and for cards with twisted pair, AUI/10BaseT).

The flags are a bit field, and are summarized as follows:

0x01

Disable transceiver. On those cards which support it, this flag causes the transceiver to be disabled and the AUI connection to be used by default.

0x02

Force 8bit mode. This flag forces the card to 8bit mode regardless of how the card identifies itself. This may be needed for some clones which incorrectly identify themselves as 16bit, even though they only have an 8bit interface. This flag takes precedence over force 16bit mode.

0x04

Force 16bit mode. This flag forces the card to 16bit mode regardless of how the card identifies itself. This may be needed for some clones which incorrectly identify themselves as 8bit, even though they have a 16bit ISA interface.

0x08

Disable transmitter multi-buffering. This flag disables the use of multiple transmit buffers and may be necessary in rare cases where packets are sent out faster than a machine on the other end can handle (as evidenced by severe packet lossage). Some (non-FreeBSD :-)) machines have terrible Ethernet performance and simply cannot cope with 1100K+ data rates. Use of this flag also provides one more packet worth of receiver buffering, and on 8bit cards, this may help reduce receiver lossage.

When using a 3c503 card, the AUI connection may be selected by specifying the link2 option to ifconfig(8) (BNC is the default).

HARDWARE

The ed driver supports the following Ethernet NICs:

3Com 3c503 Etherlink II (options ED_3C503)

AR-P500 Ethernet

Accton EN1644 (old model), EN1646 (old model), EN2203 (old model) (110pin) (flags 0xd00000)

Accton EN2212/EN2216/UE2216

Allied Telesis CentreCOM LA100-PCM_V2

Allied Telesis LA-98 (flags 0x000000) (PC-98)

Allied Telesis SIC-98, SIC-98NOTE (110pin), SIU-98 (flags 0x600000) (PC-98)

Allied Telesis SIU-98-D (flags 0x610000) (PC-98)

AmbiCom 10BaseT card

Bay Networks NETGEAR FA410TXC Fast Ethernet

Belkin F5D5020 PC Card Fast Ethernet

Billionton LM5LT-10B Ethernet/Modem PC Card

Bromax iPort 10/100 Ethernet PC Card

Bromax iPort 10 Ethernet PC Card

Buffalo LPC2-CLT, LPC3-CLT, LPC3-CLX, LPC4-TX PC Card

CNet BC40 adapter

Compex Net-A adapter

Contec C-NET(98), RT-1007(98), C-NET(9N) (110pin) (flags 0xa00000) (PC-98)

Contec C-NET(98)E-A, C-NET(98)L-A, C-NET(98)P (flags 0x300000) (PC-98)

Corega Ether98-T (flags 0x000000) (PC-98)

Corega Ether PCC-T/EtherII PCC-T/FEther PCC-TXF/PCC-TXD

CyQ’ve ELA-010

DEC EtherWorks DE305

Danpex EN-6200P2

D-Link DE-298, DE-298P (flags 0x500000) (PC-98)

D-Link DE-650/660

D-Link IC-CARD/IC-CARD+ Ethernet

ELECOM LD-98P (flags 0x500000) (PC-98)

ELECOM LD-BDN, LD-NW801G (flags 0x200000) (PC-98)

ELECOM Laneed LD-CDL/TX, LD-CDF, LD-CDS, LD-10/100CD, LD-CDWA (DP83902A)

HP PC Lan+ 27247B and 27252A (options ED_HPP)

IBM Creditcard Ethernet I/II

ICM AD-ET2-T, DT-ET-25, DT-ET-T5, IF-2766ET, IF-2771ET, NB-ET-T (110pin) (flags 0x500000) (PC-98)

I-O DATA LA/T-98, LA/T-98SB, LA2/T-98, ET/T-98 (flags 0x900000) (PC-98)

I-O DATA ET2/T-PCI

I-O DATA PCLATE

Kansai KLA-98C/T (flags 0x900000) (PC-98)

Kingston KNE-PC2, CIO10T, KNE-PCM/x Ethernet

Linksys EC2T/PCMPC100/PCM100, PCMLM56

Linksys EtherFast 10/100 PC Card, Combo PCMCIA Ethernet Card (PCMPC100 V2)

Logitec LAN-98T (flags 0xb00000) (PC-98)

MACNICA Ethernet ME1 for JEIDA

MACNICA ME98 (flags 0x900000) (PC-98)

MACNICA NE2098 (flags 0x400000) (PC-98)

MELCO EGY-98 (flags 0x300000) (PC-98)

MELCO LGH-98, LGY-98, LGY-98-N (110pin), IND-SP, IND-SS (flags 0x400000) (PC-98)

MELCO LGY-PCI-TR

MELCO LPC-T/LPC2-T/LPC2-CLT/LPC2-TX/LPC3-TX/LPC3-CLX

NDC Ethernet Instant-Link

NEC PC-9801-77, PC-9801-78 (flags 0x910000) (PC-98)

NEC PC-9801-107, PC-9801-108 (flags 0x800000) (PC-98)

National Semiconductor InfoMover NE4100

NetGear FA-410TX

NetVin 5000

Network Everywhere Ethernet 10BaseT PC Card

Networld 98X3 (flags 0xd00000) (PC-98)

Networld EC-98X, EP-98X (flags 0xd10000) (PC-98)

New Media LANSurfer 10+56 Ethernet/Modem

New Media LANSurfer

Novell NE1000/NE2000/NE2100

PLANEX ENW-8300-T

PLANEX EN-2298-C (flags 0x200000) (PC-98)

PLANEX EN-2298P-T, EN-2298-T (flags 0x500000) (PC-98)

PLANEX FNW-3600-T

Psion 10/100 LANGLOBAL Combine iT

RealTek 8029

Relia Combo-L/M-56k PC Card

SMC Elite 16 WD8013

SMC Elite Ultra

SMC EtherEZ98 (flags 0x000000) (PC-98)

SMC WD8003E/WD8003EBT/WD8003S/WD8003SBT/WD8003W/WD8013EBT/WD8013W and clones

SMC EZCard PC Card, 8040-TX, 8041-TX

Socket LP-E, ES-1000 Ethernet/Serial, LP-E CF, LP-FE CF

Surecom EtherPerfect EP-427

Surecom NE-34

TDK 3000/3400/5670 Fast Etherenet/Modem

TDK LAK-CD031, Grey Cell GCS2000 Ethernet Card

TDK DFL5610WS Ethernet/Modem PC Card

Telecom Device SuperSocket RE450T

VIA VT86C926

Winbond W89C940

C-Bus, ISA, PCI and PC Card devices are supported.

DIAGNOSTICS

ed%d: kernel configured irq %d doesn’t match board configured irq %d.  The IRQ number that was specified in the kernel config file (and then compiled into the kernel) differs from the IRQ that has been set on the interface card.

ed%d: failed to clear shared memory at %x - check configuration.  When the card was probed at system boot time, the ed driver found that it could not clear the card’s shared memory. This is most commonly caused by a BIOS extension ROM being configured in the same address space as the Ethernet card’s shared memory. Either find the offending card and change its BIOS ROM to be at an address that does not conflict, or change the iomem option in the kernel config file so that the card’s shared memory is mapped at a non-conflicting address.

ed%d: Invalid irq configuration (%d) must be 2-5 for 3c503.  The IRQ number that was specified in the kernel config file is not valid for the 3Com 3c503 card. The 3c503 can only be assigned to IRQs 2 through 5.

ed%d: Cannot find start of RAM. 
ed%d: Cannot find any RAM, start : %d, x = %d. 
The probe of a Gateway card was unsuccessful in configuring the card’s packet memory. This likely indicates that the card was improperly recognized as a Gateway or that the card is defective.

ed: packets buffered, but transmitter idle.  Indicates a logic problem in the driver. Should never happen.

ed%d: device timeout  Indicates that an expected transmitter interrupt did not occur. Usually caused by an interrupt conflict with another card on the ISA bus. This condition could also be caused if the kernel is configured for a different IRQ channel than the one the card is actually using. If that is the case, you will have to either reconfigure the card using a DOS utility or set the jumpers on the card appropriately.

ed%d: NIC memory corrupt - invalid packet length %d.  Indicates that a packet was received with a packet length that was either larger than the maximum size or smaller than the minimum size allowed by the IEEE 802.3 standard. Usually caused by a conflict with another card on the ISA bus, but in some cases may also indicate faulty cabling.

ed%d: remote transmit DMA failed to complete.  This indicates that a programmed I/O transfer to an NE1000 or NE2000 style card has failed to properly complete. Usually caused by the ISA bus speed being set too fast.

CAVEATS

Early revision DS8390 chips have problems. They lock up whenever the receive ring-buffer overflows. They occasionally switch the byte order of the length field in the packet ring header (several different causes of this related to an off-by-one byte alignment) - resulting in "NIC memory corrupt - invalid packet length" messages. The card is reset whenever these problems occur, but otherwise there is no problem with recovering from these conditions.

The NIC memory access to 3Com and Novell cards is much slower than it is on WD/SMC cards; it is less than 1MB/second on 8bit boards and less than 2MB/second on the 16bit cards. This can lead to ring-buffer overruns resulting in dropped packets during heavy network traffic.

16bit Compex cards identify themselves as being 8bit. While these cards will work in 8bit mode, much higher performance can be achieved by specifying flags 0x04 (force 16bit mode) in your kernel config file. In addition, you should also specify iosiz 16384 to take advantage of the extra 8K of shared memory that 16bit mode provides.

SEE ALSO

arp(4), miibus(4), netintro(4), ng_ether(4), ifconfig(8)

HISTORY

The ed device driver first appeared in FreeBSD 1.0.

AUTHORS

The ed device driver and this manual page were written by David Greenman.

BUGS

The ed driver is a bit too aggressive about resetting the card whenever any bad packets are received. As a result, it may throw out some good packets which have been received but not yet transferred from the card to main memory.

The ed PC Card attachment supports the D-Link DMF650TX Lan/Modem card’s ethernet port only at this time.

MidnightBSD 0.3 October 5, 2005 MidnightBSD 0.3