- Replace lnc(4) driver with NetBSD's le(4), which gives us better performance,
[dragonfly.git] / share / man / man4 / ed.4
1 .\"
2 .\" Copyright (c) 1994, David Greenman
3 .\" All rights reserved.
4 .\"
5 .\" Redistribution and use in source and binary forms, with or without
6 .\" modification, are permitted provided that the following conditions
7 .\" are met:
8 .\" 1. Redistributions of source code must retain the above copyright
9 .\"    notice, this list of conditions and the following disclaimer.
10 .\" 2. Redistributions in binary form must reproduce the above copyright
11 .\"    notice, this list of conditions and the following disclaimer in the
12 .\"    documentation and/or other materials provided with the distribution.
13 .\" 3. All advertising materials mentioning features or use of this software
14 .\"    must display the following acknowledgement:
15 .\"     This product includes software developed by David Greenman.
16 .\" 4. The name of the author may not be used to endorse or promote products
17 .\"    derived from this software without specific prior written permission.
18 .\"
19 .\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
20 .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
21 .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
22 .\" ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
23 .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
24 .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
25 .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
26 .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
27 .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
28 .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
29 .\" SUCH DAMAGE.
30 .\"
31 .\" $FreeBSD: src/share/man/man4/ed.4,v 1.19.2.10 2003/02/17 21:20:39 trhodes Exp $
32 .\" $DragonFly: src/share/man/man4/ed.4,v 1.4 2006/02/17 19:37:09 swildner Exp $
33 .\"
34 .Dd October 28, 1995
35 .Dt ED 4
36 .Os
37 .Sh NAME
38 .Nm ed
39 .Nd ethernet device driver
40 .Sh SYNOPSIS
41 .Cd "device miibus"
42 .Cd "device ed0 at isa? port 0x280 irq 5 iomem 0xd8000"
43 .Sh DESCRIPTION
44 The
45 .Nm
46 driver provides support for 8 and 16bit ethernet cards that are based on
47 the National Semiconductor DS8390 and similar NICs manufactured by other companies.
48 .Pp
49 It supports all 80x3 series ethernet cards manufactured by Western Digital and SMC,
50 the SMC Ultra, the 3Com 3c503, the Novell NE1000/NE2000 and compatible cards,
51 the HP PC Lan+ and the Digital Equipment EtherWorks DE305 card.
52 ISA, PCI and PC Card devices are supported.
53 .Pp
54 The
55 .Nm
56 driver uses a unique multi-buffering mechanism to achieve high transmit performance.
57 When using 16bit ISA cards, as high as 97% of the theoretical maximum performance of
58 the IEEE 802.3 CSMA ethernet is possible.
59 .Pp
60 In addition to the standard port and IRQ specifications, the
61 .Nm
62 driver also supports a number of
63 .Cd flags
64 which can force 8/16bit mode, enable/disable multi-buffering, and select the default
65 interface type (AUI/BNC, and for cards with twisted pair, AUI/10BaseT).
66 .Pp
67 The
68 .Cd flags
69 are a bit field, and are summarized as follows:
70 .Bl -tag -width indent
71 .It Li 0x01
72 Disable transceiver.
73 On those cards which support it, this flag causes the transceiver to
74 be disabled and the AUI connection to be used by default.
75 .It Li 0x02
76 Force 8bit mode.
77 This flag forces the card to 8bit mode regardless of how the
78 card identifies itself.
79 This may be needed for some clones which incorrectly
80 identify themselves as 16bit, even though they only have an 8bit interface.
81 .It Li 0x04
82 Force 16bit mode.
83 This flag forces the card to 16bit mode regardless of how the
84 card identifies itself.
85 This may be needed for some clones which incorrectly
86 identify themselves as 8bit, even though they have a 16bit ISA interface.
87 .It Li 0x08
88 Disable transmitter multi-buffering.
89 This flag disables the use of multiple
90 transmit buffers and may be necessary in rare cases where packets are sent out
91 faster than a machine on the other end can handle (as evidenced by severe packet
92 lossage).
93 Some
94 .No ( non- Ns Dx
95 :-)) machines have terrible ethernet performance
96 and simply can't cope with 1100K+ data rates.
97 Use of this flag also provides
98 one more packet worth of receiver buffering, and on 8bit cards, this may help
99 reduce receiver lossage.
100 .El
101 .Pp
102 When using a 3c503 card, the AUI connection may be selected by specifying the
103 .Cm link2
104 option to
105 .Xr ifconfig 8
106 (BNC is the default).
107 .Sh DIAGNOSTICS
108 .Bl -diag
109 .It "ed%d: kernel configured irq %d doesn't match board configured irq %d."
110 The IRQ number that was specified in the kernel config file (and then compiled
111 into the kernel) differs from the IRQ that has been set on the interface card.
112 .It "ed%d: failed to clear shared memory at %x - check configuration."
113 When the card was probed at system boot time, the
114 .Nm
115 driver found that it could not clear the card's shared memory.
116 This is most commonly
117 caused by a BIOS extension ROM being configured in the same address space as the
118 ethernet card's shared memory.
119 Either find the offending card and change its BIOS
120 ROM to be at an address that doesn't conflict, or change the
121 .Cd iomem
122 option in the kernel config file so that the card's shared memory is mapped at a
123 non-conflicting address.
124 .It "ed%d: Invalid irq configuration (%d) must be 2-5 for 3c503."
125 The IRQ number that was specified in the kernel config file is not valid for
126 the 3Com 3c503 card.
127 The 3c503 can only be assigned to IRQs 2 through 5.
128 .It "ed%d: Cannot find start of RAM."
129 .It "ed%d: Cannot find any RAM, start : %d, x = %d."
130 The probe of a Gateway card was unsuccessful in configuring the card's packet memory.
131 This likely indicates that the card was improperly recognized as a Gateway or that
132 the card is defective.
133 .It "ed: packets buffered, but transmitter idle."
134 Indicates a logic problem in the driver.
135 Should never happen.
136 .It "ed%d: device timeout"
137 Indicates that an expected transmitter interrupt didn't occur.
138 Usually caused by an
139 interrupt conflict with another card on the ISA bus.
140 This condition could also be caused if the kernel is configured for a
141 different IRQ channel than the one the card is actually using.
142 If that is the case, you will have to either reconfigure the card
143 using a DOS utility or set the jumpers on the card appropriately.
144 .It "ed%d: NIC memory corrupt - invalid packet length %d."
145 Indicates that a packet was received with a packet length that was either larger than
146 the maximum size or smaller than the minimum size allowed by the IEEE 802.3 standard.
147 Usually
148 caused by a conflict with another card on the ISA bus, but in some cases may also
149 indicate faulty cabling.
150 .It "ed%d: remote transmit DMA failed to complete."
151 This indicates that a programmed I/O transfer to an NE1000 or NE2000 style card
152 has failed to properly complete.
153 Usually caused by the ISA bus speed being set
154 too fast.
155 .El
156 .Sh SEE ALSO
157 .Xr arp 4 ,
158 .Xr miibus 4 ,
159 .Xr netintro 4 ,
160 .Xr ng_ether 4 ,
161 .Xr ifconfig 8
162 .Sh HISTORY
163 The
164 .Nm
165 device driver first appeared in
166 .Fx 1.0 .
167 .Sh AUTHORS
168 The
169 .Nm
170 device driver and this manual page were written by
171 .An David Greenman .
172 .Sh CAVEATS
173 Early revision DS8390 chips have problems.
174 They lock up whenever the receive
175 ring-buffer overflows.
176 They occasionally switch the byte order
177 of the length field in the packet ring header (several different causes
178 of this related to an off-by-one byte alignment) - resulting in
179 .Qq Li "NIC memory corrupt - invalid packet length"
180 messages.
181 The card is reset
182 whenever these problems occur, but otherwise there is no problem with
183 recovering from these conditions.
184 .Pp
185 The NIC memory access to 3Com and Novell cards is much slower than it is on
186 WD/SMC cards; it's less than 1MB/second on 8bit boards and less than 2MB/second
187 on the 16bit cards.
188 This can lead to ring-buffer overruns resulting in
189 dropped packets during heavy network traffic.
190 .Pp
191 16bit Compex cards identify themselves as being 8bit.
192 While these cards will
193 work in 8bit mode, much higher performance can be achieved by specifying
194 .Cd "flags 0x04"
195 (force 16bit mode) in your kernel config file.
196 In addition, you should also specify
197 .Cd "iosiz 16384"
198 to take advantage of the extra 8K of shared memory that 16bit mode provides.
199 .Sh BUGS
200 The
201 .Nm
202 driver is a bit too aggressive about resetting the card whenever any bad
203 packets are received.
204 As a result, it may throw out some good packets which
205 have been received but not yet transfered from the card to main memory.