home | help
ED(4)			     Kernel Interfaces Manual			   ED(4)

NAME
     ed -- ethernet device driver

SYNOPSIS
     device miibus
     device ed0 at isa? port 0x280 irq 5 iomem 0xd8000

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.

     It supports all 80x3 series ethernet cards manufactured by Western  Digital
     and  SMC,	the SMC Ultra, the 3Com 3c503, the Novell NE1000/NE2000 and com-
     patible cards, the HP PC Lan+ and the Digital  Equipment  EtherWorks  DE305
     card.  ISA, PCI and PC Card devices 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.

     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  can't
	     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).

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 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 doesn't 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  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
     didn't 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.

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's  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.

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 transfered from the card to main  mem-
     ory.

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.

FreeBSD 4.8			October 28, 1995			   ED(4)

home | help