home | help
ED(4)			     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 also supports many PC Card chips which  in-
     terface  via  MII to a PHY.  Axiom's AX88790, AX88190 and AX88190A; DLink's
     DL10019 and DL10022; and Tamarack's TC5299J chips all support  internal  or
     external  MII/PHY	combinations.	For  these chipsets, autonegotiation and
     status reporting are supported.

     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  possi-
     ble.

     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  regard-
	     less  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
     *	 Corega LAPCCTXD (TC5299J)
     *	 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)
     *	 Hawking PN652TX PC Card (AX88790)
     *	 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, 8041-TX V.2
     *	 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: 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 ex-
     tension 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  settings  in
     device.hints(5)  that the card's shared memory is mapped at a non-conflict-
     ing address.

     ed%d: Invalid irq configuration (%d) must be 2-5 for 3c503.  The IRQ number
     that was specified in the device.hints(5) 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 in-
     dicates 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  config-
     ured  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 pro-
     grammed I/O transfer to an NE1000 or NE2000 style card has failed to  prop-
     erly complete.  Usually caused by the ISA bus speed being set too fast.

     ed%d:  Invalid irq configuration (%ld) must be %s for %s  Indicates the de-
     vice has a different IRQ than supported or expected.

     ed%d: Cannot locate my ports!  The device is using  a  different  I/O  port
     than the driver knows about.

     ed%d: Cannot extract MAC address  Attempts to get the MAC address failed.

     ed%d: Missing mii!  Probing for an MII bus has failed.

CAVEATS
     Early  revision  DS8390 chips have problems.  They lock up whenever the re-
     ceive 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  re-
     sulting 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 specify-
     ing 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
     altq(4),  arp(4), miibus(4), netintro(4), ng_ether(4), device.hints(5), if-
     config(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 mem-
     ory.

     The  ed  PC  Card	attachment supports the D-Link DMF650TX LAN/Modem card's
     Ethernet port only at this time.

FreeBSD 7.4			January 27, 2008			   ED(4)

home | help