1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
|
.\"
.\" 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 February 9, 2005
.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 cannot 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 Etherlink II
.Pq Cd "options ED_3C503"
.It
AR-P500 Ethernet
.It
Accton EN1644 (old model), EN1646 (old model), EN2203 (old model) (110pin)
(flags 0xd00000)
.It
Accton EN2212/EN2216/UE2216
.It
Allied Telesis CentreCOM LA100-PCM_V2
.It
Allied Telesis LA-98 (flags 0x000000) (PC-98)
.It
Allied Telesis SIC-98, SIC-98NOTE (110pin), SIU-98 (flags 0x600000) (PC-98)
.It
Allied Telesis SIU-98-D (flags 0x610000) (PC-98)
.It
AmbiCom 10BaseT card
.It
Bay Networks NETGEAR FA410TXC Fast Ethernet
.It
CNet BC40 adapter
.It
Compex Net-A adapter
.It
Contec C-NET(98), RT-1007(98), C-NET(9N) (110pin) (flags 0xa00000) (PC-98)
.It
Contec C-NET(98)E-A, C-NET(98)L-A, C-NET(98)P (flags 0x300000) (PC-98)
.It
Corega Ether98-T (flags 0x000000) (PC-98)
.It
Corega Ether PCC-T/EtherII PCC-T/FEther PCC-TXF/PCC-TXD
.It
CyQ've ELA-010
.It
DEC EtherWorks DE305
.It
Danpex EN-6200P2
.It
D-Link DE-298, DE-298P (flags 0x500000) (PC-98)
.It
D-Link DE-650/660
.It
D-Link IC-CARD/IC-CARD+ Ethernet
.It
ELECOM LD-98P (flags 0x500000) (PC-98)
.It
ELECOM LD-BDN, LD-NW801G (flags 0x200000) (PC-98)
.It
ELECOM Laneed LD-CDL/TX, LD-CDF, LD-CDS, LD-10/100CD, LD-CDWA (DP83902A)
.It
HP PC Lan+ 27247B and 27252A
.Pq Cd "options ED_HPP"
.It
IBM Creditcard Ethernet I/II
.It
ICM AD-ET2-T, DT-ET-25, DT-ET-T5, IF-2766ET, IF-2771ET, NB-ET-T (110pin)
(flags 0x500000) (PC-98)
.It
I-O DATA LA/T-98, LA/T-98SB, LA2/T-98, ET/T-98 (flags 0x900000) (PC-98)
.It
I-O DATA ET2/T-PCI
.It
I-O DATA PCLATE
.It
Kansai KLA-98C/T (flags 0x900000) (PC-98)
.It
Kingston KNE-PC2, KNE-PCM/x Ethernet
.It
Linksys EC2T/PCMPC100/PCM100, PCMLM56
.It
Linksys EtherFast 10/100 PC Card, Combo PCMCIA Ethernet Card (PCMPC100 V2)
.It
Logitec LAN-98T (flags 0xb00000) (PC-98)
.It
MACNICA Ethernet ME1 for JEIDA
.It
MACNICA ME98 (flags 0x900000) (PC-98)
.It
MACNICA NE2098 (flags 0x400000) (PC-98)
.It
MELCO EGY-98 (flags 0x300000) (PC-98)
.It
MELCO LGH-98, LGY-98, LGY-98-N (110pin), IND-SP, IND-SS (flags 0x400000) (PC-98)
.It
MELCO LGY-PCI-TR
.It
MELCO LPC-T/LPC2-T/LPC2-CLT/LPC2-TX/LPC3-TX/LPC3-CLX
.It
NDC Ethernet Instant-Link
.It
NEC PC-9801-77, PC-9801-78 (flags 0x910000) (PC-98)
.It
NEC PC-9801-107, PC-9801-108 (flags 0x800000) (PC-98)
.It
National Semiconductor InfoMover NE4100
.It
NetGear FA-410TX
.It
NetVin 5000
.It
Network Everywhere Ethernet 10BaseT PC Card
.It
Networld 98X3 (flags 0xd00000) (PC-98)
.It
Networld EC-98X, EP-98X (flags 0xd10000) (PC-98)
.It
Novell NE1000/NE2000/NE2100
.It
PLANEX ENW-8300-T
.It
PLANEX EN-2298-C (flags 0x200000) (PC-98)
.It
PLANEX EN-2298P-T, EN-2298-T (flags 0x500000) (PC-98)
.It
PLANEX FNW-3600-T
.It
RealTek 8029
.It
SMC Elite 16 WD8013
.It
SMC Elite Ultra
.It
SMC EtherEZ98 (flags 0x000000) (PC-98)
.It
SMC WD8003E/WD8003EBT/WD8003S/WD8003SBT/WD8003W/WD8013EBT/WD8013W and clones
.It
Socket LP-E
.It
Surecom EtherPerfect EP-427
.It
Surecom NE-34
.It
TDK LAK-CD031, Grey Cell GCS2000 Ethernet Card
.It
Telecom Device SuperSocket RE450T
.It
VIA VT86C926
.It
Winbond W89C940
.El
.Pp
C-Bus, 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 does not 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 did not 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 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 .
.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 transferred from the card to main memory.
|