9616911c31
device listings has been moved (and in some cases more or less rewritten) from the DESCRIPTION section.
223 lines
8.1 KiB
Groff
223 lines
8.1 KiB
Groff
.\"
|
|
.\" Copyright (c) 1994, David Greenman
|
|
.\" All rights reserved.
|
|
.\"
|
|
.\" Redistribution and use in source and binary forms, with or without
|
|
.\" modification, are permitted provided that the following conditions
|
|
.\" are met:
|
|
.\" 1. Redistributions of source code must retain the above copyright
|
|
.\" notice, this list of conditions and the following disclaimer.
|
|
.\" 2. Redistributions in binary form must reproduce the above copyright
|
|
.\" notice, this list of conditions and the following disclaimer in the
|
|
.\" documentation and/or other materials provided with the distribution.
|
|
.\" 3. All advertising materials mentioning features or use of this software
|
|
.\" must display the following acknowledgement:
|
|
.\" This product includes software developed by David Greenman.
|
|
.\" 4. The name of the author may not be used to endorse or promote products
|
|
.\" derived from this software without specific prior written permission.
|
|
.\"
|
|
.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
|
|
.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
|
|
.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
|
.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
|
.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
|
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
|
.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
|
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
|
.\" SUCH DAMAGE.
|
|
.\"
|
|
.\" $FreeBSD$
|
|
.\"
|
|
.Dd July 14, 2004
|
|
.Dt ED 4
|
|
.Os
|
|
.Sh NAME
|
|
.Nm ed
|
|
.Nd ethernet device driver
|
|
.Sh SYNOPSIS
|
|
.Cd "device miibus"
|
|
.Cd "device ed"
|
|
.Sh DESCRIPTION
|
|
The
|
|
.Nm
|
|
driver provides support for 8 and 16bit ethernet cards that are based on
|
|
the National Semiconductor DS8390 and similar NICs manufactured by other companies.
|
|
.Pp
|
|
The
|
|
.Nm
|
|
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.
|
|
.Pp
|
|
In addition to the standard port and IRQ specifications, the
|
|
.Nm
|
|
driver also supports a number of
|
|
.Cd 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).
|
|
.Pp
|
|
The
|
|
.Cd flags
|
|
are a bit field, and are summarized as follows:
|
|
.Bl -tag -width indent
|
|
.It Li 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.
|
|
.It Li 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.
|
|
.It Li 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.
|
|
.It Li 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
|
|
.No ( non- Ns Fx
|
|
:-)) 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.
|
|
.El
|
|
.Pp
|
|
When using a 3c503 card, the AUI connection may be selected by specifying the
|
|
.Cm link2
|
|
option to
|
|
.Xr ifconfig 8
|
|
(BNC is the default).
|
|
.Sh HARDWARE
|
|
The
|
|
.Nm
|
|
driver supports the following Ethernet NICs:
|
|
.Pp
|
|
.Bl -bullet -compact
|
|
.It
|
|
3Com 3c503
|
|
.It
|
|
Digital Equipment EtherWorks DE305
|
|
.It
|
|
HP PC Lan+
|
|
.It
|
|
Novell NE1000/NE2000 and compatible
|
|
.It
|
|
RealTek 8029
|
|
.It
|
|
SMC Ultra
|
|
.It
|
|
Western Digital and SMC 80x3 series
|
|
.El
|
|
.Pp
|
|
ISA, PCI and PC Card devices are supported.
|
|
.Sh DIAGNOSTICS
|
|
.Bl -diag
|
|
.It "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.
|
|
.It "ed%d: failed to clear shared memory at %x - check configuration."
|
|
When the card was probed at system boot time, the
|
|
.Nm
|
|
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
|
|
.Cd iomem
|
|
option in the kernel config file so that the card's shared memory is mapped at a
|
|
non-conflicting address.
|
|
.It "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.
|
|
.It "ed%d: Cannot find start of RAM."
|
|
.It "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.
|
|
.It "ed: packets buffered, but transmitter idle."
|
|
Indicates a logic problem in the driver.
|
|
Should never happen.
|
|
.It "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.
|
|
.It "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.
|
|
.It "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.
|
|
.El
|
|
.Sh 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
|
|
.Qq Li "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.
|
|
.Pp
|
|
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 resulting in
|
|
dropped packets during heavy network traffic.
|
|
.Pp
|
|
16bit Compex cards identify themselves as being 8bit.
|
|
While these cards will
|
|
work in 8bit mode, much higher performance can be achieved by specifying
|
|
.Cd "flags 0x04"
|
|
(force 16bit mode) in your kernel config file.
|
|
In addition, you should also specify
|
|
.Cd "iosiz 16384"
|
|
to take advantage of the extra 8K of shared memory that 16bit mode provides.
|
|
.Sh BUGS
|
|
The
|
|
.Nm
|
|
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.
|
|
.Sh SEE ALSO
|
|
.Xr arp 4 ,
|
|
.Xr miibus 4 ,
|
|
.Xr netintro 4 ,
|
|
.Xr ng_ether 4 ,
|
|
.Xr ifconfig 8
|
|
.Sh HISTORY
|
|
The
|
|
.Nm
|
|
device driver first appeared in
|
|
.Fx 1.0 .
|
|
.Sh AUTHORS
|
|
The
|
|
.Nm
|
|
device driver and this manual page were written by
|
|
.An David Greenman .
|