1 |
199 |
simons |
Wed 2-Aug-95
|
2 |
|
|
|
3 |
|
|
Linux network driver modules
|
4 |
|
|
|
5 |
|
|
Do not mistake this to "README.modules" at the top-level
|
6 |
|
|
directory! That document tells about modules in general, while
|
7 |
|
|
this one tells only about network device driver modules.
|
8 |
|
|
|
9 |
|
|
This is a potpourri of INSMOD-time(*) configuration options
|
10 |
|
|
(if such exists) and their default values of various modules
|
11 |
|
|
on Linux network drivers collection.
|
12 |
|
|
|
13 |
|
|
Some modules have also hidden (= non-documented) tunable values.
|
14 |
|
|
Choice of not documenting them is based on general belief, that
|
15 |
|
|
the less user needs to know, the better. (There are things that
|
16 |
|
|
driver developer can use, others should not confuse themselves.)
|
17 |
|
|
|
18 |
|
|
In many cases it is highly preferred that insmoding is done
|
19 |
|
|
ONLY with defining an explicit address for the card, AND BY
|
20 |
|
|
NOT USING AUTO-PROBING!
|
21 |
|
|
|
22 |
|
|
Now most cards have some explicitly defined base address, they
|
23 |
|
|
are compiled with (to avoid auto-probing, among other things).
|
24 |
|
|
If that compiled value does not match your actual configuration,
|
25 |
|
|
do use "io=0xXXX" -parameter for the insmod, and give there
|
26 |
|
|
a value matching your environment.
|
27 |
|
|
|
28 |
|
|
If you are adventurous, you can ask the driver to autoprobe
|
29 |
|
|
by using "io=0" parameter, however it is potentially dangerous
|
30 |
|
|
thing to do in a live system. (If you don't know where the
|
31 |
|
|
card is located, you can try autoprobing, and after possible
|
32 |
|
|
crash recovery, insmod with proper IO-address..)
|
33 |
|
|
|
34 |
|
|
--------------------------
|
35 |
|
|
(*) "INSMOD-time" means when you load module with
|
36 |
|
|
/sbin/insmod you can feed it optional parameters.
|
37 |
|
|
See "man insmod".
|
38 |
|
|
--------------------------
|
39 |
|
|
|
40 |
|
|
|
41 |
|
|
8390 based Network Modules (Paul Gortmaker, Nov 12, 1995)
|
42 |
|
|
--------------------------
|
43 |
|
|
|
44 |
|
|
(Includes: smc-ultra, ne, wd, 3c503, hp, hp-plus, e2100 and ac3200)
|
45 |
|
|
|
46 |
|
|
The 8390 series of network drivers now support multiple card systems without
|
47 |
|
|
reloading the same module multiple times (memory efficient!) This is done by
|
48 |
|
|
specifying multiple comma separated values, such as:
|
49 |
|
|
|
50 |
|
|
insmod 3c503.o io=0x280,0x300,0x330,0x350 xcvr=0,1,0,1
|
51 |
|
|
|
52 |
|
|
The above would have the one module controlling four 3c503 cards, with card 2
|
53 |
|
|
and 4 using external transceivers. The "insmod" manual describes the usage
|
54 |
|
|
of comma separated value lists.
|
55 |
|
|
|
56 |
|
|
It is *STRONGLY RECOMMENDED* that you supply "io=" instead of autoprobing.
|
57 |
|
|
If an "io=" argument is not supplied, then the ISA drivers will complain
|
58 |
|
|
about autoprobing being not recommended, and begrudgingly autoprobe for
|
59 |
|
|
a *SINGLE CARD ONLY* -- if you want to use multiple cards you *have* to
|
60 |
|
|
supply an "io=0xNNN,0xQQQ,..." argument.
|
61 |
|
|
|
62 |
|
|
The ne module is an exception to the above. A NE2000 is essentially an
|
63 |
|
|
8390 chip, some bus glue and some RAM. Because of this, the ne probe is
|
64 |
|
|
more invasive than the rest, and so at boot we make sure the ne probe is
|
65 |
|
|
done last of all the 8390 cards (so that it won't trip over other 8390 based
|
66 |
|
|
cards) With modules we can't ensure that all other non-ne 8390 cards have
|
67 |
|
|
already been found. Because of this, the ne module REQUIRES an "io=0xNNN"
|
68 |
|
|
argument passed in via insmod. It will refuse to autoprobe.
|
69 |
|
|
|
70 |
|
|
It is also worth noting that auto-IRQ probably isn't as reliable during
|
71 |
|
|
the flurry of interrupt activity on a running machine. Cards such as the
|
72 |
|
|
ne2000 that can't get the IRQ setting from an EEPROM or configuration
|
73 |
|
|
register are probably best supplied with an "irq=M" argument as well.
|
74 |
|
|
|
75 |
|
|
|
76 |
|
|
----------------------------------------------------------------------
|
77 |
|
|
Card/Module List - Configurable Parameters and Default Values
|
78 |
|
|
----------------------------------------------------------------------
|
79 |
|
|
|
80 |
|
|
3c501.c:
|
81 |
|
|
io = 0x280 IO base address
|
82 |
|
|
irq = 5 IRQ
|
83 |
|
|
(Probes ports: 0x280, 0x300)
|
84 |
|
|
|
85 |
|
|
3c503.c:
|
86 |
|
|
io = 0 (It will complain if you don't supply an "io=0xNNN")
|
87 |
|
|
irq = 0 (IRQ software selected by driver using autoIRQ)
|
88 |
|
|
xcvr = 0 (Use xcvr=1 to select external transceiver.)
|
89 |
|
|
(Probes ports: 0x300, 0x310, 0x330, 0x350, 0x250, 0x280, 0x2A0, 0x2E0)
|
90 |
|
|
|
91 |
|
|
3c505.c:
|
92 |
|
|
io = 0x300
|
93 |
|
|
irq = 0
|
94 |
|
|
(Probes ports: 0x300, 0x280, 0x310)
|
95 |
|
|
|
96 |
|
|
3c507.c:
|
97 |
|
|
io = 0x300
|
98 |
|
|
irq = 0
|
99 |
|
|
(Probes ports: 0x300, 0x320, 0x340, 0x280)
|
100 |
|
|
|
101 |
|
|
3c509.c:
|
102 |
|
|
io = 0
|
103 |
|
|
irq = 0
|
104 |
|
|
( Module load-time probing Works reliably only on EISA, ISA ID-PROBE
|
105 |
|
|
IS NOT RELIABLE! Compile this driver statically into kernel for
|
106 |
|
|
now, if you need it auto-probing on an ISA-bus machine. )
|
107 |
|
|
|
108 |
|
|
8390.c:
|
109 |
|
|
(No public options, several other modules need this one)
|
110 |
|
|
|
111 |
|
|
ac3200.c:
|
112 |
|
|
io = 0 (Checks 0x1000 to 0x8fff in 0x1000 intervals)
|
113 |
|
|
irq = 0 (Read from config register)
|
114 |
|
|
(EISA probing..)
|
115 |
|
|
|
116 |
|
|
apricot.c:
|
117 |
|
|
io = 0x300 (Can't be altered!)
|
118 |
|
|
irq = 10
|
119 |
|
|
|
120 |
|
|
arcnet.c:
|
121 |
|
|
io = 0
|
122 |
|
|
irqnum = 0
|
123 |
|
|
shmem = 0
|
124 |
|
|
num = 0
|
125 |
|
|
DO SET THESE MANUALLY AT INSMOD!
|
126 |
|
|
(When probing, looks at the following possible addresses:
|
127 |
|
|
Suggested ones:
|
128 |
|
|
0x300, 0x2E0, 0x2F0, 0x2D0
|
129 |
|
|
Other ones:
|
130 |
|
|
0x200, 0x210, 0x220, 0x230, 0x240, 0x250, 0x260, 0x270,
|
131 |
|
|
0x280, 0x290, 0x2A0, 0x2B0, 0x2C0,
|
132 |
|
|
0x310, 0x320, 0x330, 0x340, 0x350, 0x360, 0x370,
|
133 |
|
|
0x380, 0x390, 0x3A0, 0x3E0, 0x3F0 )
|
134 |
|
|
|
135 |
|
|
at1700.c:
|
136 |
|
|
io = 0x260
|
137 |
|
|
irq = 0
|
138 |
|
|
(Probes ports: 0x260, 0x280, 0x2A0, 0x240, 0x340, 0x320, 0x380, 0x300)
|
139 |
|
|
|
140 |
|
|
atp.c: *Not modularized*
|
141 |
|
|
(Probes ports: 0x378, 0x278, 0x3BC;
|
142 |
|
|
fixed IRQs: 5 and 7 )
|
143 |
|
|
|
144 |
|
|
de4x5.c:
|
145 |
|
|
io = 0x000b
|
146 |
|
|
irq = 10
|
147 |
|
|
is_not_dec = 0 -- For non-DEC card using DEC 21040/21041/21140 chip, set this to 1
|
148 |
|
|
(EISA, and PCI probing)
|
149 |
|
|
|
150 |
|
|
de600.c:
|
151 |
|
|
de600_debug = 0
|
152 |
|
|
(On port 0x378, irq 7 -- lpt1; compile time configurable)
|
153 |
|
|
|
154 |
|
|
de620.c:
|
155 |
|
|
bnc = 0, utp = 0 <-- Force media by setting either.
|
156 |
|
|
io = 0x378 (also compile-time configurable)
|
157 |
|
|
irq = 7
|
158 |
|
|
|
159 |
|
|
depca.c:
|
160 |
|
|
io = 0x200
|
161 |
|
|
irq = 7
|
162 |
|
|
(Probes ports: ISA: 0x300, 0x200;
|
163 |
|
|
EISA: 0x0c00 )
|
164 |
|
|
|
165 |
|
|
dummy.c:
|
166 |
|
|
No options
|
167 |
|
|
|
168 |
|
|
e2100.c:
|
169 |
|
|
io = 0 (It will complain if you don't supply an "io=0xNNN")
|
170 |
|
|
irq = 0 (IRQ software selected by driver)
|
171 |
|
|
mem = 0 (Override default shared memory start of 0xd0000)
|
172 |
|
|
xcvr = 0 (Use xcvr=1 to select external transceiver.)
|
173 |
|
|
(Probes ports: 0x300, 0x280, 0x380, 0x220)
|
174 |
|
|
|
175 |
|
|
eepro.c:
|
176 |
|
|
io = 0x200
|
177 |
|
|
irq = 0
|
178 |
|
|
(Probes ports: 0x200, 0x240, 0x280, 0x2C0, 0x300, 0x320, 0x340, 0x360)
|
179 |
|
|
|
180 |
|
|
eexpress.c:
|
181 |
|
|
io = 0x300
|
182 |
|
|
irq = 0 (IRQ value read from EEPROM)
|
183 |
|
|
(Probes ports: 0x300, 0x270, 0x320, 0x340)
|
184 |
|
|
|
185 |
|
|
eql.c:
|
186 |
|
|
(No parameters)
|
187 |
|
|
|
188 |
|
|
ewrk3.c:
|
189 |
|
|
io = 0x300
|
190 |
|
|
irq = 5
|
191 |
|
|
(With module no autoprobing!
|
192 |
|
|
On EISA-bus does EISA probing.
|
193 |
|
|
Static linkage probes ports on ISA bus:
|
194 |
|
|
0x100, 0x120, 0x140, 0x160, 0x180, 0x1A0, 0x1C0,
|
195 |
|
|
0x200, 0x220, 0x240, 0x260, 0x280, 0x2A0, 0x2C0, 0x2E0,
|
196 |
|
|
0x300, 0x340, 0x360, 0x380, 0x3A0, 0x3C0)
|
197 |
|
|
|
198 |
|
|
hp-plus.c:
|
199 |
|
|
io = 0 (It will complain if you don't supply an "io=0xNNN")
|
200 |
|
|
irq = 0 (IRQ read from configuration register)
|
201 |
|
|
(Probes ports: 0x200, 0x240, 0x280, 0x2C0, 0x300, 0x320, 0x340)
|
202 |
|
|
|
203 |
|
|
hp.c:
|
204 |
|
|
io = 0 (It will complain if you don't supply an "io=0xNNN")
|
205 |
|
|
irq = 0 (IRQ software selected by driver using autoIRQ)
|
206 |
|
|
(Probes ports: 0x300, 0x320, 0x340, 0x280, 0x2C0, 0x200, 0x240)
|
207 |
|
|
|
208 |
|
|
hp100.c:
|
209 |
|
|
hp100_port = 0 (IO-base address)
|
210 |
|
|
(Does EISA-probing, if on EISA-slot;
|
211 |
|
|
On ISA-bus probes all ports from 0x100 thru to 0x3E0
|
212 |
|
|
in increments of 0x020)
|
213 |
|
|
|
214 |
|
|
ibmtr.c:
|
215 |
|
|
io = 0xA20
|
216 |
|
|
(Probes ports: 0xA20, 0xA24 -- Ok, 0x220, 0x224, but IBM style..)
|
217 |
|
|
|
218 |
|
|
lance.c: *Not modularized*
|
219 |
|
|
(PCI, and ISA probing; "CONFIG_PCI" needed for PCI support)
|
220 |
|
|
(Probes ISA ports: 0x300, 0x320, 0x340, 0x360)
|
221 |
|
|
|
222 |
|
|
loopback.c: *Static kernel component*
|
223 |
|
|
|
224 |
|
|
ne.c:
|
225 |
|
|
io = 0 (Explicitly *requires* an "io=0xNNN" value)
|
226 |
|
|
irq = 0 (Tries to determine configured IRQ via autoIRQ)
|
227 |
|
|
(Probes ports: 0x300, 0x280, 0x320, 0x340, 0x360)
|
228 |
|
|
|
229 |
|
|
net_init.c: *Static kernel component*
|
230 |
|
|
|
231 |
|
|
ni52.c: *Not modularized*
|
232 |
|
|
(Probes ports: 0x300, 0x280, 0x360, 0x320, 0x340
|
233 |
|
|
mems: 0xD0000, 0xD2000, 0xC8000, 0xCA000,
|
234 |
|
|
0xD4000, 0xD6000, 0xD8000 )
|
235 |
|
|
|
236 |
|
|
ni65.c: *Not modularized* **16MB MEMORY BARRIER BUG**
|
237 |
|
|
(Probes ports: 0x300, 0x320, 0x340, 0x360)
|
238 |
|
|
|
239 |
|
|
pi2.c: *Not modularized* (well, NON-STANDARD modularization!)
|
240 |
|
|
Only one card supported at this time.
|
241 |
|
|
(Probes ports: 0x380, 0x300, 0x320, 0x340, 0x360, 0x3A0)
|
242 |
|
|
|
243 |
|
|
plip.c:
|
244 |
|
|
io = 0
|
245 |
|
|
irq = 0 (by default, uses IRQ 5 for port at 0x3bc, IRQ 7
|
246 |
|
|
for port at 0x378, and IRQ 2 for port at 0x278)
|
247 |
|
|
(Probes ports: 0x278, 0x378, 0x3bc)
|
248 |
|
|
|
249 |
|
|
ppp.c:
|
250 |
|
|
No options (ppp-2.2+ has some, this is based on non-dynamic
|
251 |
|
|
version from ppp-2.1.2d)
|
252 |
|
|
|
253 |
|
|
seeq8005.c: *Not modularized*
|
254 |
|
|
(Probes ports: 0x300, 0x320, 0x340, 0x360)
|
255 |
|
|
|
256 |
|
|
sk_g16.c: *Not modularized*
|
257 |
|
|
(Probes ports: 0x100, 0x180, 0x208, 0x220m 0x288, 0x320, 0x328, 0x390)
|
258 |
|
|
|
259 |
|
|
skeleton.c: *Skeleton*
|
260 |
|
|
|
261 |
|
|
slhc.c:
|
262 |
|
|
No configuration parameters
|
263 |
|
|
|
264 |
|
|
slip.c:
|
265 |
|
|
slip_maxdev = 256 (default value from SL_NRUNIT on slip.h)
|
266 |
|
|
|
267 |
|
|
|
268 |
|
|
smc-ultra.c:
|
269 |
|
|
io = 0 (It will complain if you don't supply an "io=0xNNN")
|
270 |
|
|
irq = 0 (IRQ val. read from EEPROM)
|
271 |
|
|
(Probes ports: 0x200, 0x220, 0x240, 0x280, 0x300, 0x340, 0x380)
|
272 |
|
|
|
273 |
|
|
tulip.c: *Partial modularization*
|
274 |
|
|
(init-time memory allocation makes problems..)
|
275 |
|
|
|
276 |
|
|
tunnel.c:
|
277 |
|
|
No insmod parameters
|
278 |
|
|
|
279 |
|
|
wavelan.c:
|
280 |
|
|
io = 0x390 (Settable, but change not recommended)
|
281 |
|
|
irq = 0 (Not honoured, if changed..)
|
282 |
|
|
|
283 |
|
|
wd.c:
|
284 |
|
|
io = 0 (It will complain if you don't supply an "io=0xNNN")
|
285 |
|
|
irq = 0 (IRQ val. read from EEPROM, ancient cards use autoIRQ)
|
286 |
|
|
mem = 0 (Force shared-memory on address 0xC8000, or whatever..)
|
287 |
|
|
mem_end = 0 (Force non-std. mem. size via supplying mem_end val.)
|
288 |
|
|
(eg. for 32k WD8003EBT, use mem=0xd0000 mem_end=0xd8000)
|
289 |
|
|
(Probes ports: 0x300, 0x280, 0x380, 0x240)
|
290 |
|
|
|
291 |
|
|
znet.c: *Not modularized*
|
292 |
|
|
(Only one device on Zenith Z-Note (notebook?) systems,
|
293 |
|
|
configuration information from (EE)PROM)
|