172 lines
7.8 KiB
Groff
172 lines
7.8 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.
|
||
|
.\"
|
||
|
.\" $Id$
|
||
|
.\"
|
||
|
.Dd August 22, 1994
|
||
|
.Dt ED 4 i386
|
||
|
.Os
|
||
|
.Sh NAME
|
||
|
.Nm ed
|
||
|
.Nd
|
||
|
high performance ethernet device driver
|
||
|
.Sh SYNOPSIS
|
||
|
.Cd "device ed0 at isa? port 0x280 net irq 5 iomem 0xd8000 vector edintr"
|
||
|
.Cd "device ed1 at isa? port 0x300 net irq 5 iomem 0xd8000 vector edintr"
|
||
|
.Cd "device ed2 at isa? port 0x320 net irq 10 flags 0x4 iosiz 16384 iomem 0xd8000 vector edintr"
|
||
|
.Sh DESCRIPTION
|
||
|
The
|
||
|
.Nm ed
|
||
|
driver provides support for 8 and 16bit ISA ethernet cards that are based on
|
||
|
the National Semiconductor DS8390 and similar NICs manufactured by other companies.
|
||
|
It supports all 80x3 series ISA ethernet cards manufatured by Western Digital and SMC,
|
||
|
the SMC Ultra, the 3Com 3c503, and the Novell NE1000/NE2000.
|
||
|
.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
|
||
|
.Nm flags
|
||
|
which can force 8/16 mode, enable/disable multi-buffering, and select the default
|
||
|
interface type (AUI/BNC, and for cards with twisted pair, AUI/10BaseT).
|
||
|
.Pp
|
||
|
The
|
||
|
.Nm flags
|
||
|
are a bit field, and are summerized as follows:
|
||
|
.Pp
|
||
|
.Bl -hang -offset indent
|
||
|
.It Em 0x01
|
||
|
Disable tranceiver. On those cards which support it, this flag causes the tranceiver to
|
||
|
be disabled and the AUI connection to be used by default.
|
||
|
.It Em 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 Em 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 Em 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.
|
||
|
.El
|
||
|
.Pp
|
||
|
When using a 3c503 card, the AUI connection may be selected by specifying the
|
||
|
.Nm link1
|
||
|
option to
|
||
|
.Nm ifconfig
|
||
|
(BNC is the default).
|
||
|
.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 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
|
||
|
.Nm 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.
|
||
|
.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 occassionally 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.
|
||
|
.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 acheived by specifying
|
||
|
.Nm flags 0x04
|
||
|
(force 16bit mode) in your kernel config file. In addition, you should also specify
|
||
|
.Nm iosize 16384
|
||
|
to take advantage of the extra 8k of shared memory that 16bit mode provides.
|
||
|
.Sh BUGS
|
||
|
The
|
||
|
.Nm 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.
|
||
|
.Sh SEE ALSO
|
||
|
.Xr arp 4 ,
|
||
|
.Xr ifconfig 8 ,
|
||
|
.Xr netintro 4
|
||
|
.Sh HISTORY
|
||
|
The
|
||
|
.Nm ed
|
||
|
device driver first appeared in FreeBSD 1.0.
|
||
|
.Sh AUTHOR
|
||
|
The
|
||
|
.Nm
|
||
|
device driver and this manual page were written by David Greenman.
|