Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages


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

     ed	-- ethernet device driver

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

     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	Digi-
     tal and SMC, the SMC Ultra, the 3Com 3c503, the Novell NE1000/NE2000 and
     compatible	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-

     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/dis-
     able 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 regard-
	     less 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	re-
	     gardless 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).

     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 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 num-
     ber 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
     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
     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 pro-
     grammed 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

     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	speci-
     fying flags 0x04 (force 16bit mode) in your kernel	config file.  In addi-
     tion, you should also specify iosiz 16384 to take advantage of the	extra
     8K	of shared memory that 16bit mode provides.

     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 memory.

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

     The ed device driver first	appeared in FreeBSD 1.0.

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

BSD			       October 28, 1995				   BSD


Want to link to this manual page? Use this URL:

home | help