diff options
Diffstat (limited to 'Documentation/networking/net-modules.txt')
-rw-r--r-- | Documentation/networking/net-modules.txt | 324 |
1 files changed, 324 insertions, 0 deletions
diff --git a/Documentation/networking/net-modules.txt b/Documentation/networking/net-modules.txt new file mode 100644 index 000000000000..3830a83513d2 --- /dev/null +++ b/Documentation/networking/net-modules.txt | |||
@@ -0,0 +1,324 @@ | |||
1 | Wed 2-Aug-95 <matti.aarnio@utu.fi> | ||
2 | |||
3 | Linux network driver modules | ||
4 | |||
5 | Do not mistake this for "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 | in the Linux network drivers collection. | ||
12 | |||
13 | Some modules have also hidden (= non-documented) tunable values. | ||
14 | The choice of not documenting them is based on general belief, that | ||
15 | the less the user needs to know, the better. (There are things that | ||
16 | driver developers can use, others should not confuse themselves.) | ||
17 | |||
18 | In many cases it is highly preferred that insmod:ing 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 that 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 the "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 the "io=0" parameter, however it is a 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 = 0 | ||
93 | irq = 0 | ||
94 | dma = 6 (not autoprobed) | ||
95 | (Probes ports: 0x300, 0x280, 0x310) | ||
96 | |||
97 | 3c507.c: | ||
98 | io = 0x300 | ||
99 | irq = 0 | ||
100 | (Probes ports: 0x300, 0x320, 0x340, 0x280) | ||
101 | |||
102 | 3c509.c: | ||
103 | io = 0 | ||
104 | irq = 0 | ||
105 | ( Module load-time probing Works reliably only on EISA, ISA ID-PROBE | ||
106 | IS NOT RELIABLE! Compile this driver statically into kernel for | ||
107 | now, if you need it auto-probing on an ISA-bus machine. ) | ||
108 | |||
109 | 8390.c: | ||
110 | (No public options, several other modules need this one) | ||
111 | |||
112 | a2065.c: | ||
113 | Since this is a Zorro board, it supports full autoprobing, even for | ||
114 | multiple boards. (m68k/Amiga) | ||
115 | |||
116 | ac3200.c: | ||
117 | io = 0 (Checks 0x1000 to 0x8fff in 0x1000 intervals) | ||
118 | irq = 0 (Read from config register) | ||
119 | (EISA probing..) | ||
120 | |||
121 | apricot.c: | ||
122 | io = 0x300 (Can't be altered!) | ||
123 | irq = 10 | ||
124 | |||
125 | arcnet.c: | ||
126 | io = 0 | ||
127 | irqnum = 0 | ||
128 | shmem = 0 | ||
129 | num = 0 | ||
130 | DO SET THESE MANUALLY AT INSMOD! | ||
131 | (When probing, looks at the following possible addresses: | ||
132 | Suggested ones: | ||
133 | 0x300, 0x2E0, 0x2F0, 0x2D0 | ||
134 | Other ones: | ||
135 | 0x200, 0x210, 0x220, 0x230, 0x240, 0x250, 0x260, 0x270, | ||
136 | 0x280, 0x290, 0x2A0, 0x2B0, 0x2C0, | ||
137 | 0x310, 0x320, 0x330, 0x340, 0x350, 0x360, 0x370, | ||
138 | 0x380, 0x390, 0x3A0, 0x3E0, 0x3F0 ) | ||
139 | |||
140 | ariadne.c: | ||
141 | Since this is a Zorro board, it supports full autoprobing, even for | ||
142 | multiple boards. (m68k/Amiga) | ||
143 | |||
144 | at1700.c: | ||
145 | io = 0x260 | ||
146 | irq = 0 | ||
147 | (Probes ports: 0x260, 0x280, 0x2A0, 0x240, 0x340, 0x320, 0x380, 0x300) | ||
148 | |||
149 | atari_bionet.c: | ||
150 | Supports full autoprobing. (m68k/Atari) | ||
151 | |||
152 | atari_pamsnet.c: | ||
153 | Supports full autoprobing. (m68k/Atari) | ||
154 | |||
155 | atarilance.c: | ||
156 | Supports full autoprobing. (m68k/Atari) | ||
157 | |||
158 | atp.c: *Not modularized* | ||
159 | (Probes ports: 0x378, 0x278, 0x3BC; | ||
160 | fixed IRQs: 5 and 7 ) | ||
161 | |||
162 | cops.c: | ||
163 | io = 0x240 | ||
164 | irq = 5 | ||
165 | nodeid = 0 (AutoSelect = 0, NodeID 1-254 is hand selected.) | ||
166 | (Probes ports: 0x240, 0x340, 0x200, 0x210, 0x220, 0x230, 0x260, | ||
167 | 0x2A0, 0x300, 0x310, 0x320, 0x330, 0x350, 0x360) | ||
168 | |||
169 | de4x5.c: | ||
170 | io = 0x000b | ||
171 | irq = 10 | ||
172 | is_not_dec = 0 -- For non-DEC card using DEC 21040/21041/21140 chip, set this to 1 | ||
173 | (EISA, and PCI probing) | ||
174 | |||
175 | de600.c: | ||
176 | de600_debug = 0 | ||
177 | (On port 0x378, irq 7 -- lpt1; compile time configurable) | ||
178 | |||
179 | de620.c: | ||
180 | bnc = 0, utp = 0 <-- Force media by setting either. | ||
181 | io = 0x378 (also compile-time configurable) | ||
182 | irq = 7 | ||
183 | |||
184 | depca.c: | ||
185 | io = 0x200 | ||
186 | irq = 7 | ||
187 | (Probes ports: ISA: 0x300, 0x200; | ||
188 | EISA: 0x0c00 ) | ||
189 | |||
190 | dummy.c: | ||
191 | No options | ||
192 | |||
193 | e2100.c: | ||
194 | io = 0 (It will complain if you don't supply an "io=0xNNN") | ||
195 | irq = 0 (IRQ software selected by driver) | ||
196 | mem = 0 (Override default shared memory start of 0xd0000) | ||
197 | xcvr = 0 (Use xcvr=1 to select external transceiver.) | ||
198 | (Probes ports: 0x300, 0x280, 0x380, 0x220) | ||
199 | |||
200 | eepro.c: | ||
201 | io = 0x200 | ||
202 | irq = 0 | ||
203 | (Probes ports: 0x200, 0x240, 0x280, 0x2C0, 0x300, 0x320, 0x340, 0x360) | ||
204 | |||
205 | eexpress.c: | ||
206 | io = 0x300 | ||
207 | irq = 0 (IRQ value read from EEPROM) | ||
208 | (Probes ports: 0x300, 0x270, 0x320, 0x340) | ||
209 | |||
210 | eql.c: | ||
211 | (No parameters) | ||
212 | |||
213 | ewrk3.c: | ||
214 | io = 0x300 | ||
215 | irq = 5 | ||
216 | (With module no autoprobing! | ||
217 | On EISA-bus does EISA probing. | ||
218 | Static linkage probes ports on ISA bus: | ||
219 | 0x100, 0x120, 0x140, 0x160, 0x180, 0x1A0, 0x1C0, | ||
220 | 0x200, 0x220, 0x240, 0x260, 0x280, 0x2A0, 0x2C0, 0x2E0, | ||
221 | 0x300, 0x340, 0x360, 0x380, 0x3A0, 0x3C0) | ||
222 | |||
223 | hp-plus.c: | ||
224 | io = 0 (It will complain if you don't supply an "io=0xNNN") | ||
225 | irq = 0 (IRQ read from configuration register) | ||
226 | (Probes ports: 0x200, 0x240, 0x280, 0x2C0, 0x300, 0x320, 0x340) | ||
227 | |||
228 | hp.c: | ||
229 | io = 0 (It will complain if you don't supply an "io=0xNNN") | ||
230 | irq = 0 (IRQ software selected by driver using autoIRQ) | ||
231 | (Probes ports: 0x300, 0x320, 0x340, 0x280, 0x2C0, 0x200, 0x240) | ||
232 | |||
233 | hp100.c: | ||
234 | hp100_port = 0 (IO-base address) | ||
235 | (Does EISA-probing, if on EISA-slot; | ||
236 | On ISA-bus probes all ports from 0x100 thru to 0x3E0 | ||
237 | in increments of 0x020) | ||
238 | |||
239 | hydra.c: | ||
240 | Since this is a Zorro board, it supports full autoprobing, even for | ||
241 | multiple boards. (m68k/Amiga) | ||
242 | |||
243 | ibmtr.c: | ||
244 | io = 0xa20, 0xa24 (autoprobed by default) | ||
245 | irq = 0 (driver cannot select irq - read from hardware) | ||
246 | mem = 0 (shared memory base set at 0xd0000 and not yet | ||
247 | able to override thru mem= parameter.) | ||
248 | |||
249 | lance.c: *Not modularized* | ||
250 | (PCI, and ISA probing; "CONFIG_PCI" needed for PCI support) | ||
251 | (Probes ISA ports: 0x300, 0x320, 0x340, 0x360) | ||
252 | |||
253 | loopback.c: *Static kernel component* | ||
254 | |||
255 | ne.c: | ||
256 | io = 0 (Explicitly *requires* an "io=0xNNN" value) | ||
257 | irq = 0 (Tries to determine configured IRQ via autoIRQ) | ||
258 | (Probes ports: 0x300, 0x280, 0x320, 0x340, 0x360) | ||
259 | |||
260 | net_init.c: *Static kernel component* | ||
261 | |||
262 | ni52.c: *Not modularized* | ||
263 | (Probes ports: 0x300, 0x280, 0x360, 0x320, 0x340 | ||
264 | mems: 0xD0000, 0xD2000, 0xC8000, 0xCA000, | ||
265 | 0xD4000, 0xD6000, 0xD8000 ) | ||
266 | |||
267 | ni65.c: *Not modularized* **16MB MEMORY BARRIER BUG** | ||
268 | (Probes ports: 0x300, 0x320, 0x340, 0x360) | ||
269 | |||
270 | pi2.c: *Not modularized* (well, NON-STANDARD modularization!) | ||
271 | Only one card supported at this time. | ||
272 | (Probes ports: 0x380, 0x300, 0x320, 0x340, 0x360, 0x3A0) | ||
273 | |||
274 | plip.c: | ||
275 | io = 0 | ||
276 | irq = 0 (by default, uses IRQ 5 for port at 0x3bc, IRQ 7 | ||
277 | for port at 0x378, and IRQ 2 for port at 0x278) | ||
278 | (Probes ports: 0x278, 0x378, 0x3bc) | ||
279 | |||
280 | ppp.c: | ||
281 | No options (ppp-2.2+ has some, this is based on non-dynamic | ||
282 | version from ppp-2.1.2d) | ||
283 | |||
284 | seeq8005.c: *Not modularized* | ||
285 | (Probes ports: 0x300, 0x320, 0x340, 0x360) | ||
286 | |||
287 | sk_g16.c: *Not modularized* | ||
288 | (Probes ports: 0x100, 0x180, 0x208, 0x220m 0x288, 0x320, 0x328, 0x390) | ||
289 | |||
290 | skeleton.c: *Skeleton* | ||
291 | |||
292 | slhc.c: | ||
293 | No configuration parameters | ||
294 | |||
295 | slip.c: | ||
296 | slip_maxdev = 256 (default value from SL_NRUNIT on slip.h) | ||
297 | |||
298 | |||
299 | smc-ultra.c: | ||
300 | io = 0 (It will complain if you don't supply an "io=0xNNN") | ||
301 | irq = 0 (IRQ val. read from EEPROM) | ||
302 | (Probes ports: 0x200, 0x220, 0x240, 0x280, 0x300, 0x340, 0x380) | ||
303 | |||
304 | tulip.c: *Partial modularization* | ||
305 | (init-time memory allocation makes problems..) | ||
306 | |||
307 | tunnel.c: | ||
308 | No insmod parameters | ||
309 | |||
310 | wavelan.c: | ||
311 | io = 0x390 (Settable, but change not recommended) | ||
312 | irq = 0 (Not honoured, if changed..) | ||
313 | |||
314 | wd.c: | ||
315 | io = 0 (It will complain if you don't supply an "io=0xNNN") | ||
316 | irq = 0 (IRQ val. read from EEPROM, ancient cards use autoIRQ) | ||
317 | mem = 0 (Force shared-memory on address 0xC8000, or whatever..) | ||
318 | mem_end = 0 (Force non-std. mem. size via supplying mem_end val.) | ||
319 | (eg. for 32k WD8003EBT, use mem=0xd0000 mem_end=0xd8000) | ||
320 | (Probes ports: 0x300, 0x280, 0x380, 0x240) | ||
321 | |||
322 | znet.c: *Not modularized* | ||
323 | (Only one device on Zenith Z-Note (notebook?) systems, | ||
324 | configuration information from (EE)PROM) | ||