]>
Commit | Line | Data |
---|---|---|
fea681da MK |
1 | .\" Copyright (c) 1995,1997 Paul Gortmaker and Andries Brouwer |
2 | .\" | |
3 | .\" This is free documentation; you can redistribute it and/or | |
4 | .\" modify it under the terms of the GNU General Public License as | |
5 | .\" published by the Free Software Foundation; either version 2 of | |
6 | .\" the License, or (at your option) any later version. | |
7 | .\" | |
8 | .\" The GNU General Public License's references to "object code" | |
9 | .\" and "executables" are to be interpreted as the output of any | |
10 | .\" document formatting or typesetting system, including | |
11 | .\" intermediate and printed output. | |
12 | .\" | |
13 | .\" This manual is distributed in the hope that it will be useful, | |
14 | .\" but WITHOUT ANY WARRANTY; without even the implied warranty of | |
15 | .\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
16 | .\" GNU General Public License for more details. | |
17 | .\" | |
18 | .\" You should have received a copy of the GNU General Public | |
19 | .\" License along with this manual; if not, write to the Free | |
20 | .\" Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111, | |
21 | .\" USA. | |
22 | .\" | |
23 | .\" This man page written 950814 by aeb, based on Paul Gortmaker's HOWTO | |
24 | .\" (dated v1.0.1, 15/08/95). | |
25 | .\" Major update, aeb, 970114. | |
26 | .\" | |
27 | .TH BOOTPARAM 7 1995-01-14 "Linux 2.1.21" "Linux Programmer's Manual" | |
28 | .SH NAME | |
29 | bootparam \- Introduction to boot time parameters of the Linux kernel | |
30 | .SH DESCRIPTION | |
31 | The Linux kernel accepts certain `command line options' or `boot time | |
32 | parameters' at the moment it is started. In general this is used to | |
33 | supply the kernel with information about hardware parameters that | |
34 | the kernel would not be able to determine on its own, or to avoid/override | |
35 | the values that the kernel would otherwise detect. | |
36 | ||
37 | When the kernel is booted directly by the BIOS (say from a floppy to | |
38 | which you copied a kernel using `cp zImage /dev/fd0'), | |
39 | you have no opportunity to specify any parameters. | |
40 | So, in order to take advantage of this possibility you have to | |
41 | use software that is able to pass parameters, like LILO or loadlin. | |
42 | For a few parameters one can also modify the kernel image itself, | |
43 | using rdev, see | |
44 | .BR rdev (8) | |
45 | for further details. | |
46 | ||
47 | The LILO program (LInux LOader) written by Werner Almesberger is the | |
48 | most commonly used. It has the ability to boot various kernels, and | |
49 | stores the configuration information in a plain text file. (See | |
50 | .BR lilo (8) | |
51 | and | |
52 | .BR lilo.conf (5).) | |
53 | LILO can boot DOS, OS/2, Linux, FreeBSD, UnixWare, etc., and is quite flexible. | |
54 | ||
55 | The other commonly used Linux loader is `LoadLin' which is a DOS | |
56 | program that has the capability to launch a Linux kernel from the DOS | |
57 | prompt (with boot-args) assuming that certain resources are available. | |
58 | This is good for people that want to launch Linux from DOS. | |
59 | ||
60 | It is also very useful if you have certain hardware which relies on | |
61 | the supplied DOS driver to put the hardware into a known state. A | |
62 | common example is `SoundBlaster Compatible' sound cards that require | |
63 | the DOS driver to twiddle a few mystical registers to put the card | |
64 | into a SB compatible mode. Booting DOS with the supplied driver, and | |
65 | then loading Linux from the DOS prompt with loadlin avoids the reset | |
66 | of the card that happens if one rebooted instead. | |
67 | ||
68 | .SH "THE ARGUMENT LIST" | |
69 | ||
70 | The kernel command line is parsed into a list of strings | |
71 | (boot arguments) separated by spaces. Most of the boot args | |
72 | take the form of: | |
73 | .IP | |
74 | name[=value_1][,value_2]...[,value_10] | |
75 | .LP | |
76 | where `name' is a unique keyword that is used to identify what part of | |
77 | the kernel the associated values (if any) are to be given to. | |
78 | Note the limit of 10 is real, as the present code only handles 10 comma | |
79 | separated parameters per keyword. (However, you can re-use the same | |
80 | keyword with up to an additional 10 parameters in unusually | |
81 | complicated situations, assuming the setup function supports it.) | |
82 | ||
83 | Most of the sorting goes on in linux/init/main.c. First, the kernel | |
84 | checks to see if the argument is any of the special arguments `root=', | |
85 | `nfsroot=', `nfsaddrs=', `ro', `rw', `debug' or `init'. The meaning | |
86 | of these special arguments is described below. | |
87 | ||
88 | Then it walks a list of setup functions (contained in the bootsetups | |
89 | array) to see if the specified argument string (such as `foo') has | |
90 | been associated with a setup function (`foo_setup()') for a particular | |
91 | device or part of the kernel. If you passed the kernel the line | |
92 | foo=3,4,5,6 then the kernel would search the bootsetups array to see | |
93 | if `foo' was registered. If it was, then it would call the setup | |
94 | function associated with `foo' (foo_setup()) and hand it the arguments | |
95 | 3, 4, 5 and 6 as given on the kernel command line. | |
96 | ||
97 | Anything of the form `foo=bar' that is not accepted as a setup function | |
98 | as described above is then interpreted as an environment variable to | |
99 | be set. A (useless?) example would be to use `TERM=vt100' as a boot | |
100 | argument. | |
101 | ||
102 | Any remaining arguments that were not picked up by the kernel and were | |
103 | not interpreted as environment variables are then passed onto process | |
104 | one, which is usually the init program. The most common argument that | |
105 | is passed to the init process is the word `single' which instructs init | |
106 | to boot the computer in single user mode, and not launch all the usual | |
107 | daemons. Check the manual page for the version of init installed on | |
108 | your system to see what arguments it accepts. | |
109 | ||
110 | .SH "GENERAL NON-DEVICE SPECIFIC BOOT ARGS" | |
111 | ||
112 | .SS "`init=...'" | |
113 | ||
114 | This sets the initial command to be executed by the kernel. | |
115 | If this is not set, or cannot be found, the kernel will try | |
116 | .IR /etc/init , | |
117 | then | |
118 | .IR /bin/init , | |
119 | then | |
120 | .IR /sbin/init , | |
121 | then | |
122 | .IR /bin/sh | |
123 | and panic if all of this fails. | |
124 | ||
125 | .SS "`nfsaddrs=...'" | |
126 | ||
127 | This sets the nfs boot address to the given string. | |
128 | This boot address is used in case of a net boot. | |
129 | ||
130 | .SS "`nfsroot=...'" | |
131 | ||
132 | This sets the nfs root name to the given string. If this string | |
133 | does not begin with '/' or ',' or a digit, then it is prefixed by | |
134 | `/tftpboot/'. This root name is used in case of a net boot. | |
135 | ||
136 | .SS "`no387'" | |
137 | ||
138 | (Only when CONFIG_BUGi386 is defined.) | |
139 | Some i387 coprocessor chips have bugs that show up when used in 32 bit | |
140 | protected mode. For example, some of the early ULSI-387 chips would | |
141 | cause solid lockups while performing floating point calculations. | |
142 | Using the `no387' boot arg causes Linux to ignore the maths | |
143 | coprocessor even if you have one. Of course you must then have your | |
144 | kernel compiled with math emulation support! | |
145 | ||
146 | .SS "`no-hlt'" | |
147 | ||
148 | (Only when CONFIG_BUGi386 is defined.) | |
149 | Some of the early i486DX-100 chips have a problem with the `hlt' | |
150 | instruction, in that they can't reliably return to operating mode | |
151 | after this instruction is used. Using the `no-hlt' instruction tells | |
152 | Linux to just run an infinite loop when there is nothing else to do, | |
153 | and to not halt the CPU. This allows people with these broken chips | |
154 | to use Linux. | |
155 | ||
156 | .SS "`root=...'" | |
157 | ||
158 | This argument tells the kernel what device is to be used as the root | |
159 | filesystem while booting. The default of this setting is determined | |
160 | at compile time, and usually is the value of the root device of the | |
161 | system that the kernel was built on. To override this value, and | |
162 | select the second floppy drive as the root device, one would | |
163 | use `root=/dev/fd1'. (The root device can also be set using | |
164 | .BR rdev (8).) | |
165 | ||
166 | The root device can be specified symbolically or numerically. | |
167 | A symbolic specification has the form /dev/XXYN, where XX designates | |
168 | the device type (`hd' for ST-506 compatible hard disk, with Y in | |
169 | `a'-`d'; `sd' for SCSI compatible disk, with Y in `a'-`e'; | |
170 | `ad' for Atari ACSI disk, with Y in `a'-`e', | |
171 | `ez' for a Syquest EZ135 parallel port removable drive, with Y=`a', | |
172 | `xd' for XT compatible disk, with Y either `a' or `b'; `fd' for | |
173 | floppy disk, with Y the floppy drive number - fd0 would be | |
174 | the DOS `A:' drive, and fd1 would be `B:'), Y the driver letter or | |
175 | number, and N the number (in decimal) of the partition on this device | |
176 | (absent in the case of floppies). Recent kernels allow many other | |
177 | types, mostly for CD-ROMs: nfs, ram, scd, mcd, cdu535, aztcd, cm206cd, | |
178 | gscd, sbpcd, sonycd, bpcd. | |
179 | (The type nfs specifies a net boot; ram refers to a ram disk.) | |
180 | ||
181 | Note that this has nothing to do with the designation of these | |
182 | devices on your file system. The `/dev/' part is purely conventional. | |
183 | ||
184 | The more awkward and less portable numeric specification of the above | |
185 | possible root devices in major/minor format is also accepted. (E.g., | |
186 | /dev/sda3 is major 8, minor 3, so you could use `root=0x803' as an | |
187 | alternative.) | |
188 | ||
189 | .SS "`ro' and `rw'" | |
190 | ||
191 | The `ro' option tells the kernel to mount the root filesystem | |
192 | as `readonly' so that filesystem consistency check programs (fsck) | |
193 | can do their work on a quiescent file system. No processes can | |
194 | write to files on the filesystem in question until it is `remounted' | |
195 | as read/write capable, e.g., by `mount -w -n -o remount /'. | |
196 | (See also | |
197 | .BR mount (8).) | |
198 | ||
199 | The `rw' option tells the kernel to mount the root filesystem read/write. | |
200 | This is the default. | |
201 | ||
202 | The choice between read-only and read/write can also be set using | |
203 | .BR rdev (8). | |
204 | ||
205 | .SS "`reserve=...'" | |
206 | ||
207 | This is used to protect I/O port regions from probes. The form of the | |
208 | command is: | |
209 | .IP | |
210 | .BI reserve= iobase,extent[,iobase,extent]... | |
211 | .LP | |
212 | In some machines it may be necessary to prevent device drivers from | |
213 | checking for devices (auto-probing) in a specific region. This may be | |
214 | because of hardware that reacts badly to the probing, or hardware | |
215 | that would be mistakenly identified, or merely | |
216 | hardware you don't want the kernel to initialize. | |
217 | ||
218 | The reserve boot-time argument specifies an I/O port region that | |
219 | shouldn't be probed. A device driver will not probe a reserved region, | |
220 | unless another boot argument explicitly specifies that it do so. | |
221 | ||
222 | For example, the boot line | |
223 | .IP | |
224 | reserve=0x300,32 blah=0x300 | |
225 | .LP | |
226 | keeps all device drivers except the driver for `blah' from probing | |
227 | 0x300-0x31f. | |
228 | ||
229 | .SS "`mem=...'" | |
230 | ||
231 | The BIOS call defined in the PC specification that returns | |
232 | the amount of installed memory was only designed to be able | |
233 | to report up to 64MB. Linux uses this BIOS call at boot to | |
234 | determine how much memory is installed. If you have more than 64MB of | |
235 | RAM installed, you can use this boot arg to tell Linux how much memory | |
236 | you have. The value is in decimal or hexadecimal (prefix 0x), | |
237 | and the suffixes `k' (times 1024) or `M' (times 1048576) can be used. | |
238 | Here is a quote from Linus on usage of the `mem=' parameter. | |
239 | ||
240 | \&``The kernel will accept any `mem=xx' parameter you give it, and if it | |
241 | turns out that you lied to it, it will crash horribly sooner or later. | |
242 | The parameter indicates the highest addressable RAM address, so | |
243 | \&`mem=0x1000000' means you have 16MB of memory, for example. For a | |
244 | 96MB machine this would be `mem=0x6000000'. | |
245 | ||
246 | NOTE NOTE NOTE: some machines might use the top of memory for BIOS | |
247 | cacheing or whatever, so you might not actually have up to the full | |
248 | 96MB addressable. The reverse is also true: some chipsets will map | |
249 | the physical memory that is covered by the BIOS area into the area | |
250 | just past the top of memory, so the top-of-mem might actually be 96MB | |
251 | + 384kB for example. If you tell linux that it has more memory than | |
252 | it actually does have, bad things will happen: maybe not at once, but | |
253 | surely eventually.'' | |
254 | ||
255 | .SS "`panic=N'" | |
256 | By default the kernel will not reboot after a panic, but this option | |
257 | will cause a kernel reboot after N seconds (if N > 0). | |
258 | This panic timeout can also be set by "echo N > /proc/sys/kernel/panic". | |
259 | ||
260 | .SS "`reboot=[warm|cold][,[bios|hard]]'" | |
261 | (Only when CONFIG_BUGi386 is defined.) | |
262 | Since 2.0.22 a reboot is by default a cold reboot. | |
263 | One asks for the old default with `reboot=warm'. | |
264 | (A cold reboot may be required to reset certain hardware, | |
265 | but might destroy not yet written data in a disk cache. | |
266 | A warm reboot may be faster.) | |
267 | By default a reboot is hard, by asking the keyboard controller | |
268 | to pulse the reset line low, but there is at least one type | |
269 | of motherboard where that doesn't work. The option `reboot=bios' will | |
270 | instead jump through the BIOS. | |
271 | ||
272 | .SS "`nosmp'" and "`maxcpus=N'" | |
273 | (Only when __SMP__ is defined.) | |
274 | A command-line option of `nosmp' or `maxcpus=0' will disable SMP | |
275 | activation entirely; an option `maxcpus=N' limits the maximum number | |
276 | of CPUs activated in SMP mode to N. | |
277 | ||
278 | ||
279 | .SH "BOOT ARGUMENTS FOR USE BY KERNEL DEVELOPERS" | |
280 | ||
281 | .SS "`debug'" | |
282 | ||
283 | Kernel messages are handed off to the kernel log daemon klogd so that they | |
284 | may be logged to disk. Messages with a priority above | |
285 | .I console_loglevel | |
286 | are also printed on the console. (For these levels, see <linux/kernel.h>.) | |
287 | By default this variable is set to log anything more important than | |
288 | debug messages. This boot argument will cause the kernel to also | |
289 | print the messages of DEBUG priority. | |
290 | The console loglevel can also be set at run time via an option | |
291 | to klogd. See | |
292 | .BR klogd (8). | |
293 | ||
294 | .SS "`profile=N'" | |
295 | ||
296 | It is possible to enable a kernel profiling function, | |
297 | if one wishes to find out where the kernel is spending its CPU cycles. | |
298 | Profiling is enabled by setting the variable | |
299 | .I prof_shift | |
f59a3f19 | 300 | to a non-zero value. This is done either by specifying CONFIG_PROFILE at |
fea681da MK |
301 | compile time, or by giving the `profile=' option. |
302 | Now the value that | |
303 | .I prof_shift | |
304 | gets will be N, when given, or CONFIG_PROFILE_SHIFT, when that is given, | |
305 | or 2, the default. The significance of this variable is that it | |
306 | gives the granularity of the profiling: each clock tick, if the | |
307 | system was executing kernel code, a counter is incremented: | |
308 | .IP | |
309 | profile[address >> prof_shift]++; | |
310 | .LP | |
311 | The raw profiling information can be read from | |
312 | .IR /proc/profile . | |
313 | Probably you'll want to use a tool such as readprofile.c to digest it. | |
314 | Writing to | |
315 | .I /proc/profile | |
316 | will clear the counters. | |
317 | ||
318 | .SS "`swap=N1,N2,N3,N4,N5,N6,N7,N8'" | |
319 | Set the eight parameters max_page_age, page_advance, page_decline, | |
320 | page_initial_age, age_cluster_fract, age_cluster_min, pageout_weight, | |
321 | bufferout_weight that control the kernel swap algorithm. | |
322 | For kernel tuners only. | |
323 | ||
324 | .SS "`buff=N1,N2,N3,N4,N5,N6'" | |
325 | Set the six parameters max_buff_age, buff_advance, buff_decline, | |
326 | buff_initial_age, bufferout_weight, buffermem_grace that control | |
327 | kernel buffer memory management. For kernel tuners only. | |
328 | ||
329 | ||
330 | ||
331 | .SH "BOOT ARGUMENTS FOR RAMDISK USE" | |
332 | (Only if the kernel was compiled with CONFIG_BLK_DEV_RAM.) | |
333 | In general it is a bad idea to use a ramdisk under Linux - | |
334 | the system will use available memory more efficiently itself. | |
335 | But while booting (or while constructing boot floppies) | |
336 | it is often useful to load the floppy contents into a | |
337 | ramdisk. One might also have a system in which first | |
338 | some modules (for filesystem or hardware) must be loaded | |
339 | before the main disk can be accessed. | |
340 | ||
341 | In Linux 1.3.48, ramdisk handling was changed drastically. | |
342 | Earlier, the memory was allocated statically, and there was | |
343 | a `ramdisk=N' parameter to tell its size. (This could also | |
344 | be set in the kernel image at compile time, or by use of | |
345 | .BR rdev (8).) | |
346 | These days ram disks use the buffer cache, and grow dynamically. | |
347 | For a lot of information (e.g., how to use | |
348 | .BR rdev (8) | |
349 | in conjunction with the new ramdisk setup), see | |
350 | .IR /usr/src/linux/Documentation/ramdisk.txt . | |
351 | ||
352 | There are four parameters, two boolean and two integral. | |
353 | ||
354 | .SS "`load_ramdisk=N'" | |
355 | If N=1, do load a ramdisk. If N=0, do not load a ramdisk. | |
356 | (This is the default.) | |
357 | ||
358 | .SS "`prompt_ramdisk=N'" | |
359 | If N=1, do prompt for insertion of the floppy. (This is the default.) | |
360 | If N=0, do not prompt. (Thus, this parameter is never needed.) | |
361 | ||
362 | .SS "`ramdisk_size=N' or (obsolete) `ramdisk=N' | |
363 | Set the maximal size of the ramdisk(s) to N kB. The default is 4096 (4 MB). | |
364 | ||
365 | .SS "`ramdisk_start=N'" | |
366 | Sets the starting block number (the offset on the floppy where | |
367 | the ramdisk starts) to N. | |
368 | This is needed in case the ramdisk follows a kernel image. | |
369 | ||
370 | .SS "`noinitrd'" | |
371 | (Only if the kernel was compiled with CONFIG_BLK_DEV_RAM | |
372 | and CONFIG_BLK_DEV_INITRD.) | |
373 | These days it is possible to compile the kernel to use initrd. | |
374 | When this feature is enabled, the boot process will load the kernel | |
375 | and an initial ramdisk; then the kernel converts initrd into | |
376 | a "normal" ramdisk, which is mounted read-write as root device; | |
377 | then /linuxrc is executed; afterwards the "real" root file system is mounted, | |
378 | and the initrd filesystem is moved over to /initrd; finally | |
379 | the usual boot sequence (e.g. invocation of /sbin/init) is performed. | |
380 | ||
381 | For a detailed description of the initrd feature, see | |
382 | .IR /usr/src/linux/Documentation/initrd.txt . | |
383 | ||
384 | The `noinitrd' option tells the kernel that although it was compiled for | |
385 | operation with initrd, it should not go through the above steps, but | |
386 | leave the initrd data under | |
387 | .IR /dev/initrd . | |
388 | (This device can be used only once - the data is freed as soon as | |
389 | the last process that used it has closed | |
390 | .IR /dev/initrd .) | |
391 | ||
392 | ||
393 | .SH "BOOT ARGUMENTS FOR SCSI DEVICES" | |
394 | ||
395 | General notation for this section: | |
396 | ||
397 | .I iobase | |
398 | -- the first I/O port that the SCSI host occupies. These are | |
9fdfa163 | 399 | specified in hexadecimal notation, and usually lie in the range from |
fea681da MK |
400 | 0x200 to 0x3ff. |
401 | ||
402 | .I irq | |
403 | -- the hardware interrupt that the card is configured to use. | |
404 | Valid values will be dependent on the card in question, but will | |
405 | usually be 5, 7, 9, 10, 11, 12, and 15. The other values are usually | |
406 | used for common peripherals like IDE hard disks, floppies, serial | |
407 | ports, etc. | |
408 | ||
409 | .I scsi-id | |
410 | -- the ID that the host adapter uses to identify itself on the | |
411 | SCSI bus. Only some host adapters allow you to change this value, as | |
412 | most have it permanently specified internally. The usual default value | |
413 | is 7, but the Seagate and Future Domain TMC-950 boards use 6. | |
414 | ||
415 | .I parity | |
416 | -- whether the SCSI host adapter expects the attached devices | |
417 | to supply a parity value with all information exchanges. Specifying a | |
418 | one indicates parity checking is enabled, and a zero disables parity | |
419 | checking. Again, not all adapters will support selection of parity | |
420 | behaviour as a boot argument. | |
421 | ||
422 | .SS "`max_scsi_luns=...'" | |
423 | ||
424 | A SCSI device can have a number of `sub-devices' contained within | |
425 | itself. The most common example is one of the new SCSI CD-ROMs that | |
426 | handle more than one disk at a time. Each CD is addressed as a | |
427 | `Logical Unit Number' (LUN) of that particular device. But most | |
428 | devices, such as hard disks, tape drives and such are only one device, | |
429 | and will be assigned to LUN zero. | |
430 | ||
431 | Some poorly designed SCSI devices cannot handle being probed for | |
432 | LUNs not equal to zero. Therefore, if the compile time flag | |
433 | CONFIG_SCSI_MULTI_LUN is not set, newer kernels will by default | |
434 | only probe LUN zero. | |
435 | ||
436 | To specify the number of probed LUNs at boot, one enters | |
437 | `max_scsi_luns=n' as a boot arg, where n is a number between one and | |
438 | eight. To avoid problems as described above, one would use n=1 to | |
439 | avoid upsetting such broken devices. | |
440 | ||
441 | .SS "SCSI tape configuration" | |
442 | ||
443 | Some boot time configuration of the SCSI tape driver can be achieved | |
444 | by using the following: | |
445 | .IP | |
446 | .BI st= buf_size[,write_threshold[,max_bufs]] | |
447 | .LP | |
448 | The first two numbers are specified in units of kB. The default | |
449 | .I buf_size | |
450 | is 32kB, and the maximum size that can be specified is a | |
451 | ridiculous 16384kB. The | |
452 | .I write_threshold | |
453 | is the value at which the buffer is committed to tape, with a | |
454 | default value of 30kB. The maximum number of buffers varies | |
455 | with the number of drives detected, and has a default of two. | |
456 | An example usage would be: | |
457 | .IP | |
458 | st=32,30,2 | |
459 | .LP | |
460 | Full details can be found in the README.st file that is in the scsi | |
461 | directory of the kernel source tree. | |
462 | ||
463 | .SS "Adaptec aha151x, aha152x, aic6260, aic6360, SB16-SCSI configuration" | |
464 | ||
465 | The aha numbers refer to cards and the aic numbers refer to the actual | |
466 | SCSI chip on these type of cards, including the Soundblaster-16 SCSI. | |
467 | ||
468 | The probe code for these SCSI hosts looks for an installed BIOS, and | |
469 | if none is present, the probe will not find your card. Then you will | |
470 | have to use a boot arg of the form: | |
471 | .IP | |
472 | .BI aha152x= iobase[,irq[,scsi-id[,reconnect[,parity]]]] | |
473 | .LP | |
474 | If the driver was compiled with debugging enabled, a sixth | |
475 | value can be specified to set the debug level. | |
476 | ||
477 | All the parameters are as described at the top of this section, and the | |
478 | .I reconnect | |
479 | value will allow device disconnect/reconnect if a non-zero value | |
480 | is used. An example usage is as follows: | |
481 | .IP | |
482 | aha152x=0x340,11,7,1 | |
483 | .LP | |
484 | Note that the parameters must be specified in order, meaning that if | |
485 | you want to specify a parity setting, then you will have to specify an | |
486 | iobase, irq, scsi-id and reconnect value as well. | |
487 | ||
488 | .SS "Adaptec aha154x configuration" | |
489 | ||
490 | The aha1542 series cards have an i82077 floppy controller onboard, | |
491 | while the aha1540 series cards do not. These are busmastering cards, | |
492 | and have parameters to set the ``fairness'' that is used to share | |
493 | the bus with other devices. The boot arg looks like the following. | |
494 | .IP | |
495 | .BI aha1542= iobase[,buson,busoff[,dmaspeed]] | |
496 | .LP | |
497 | Valid iobase values are usually one of: 0x130, 0x134, 0x230, 0x234, | |
498 | 0x330, 0x334. Clone cards may permit other values. | |
499 | ||
500 | The | |
501 | .IR buson ", " busoff | |
502 | values refer to the number of microseconds that the | |
503 | card dominates the ISA bus. The defaults are 11us on, and 4us off, so | |
504 | that other cards (such as an ISA LANCE Ethernet card) have a chance to | |
505 | get access to the ISA bus. | |
506 | ||
507 | The | |
508 | .I dmaspeed | |
509 | value refers to the rate (in MB/s) at which the DMA | |
510 | (Direct Memory Access) transfers proceed. The default is 5MB/s. | |
511 | Newer revision cards allow you to select this value as part of the | |
512 | soft-configuration, older cards use jumpers. You can use values up to | |
513 | 10MB/s assuming that your motherboard is capable of handling it. | |
514 | Experiment with caution if using values over 5MB/s. | |
515 | ||
516 | .SS "Adaptec aha274x, aha284x, aic7xxx configuration" | |
517 | ||
518 | These boards can accept an argument of the form: | |
519 | .IP | |
520 | .BI aic7xxx= extended,no_reset | |
521 | .LP | |
522 | The | |
523 | .I extended | |
524 | value, if non-zero, indicates that extended translation for large | |
525 | disks is enabled. The | |
526 | .I no_reset | |
527 | value, if non-zero, tells the driver not to reset the SCSI bus when | |
528 | setting up the host adaptor at boot. | |
529 | ||
530 | .SS "AdvanSys SCSI Hosts configuration (`advansys=')" | |
531 | ||
532 | The AdvanSys driver can accept up to four i/o addresses that will be | |
533 | probed for an AdvanSys SCSI card. Note that these values (if used) do | |
534 | not effect EISA or PCI probing in any way. They are only used for | |
535 | probing ISA and VLB cards. In addition, if the driver has been | |
536 | compiled with debugging enabled, the level of debugging output can be | |
537 | set by adding an 0xdeb[0-f] parameter. The 0-f allows setting the | |
538 | level of the debugging messages to any of 16 levels of verbosity. | |
539 | ||
540 | .SS "AM53C974" | |
541 | .IP | |
542 | .BI AM53C974= host-scsi-id,target-scsi-id,max-rate,max-offset | |
543 | .LP | |
544 | ||
545 | .SS "BusLogic SCSI Hosts configuration (`BusLogic=')" | |
546 | .IP | |
547 | .BI BusLogic= N1,N2,N3,N4,N5,S1,S2,... | |
548 | .LP | |
549 | For an extensive discussion of the BusLogic command line parameters, | |
550 | see | |
551 | .IR /usr/src/linux/drivers/scsi/BusLogic.c | |
552 | (lines 3149-3270 in the kernel version I am looking at). The text | |
553 | below is a very much abbreviated extract. | |
554 | ||
555 | The parameters N1-N5 are integers. The parameters S1,... are strings. | |
556 | N1 is the I/O Address at which the Host Adapter is located. | |
557 | N2 is the Tagged Queue Depth to use for Target Devices that support | |
558 | Tagged Queuing. | |
559 | N3 is the Bus Settle Time in seconds. This is the amount of time | |
560 | to wait between a Host Adapter Hard Reset which | |
561 | initiates a SCSI Bus Reset and issuing any SCSI Commands. | |
562 | N4 is the Local Options (for one Host Adapter). | |
563 | N5 is the Global Options (for all Host Adapters). | |
564 | ||
565 | The string options are used to provide control over Tagged Queuing | |
566 | (TQ:Default, TQ:Enable, TQ:Disable, TQ:<Per-Target-Spec>), over | |
567 | Error Recovery (ER:Default, ER:HardReset, ER:BusDeviceReset, | |
568 | ER:None, ER:<Per-Target-Spec>), and over Host Adapter Probing | |
569 | (NoProbe, NoProbeISA, NoSortPCI). | |
570 | ||
571 | .SS "EATA/DMA configuration" | |
572 | The default list of i/o ports to be probed can be changed by | |
573 | .IP | |
574 | .BI eata= iobase,iobase,... . | |
575 | .LP | |
576 | ||
577 | .SS "Future Domain TMC-16x0 configuration" | |
578 | .IP | |
579 | .BI fdomain= iobase,irq[,adapter_id] | |
580 | .LP | |
581 | ||
582 | .SS "Great Valley Products (GVP) SCSI controller configuration" | |
583 | .IP | |
584 | .BI gvp11= dma_transfer_bitmask | |
585 | .LP | |
586 | ||
587 | .SS "Future Domain TMC-8xx, TMC-950 configuration" | |
588 | .IP | |
589 | .BI tmc8xx= mem_base,irq | |
590 | .LP | |
591 | The | |
592 | .I mem_base | |
593 | value is the value of the memory mapped I/O region that | |
594 | the card uses. This will usually be one of the following values: | |
595 | 0xc8000, 0xca000, 0xcc000, 0xce000, 0xdc000, 0xde000. | |
596 | ||
597 | .SS "IN2000 configuration" | |
598 | .IP | |
599 | .BI in2000= S | |
600 | .LP | |
601 | where S is a comma-separated string of items keyword[:value]. | |
602 | Recognized keywords (possibly with value) are: | |
603 | ioport:addr, noreset, nosync:x, period:ns, disconnect:x, | |
604 | debug:x, proc:x. For the function of these parameters, see | |
605 | .IR /usr/src/linux/drivers/scsi/in2000.c . | |
606 | ||
607 | .SS "NCR5380 and NCR53C400 configuration" | |
608 | The boot arg is of the form | |
609 | .IP | |
610 | .BI ncr5380= iobase,irq,dma | |
611 | .LP | |
612 | or | |
613 | .IP | |
614 | .BI ncr53c400= iobase,irq | |
615 | .LP | |
616 | If the card doesn't use interrupts, then an IRQ value of 255 (0xff) will | |
617 | disable interrupts. An IRQ value of 254 means to autoprobe. More | |
618 | details can be found in the file | |
619 | .IR /usr/src/linux/drivers/scsi/README.g_NCR5380 . | |
620 | ||
621 | .SS "NCR53C8xx configuration" | |
622 | .IP | |
623 | .BI ncr53c8xx= S | |
624 | .LP | |
625 | where S is a comma-separated string of items keyword:value. | |
626 | Recognized keywords are: mpar (master_parity), spar (scsi_parity), | |
627 | disc (disconnection), specf (special_features), ultra (ultra_scsi), | |
628 | fsn (force_sync_nego), tags (default_tags), sync (default_sync), | |
629 | verb (verbose), debug (debug), burst (burst_max). | |
630 | For the function of the assigned values, see | |
631 | .IR /usr/src/linux/drivers/scsi/ncr53c8xx.c . | |
632 | ||
633 | .SS "NCR53c406a configuration" | |
634 | .IP | |
635 | .BI ncr53c406a= iobase[,irq[,fastpio]] | |
636 | .LP | |
637 | Specify irq = 0 for non-interrupt driven mode. | |
638 | Set fastpio = 1 for fast pio mode, 0 for slow mode. | |
639 | ||
640 | .SS "Pro Audio Spectrum configuration" | |
641 | ||
642 | The PAS16 uses a NC5380 SCSI chip, and newer models support | |
643 | jumperless configuration. The boot arg is of the form: | |
644 | .IP | |
645 | .BI pas16= iobase,irq | |
646 | .LP | |
647 | The only difference is that you can specify an IRQ value of 255, which | |
648 | will tell the driver to work without using interrupts, albeit at a | |
649 | performance loss. The iobase is usually 0x388. | |
650 | ||
651 | .SS "Seagate ST-0x configuration" | |
652 | ||
653 | If your card is not detected at boot time, | |
654 | you will then have to use a boot arg of the form: | |
655 | .IP | |
656 | .BI st0x= mem_base,irq | |
657 | .LP | |
658 | The | |
659 | .I mem_base | |
660 | value is the value of the memory mapped I/O region that | |
661 | the card uses. This will usually be one of the following values: | |
662 | 0xc8000, 0xca000, 0xcc000, 0xce000, 0xdc000, 0xde000. | |
663 | ||
664 | .SS "Trantor T128 configuration" | |
665 | ||
666 | These cards are also based on the NCR5380 chip, and accept the | |
667 | following options: | |
668 | .IP | |
669 | .BI t128= mem_base,irq | |
670 | .LP | |
671 | The valid values for | |
672 | .I mem_base | |
673 | are as follows: 0xcc000, 0xc8000, 0xdc000, 0xd8000. | |
674 | ||
675 | .SS "UltraStor 14F/34F configuration" | |
676 | The default list of i/o ports to be probed can be changed by | |
677 | .IP | |
678 | .BI eata= iobase,iobase,... . | |
679 | .LP | |
680 | ||
681 | .SS "WD7000 configuration" | |
682 | .IP | |
683 | .BI wd7000= irq,dma,iobase | |
684 | .LP | |
685 | ||
686 | .SS "Commodore Amiga A2091/590 SCSI controller configuration" | |
687 | .IP | |
688 | .BI wd33c93= S | |
689 | .LP | |
690 | where S is a comma-separated string of options. Recognized options are | |
691 | nosync:bitmask, nodma:x, period:ns, disconnect:x, debug:x, | |
692 | clock:x, next. For details, see | |
693 | .IR /usr/src/linux/drivers/scsi/wd33c93.c . | |
694 | ||
695 | .SH "HARD DISKS" | |
696 | ||
697 | .SS "IDE Disk/CD-ROM Driver Parameters" | |
698 | ||
699 | The IDE driver accepts a number of parameters, which range from disk | |
700 | geometry specifications, to support for broken controller chips. Drive | |
701 | specific options are specified by using `hdX=' with X in `a'-`h'. | |
702 | ||
703 | Non-drive specific options are specified with the prefix `hd='. Note | |
704 | that using a drive specific prefix for a non-drive specific option | |
705 | will still work, and the option will just be applied as expected. | |
706 | ||
707 | Also note that `hd=' can be used to refer to the next unspecified | |
708 | drive in the (a, ..., h) sequence. For the following discussions, | |
709 | the `hd=' option will be cited for brevity. See the file | |
710 | README.ide in linux/drivers/block for more details. | |
711 | ||
712 | .SS "The `hd=cyls,heads,sects[,wpcom[,irq]]' options" | |
713 | ||
714 | These options are used to specify the physical geometry of the disk. | |
715 | Only the first three values are required. The cylinder/head/sectors | |
716 | values will be those used by fdisk. The write precompensation value | |
717 | is ignored for IDE disks. The IRQ value specified will be the IRQ | |
718 | used for the interface that the drive resides on, and is not really a | |
719 | drive specific parameter. | |
720 | ||
721 | .SS "The `hd=serialize' option" | |
722 | ||
723 | The dual IDE interface CMD-640 chip is broken as designed such that | |
724 | when drives on the secondary interface are used at the same time as | |
725 | drives on the primary interface, it will corrupt your data. Using this | |
726 | option tells the driver to make sure that both interfaces are never | |
727 | used at the same time. | |
728 | ||
729 | .SS "The `hd=dtc2278' option" | |
730 | ||
731 | This option tells the driver that you have a DTC-2278D IDE interface. | |
732 | The driver then tries to do DTC specific operations to enable the | |
733 | second interface and to enable faster transfer modes. | |
734 | ||
735 | .SS "The `hd=noprobe' option" | |
736 | ||
737 | Do not probe for this drive. For example, | |
738 | .IP | |
739 | hdb=noprobe hdb=1166,7,17 | |
740 | .LP | |
741 | would disable the probe, but still specify the drive geometry so | |
742 | that it would be registered as a valid block device, and hence | |
743 | usable. | |
744 | ||
745 | .SS "The `hd=nowerr' option" | |
746 | ||
747 | Some drives apparently have the WRERR_STAT bit stuck on permanently. | |
748 | This enables a work-around for these broken devices. | |
749 | ||
750 | .SS "The `hd=cdrom' option" | |
751 | ||
752 | This tells the IDE driver that there is an ATAPI compatible CD-ROM | |
753 | attached in place of a normal IDE hard disk. In most cases the CD-ROM | |
754 | is identified automatically, but if it isn't then this may help. | |
755 | ||
756 | .SS "Standard ST-506 Disk Driver Options (`hd=')" | |
757 | ||
758 | The standard disk driver can accept geometry arguments for the disks | |
759 | similar to the IDE driver. Note however that it only expects three | |
760 | values (C/H/S) -- any more or any less and it will silently ignore | |
761 | you. Also, it only accepts `hd=' as an argument, i.e. `hda=' | |
762 | and so on are not valid here. The format is as follows: | |
763 | .IP | |
764 | hd=cyls,heads,sects | |
765 | .LP | |
766 | If there are two disks installed, the above is repeated with the | |
767 | geometry parameters of the second disk. | |
768 | ||
769 | .SS "XT Disk Driver Options (`xd=')" | |
770 | ||
771 | If you are unfortunate enough to be using one of these old 8 bit cards | |
772 | that move data at a whopping 125kB/s then here is the scoop. | |
773 | If the card is not recognised, you will have to use a boot arg of the form: | |
774 | .IP | |
775 | xd=type,irq,iobase,dma_chan | |
776 | .LP | |
777 | The type value specifies the particular manufacturer of the card, | |
778 | overriding autodetection. For the types to use, consult the | |
779 | .I drivers/block/xd.c | |
780 | source file of the kernel you are using. The type is an index in the list | |
781 | .I xd_sigs | |
782 | and in the course of time | |
783 | .\" 1.1.50, 1.3.81, 1.3.99, 2.0.34, 2.1.67, 2.1.78, 2.1.127 | |
784 | types have been added to or deleted from the middle of the list, | |
785 | changing all type numbers. Today (Linux 2.5.0) the types are | |
786 | 0=generic; 1=DTC 5150cx; 2,3=DTC 5150x; 4,5=Western Digital; | |
787 | 6,7,8=Seagate; 9=Omti; 10=XEBEC, and where here several types are | |
788 | given with the same designation, they are equivalent. | |
789 | ||
790 | The xd_setup() function does no checking on the values, and assumes | |
791 | that you entered all four values. Don't disappoint it. Here is an | |
792 | example usage for a WD1002 controller with the BIOS disabled/removed, | |
793 | using the `default' XT controller parameters: | |
794 | .IP | |
795 | xd=2,5,0x320,3 | |
796 | .LP | |
797 | ||
798 | .SS "Syquest's EZ* removable disks" | |
799 | .IP | |
800 | .BI ez= iobase[,irq[,rep[,nybble]]] | |
801 | .LP | |
802 | ||
803 | .SH "IBM MCA BUS DEVICES" | |
804 | See also | |
805 | .IR /usr/src/linux/Documentation/mca.txt . | |
806 | ||
807 | .SS "PS/2 ESDI hard disks" | |
808 | It is possible to specify the desired geometry at boot time: | |
809 | .IP | |
810 | .BI ed= cyls,heads,sectors. | |
811 | .LP | |
812 | For a ThinkPad-720, add the option | |
813 | .IP | |
814 | .BR tp720=1 . | |
815 | .LP | |
816 | ||
817 | .SS "IBM Microchannel SCSI Subsystem configuration" | |
818 | .IP | |
819 | .BI ibmmcascsi= N | |
820 | .LP | |
821 | where N is the \fIpun\fP (SCSI ID) of the subsystem. | |
822 | ||
823 | .SH "CD-ROMs (Non-SCSI/ATAPI/IDE)" | |
824 | ||
825 | .SS "The Aztech Interface" | |
826 | ||
827 | The syntax for this type of card is: | |
828 | .IP | |
829 | aztcd=iobase[,magic_number] | |
830 | .LP | |
831 | If you set the magic_number to 0x79 then the driver will try and run | |
832 | anyway in the event of an unknown firmware version. All other values | |
833 | are ignored. | |
834 | ||
835 | .SS "Parallel port CD-ROM drives" | |
836 | Syntax: | |
837 | .IP | |
838 | pcd.driveN=prt,pro,uni,mod,slv,dly | |
839 | .br | |
840 | pcd.nice=nice | |
841 | .LP | |
842 | where `port' is the base address, `pro' is the protocol number, `uni' | |
8729177b | 843 | is the unit selector (for chained devices), `mod' is the mode (or \-1 |
fea681da MK |
844 | to choose the best automatically), `slv' is 1 if it should be a slave, |
845 | and `dly' is a small integer for slowing down port accesses. The | |
846 | `nice' parameter controls the driver's use of idle CPU time, at the | |
847 | expense of some speed. | |
848 | ||
849 | .SS "The CDU-31A and CDU-33A Sony Interface" | |
850 | ||
851 | This CD-ROM interface is found on some of the Pro Audio Spectrum sound | |
852 | cards, and other Sony supplied interface cards. The syntax is as | |
853 | follows: | |
854 | .IP | |
855 | cdu31a=iobase,[irq[,is_pas_card]] | |
856 | .LP | |
857 | Specifying an IRQ value of zero tells the driver that hardware | |
858 | interrupts aren't supported (as on some PAS cards). If your card | |
859 | supports interrupts, you should use them as it cuts down on the CPU | |
860 | usage of the driver. | |
861 | ||
862 | The | |
863 | .I is_pas_card | |
864 | should be entered as `PAS' if using a Pro Audio Spectrum card, | |
865 | and otherwise it should not be specified at all. | |
866 | ||
867 | .SS "The CDU-535 Sony Interface" | |
868 | ||
869 | The syntax for this CD-ROM interface is: | |
870 | .IP | |
871 | sonycd535=iobase[,irq] | |
872 | .LP | |
873 | A zero can be used for the I/O base as a `placeholder' if one wishes | |
874 | to specify an IRQ value. | |
875 | ||
876 | .SS "The GoldStar Interface" | |
877 | ||
878 | The syntax for this CD-ROM interface is: | |
879 | .IP | |
880 | gscd=iobase | |
881 | .LP | |
882 | ||
883 | .SS "The ISP16 CD-ROM Interface" | |
884 | Syntax: | |
885 | .IP | |
886 | isp16=[iobase[,irq[,dma[,type]]]] | |
887 | .LP | |
888 | (three integers and a string). If the type is given as `noisp16', | |
889 | the interface will not be configured. Other recognized types | |
890 | are: `Sanyo", `Sony', `Panasonic' and `Mitsumi'. | |
891 | ||
892 | .SS "The Mitsumi Standard Interface" | |
893 | ||
894 | The syntax for this CD-ROM interface is: | |
895 | .IP | |
896 | mcd=iobase,[irq[,wait_value]] | |
897 | .LP | |
898 | The | |
899 | .I wait_value | |
900 | is used as an internal timeout value for people who are | |
901 | having problems with their drive, and may or may not be implemented | |
902 | depending on a compile time #define. | |
903 | The Mitsumi FX400 is an IDE/ATAPI CD-ROM player and does not use | |
904 | the mcd driver. | |
905 | ||
906 | .SS "The Mitsumi XA/MultiSession Interface" | |
907 | ||
908 | This is for the same hardware as above, but the driver has extended features. | |
909 | Syntax: | |
910 | .IP | |
911 | mcdx=iobase[,irq] | |
912 | .LP | |
913 | ||
914 | .SS "The Optics Storage Interface" | |
915 | ||
916 | The syntax for this type of card is: | |
917 | .IP | |
918 | optcd=iobase | |
919 | .LP | |
920 | ||
921 | .SS "The Phillips CM206 Interface" | |
922 | ||
923 | The syntax for this type of card is: | |
924 | .IP | |
925 | cm206=[iobase][,irq] | |
926 | .LP | |
927 | ||
928 | The driver assumes numbers between 3 and 11 are IRQ values, and | |
929 | numbers between 0x300 and 0x370 are I/O ports, so you can specify one, | |
930 | or both numbers, in any order. It also accepts `cm206=auto' to enable | |
931 | autoprobing. | |
932 | ||
933 | .SS "The Sanyo Interface" | |
934 | ||
935 | The syntax for this type of card is: | |
936 | .IP | |
937 | sjcd=iobase[,irq[,dma_channel]] | |
938 | .LP | |
939 | ||
940 | .SS "The SoundBlaster Pro Interface" | |
941 | ||
942 | The syntax for this type of card is: | |
943 | .IP | |
944 | sbpcd=iobase,type | |
945 | .LP | |
946 | where type is one of the following (case sensitive) strings: | |
947 | `SoundBlaster', `LaserMate', or `SPEA'. The I/O base is that of the | |
948 | CD-ROM interface, and not that of the sound portion of the card. | |
949 | ||
950 | .SH "ETHERNET DEVICES" | |
951 | ||
952 | Different drivers make use of different parameters, but they all at | |
953 | least share having an IRQ, an I/O port base value, and a name. In its | |
954 | most generic form, it looks something like this: | |
955 | .IP | |
956 | ether=irq,iobase[,param_1[,...param_8]],name | |
957 | .LP | |
958 | The first non-numeric argument is taken as the name. The param_n | |
959 | values (if applicable) usually have different meanings for each | |
960 | different card/driver. Typical param_n values are used to specify | |
961 | things like shared memory address, interface selection, DMA channel | |
962 | and the like. | |
963 | ||
964 | The most common use of this parameter is to force probing for a second | |
965 | ethercard, as the default is to only probe for one. This can be | |
966 | accomplished with a simple: | |
967 | .IP | |
968 | ether=0,0,eth1 | |
969 | .LP | |
970 | Note that the values of zero for the IRQ and I/O base in the above | |
971 | example tell the driver(s) to autoprobe. | |
972 | ||
973 | The Ethernet-HowTo has extensive documentation on using multiple | |
974 | cards and on the card/driver specific implementation | |
975 | of the param_n values where used. Interested readers should refer to | |
976 | the section in that document on their particular card. | |
977 | ||
978 | .SH "THE FLOPPY DISK DRIVER" | |
979 | ||
980 | There are many floppy driver options, and they are all listed in | |
981 | README.fd in linux/drivers/block. This information is taken directly | |
982 | from that file. | |
983 | ||
984 | .SS "floppy=mask,allowed_drive_mask" | |
985 | ||
986 | Sets the bitmask of allowed drives to mask. By default, only units 0 | |
987 | and 1 of each floppy controller are allowed. This is done because | |
988 | certain non-standard hardware (ASUS PCI motherboards) mess up the | |
989 | keyboard when accessing units 2 or 3. This option is somewhat | |
990 | obsoleted by the cmos option. | |
991 | ||
992 | .SS "floppy=all_drives" | |
993 | ||
994 | Sets the bitmask of allowed drives to all drives. Use this if you have | |
995 | more than two drives connected to a floppy controller. | |
996 | ||
997 | .SS "floppy=asus_pci" | |
998 | ||
999 | Sets the bitmask to allow only units 0 and 1. (The default) | |
1000 | ||
1001 | .SS "floppy=daring" | |
1002 | ||
1003 | Tells the floppy driver that you have a well behaved floppy | |
1004 | controller. This allows more efficient and smoother operation, but | |
1005 | may fail on certain controllers. This may speed up certain operations. | |
1006 | ||
1007 | .SS "floppy=0,daring" | |
1008 | ||
1009 | Tells the floppy driver that your floppy controller should be used | |
1010 | with caution. | |
1011 | ||
1012 | .SS "floppy=one_fdc" | |
1013 | ||
1014 | Tells the floppy driver that you have only floppy controller (default) | |
1015 | ||
1016 | .SS "floppy=two_fdc or floppy=address,two_fdc" | |
1017 | ||
1018 | Tells the floppy driver that you have two floppy controllers. The | |
1019 | second floppy controller is assumed to be at address. If address is | |
1020 | not given, 0x370 is assumed. | |
1021 | ||
1022 | .SS "floppy=thinkpad" | |
1023 | ||
1024 | Tells the floppy driver that you have a Thinkpad. Thinkpads use an | |
1025 | inverted convention for the disk change line. | |
1026 | ||
1027 | .SS "floppy=0,thinkpad" | |
1028 | ||
1029 | Tells the floppy driver that you don't have a Thinkpad. | |
1030 | ||
1031 | .SS "floppy=drive,type,cmos" | |
1032 | ||
1033 | Sets the cmos type of drive to type. Additionally, this drive is | |
1034 | allowed in the bitmask. This is useful if you have more than two | |
1035 | floppy drives (only two can be described in the physical cmos), or if | |
1036 | your BIOS uses non-standard CMOS types. Setting the CMOS to 0 for the | |
1037 | first two drives (default) makes the floppy driver read the physical | |
1038 | cmos for those drives. | |
1039 | ||
1040 | .SS "floppy=unexpected_interrupts" | |
1041 | ||
1042 | Print a warning message when an unexpected interrupt is received | |
1043 | (default behaviour) | |
1044 | ||
1045 | .SS "floppy=no_unexpected_interrupts or floppy=L40SX" | |
1046 | ||
1047 | Don't print a message when an unexpected interrupt is received. This | |
1048 | is needed on IBM L40SX laptops in certain video modes. (There seems to | |
1049 | be an interaction between video and floppy. The unexpected interrupts | |
1050 | only affect performance, and can safely be ignored.) | |
1051 | ||
1052 | .SH "THE SOUND DRIVER" | |
1053 | ||
1054 | The sound driver can also accept boot args to override the compiled in | |
1055 | values. This is not recommended, as it is rather complex. It is | |
1056 | described in the Readme.Linux file, in linux/drivers/sound. It accepts | |
1057 | a boot arg of the form: | |
1058 | .IP | |
1059 | sound=device1[,device2[,device3...[,device10]]] | |
1060 | .LP | |
1061 | where each deviceN value is of the following format 0xTaaaId and the | |
1062 | bytes are used as follows: | |
1063 | ||
1064 | T - device type: 1=FM, 2=SB, 3=PAS, 4=GUS, 5=MPU401, 6=SB16, | |
1065 | 7=SB16-MPU401 | |
1066 | ||
1067 | aaa - I/O address in hex. | |
1068 | ||
1069 | I - interrupt line in hex (i.e 10=a, 11=b, ...) | |
1070 | ||
1071 | d - DMA channel. | |
1072 | ||
1073 | As you can see it gets pretty messy, and you are better off to compile | |
1074 | in your own personal values as recommended. Using a boot arg of | |
1075 | `sound=0' will disable the sound driver entirely. | |
1076 | ||
1077 | ||
1078 | .SH "ISDN DRIVERS" | |
1079 | ||
1080 | .SS "The ICN ISDN driver" | |
1081 | Syntax: | |
1082 | .IP | |
1083 | icn=iobase,membase,icn_id1,icn_id2 | |
1084 | .LP | |
1085 | where icn_id1,icn_id2 are two strings used to identify the | |
1086 | card in kernel messages. | |
1087 | ||
1088 | .SS "The PCBIT ISDN driver" | |
1089 | Syntax: | |
1090 | .IP | |
1091 | pcbit=membase1,irq1[,membase2,irq2] | |
1092 | .LP | |
1093 | where membaseN is the shared memory base of the N'th card, and irqN is | |
1094 | the interrupt setting of the N'th card. The default is IRQ 5 and | |
1095 | membase 0xD0000. | |
1096 | ||
1097 | .SS "The Teles ISDN driver" | |
1098 | Syntax: | |
1099 | .IP | |
1100 | teles=iobase,irq,membase,protocol,teles_id | |
1101 | .LP | |
1102 | where iobase is the i/o port address of the card, membase is the | |
1103 | shared memory base address of the card, irq is the interrupt channel | |
1104 | the card uses, and teles_id is the unique ASCII string identifier. | |
1105 | ||
1106 | .SH "SERIAL PORT DRIVERS" | |
1107 | ||
1108 | .SS "The RISCom/8 Multiport Serial Driver (`riscom8=')" | |
1109 | Syntax: | |
1110 | .IP | |
1111 | riscom=iobase1[,iobase2[,iobase3[,iobase4]]] | |
1112 | .LP | |
1113 | More details can be found in | |
1114 | .IR /usr/src/linux/Documentation/riscom8.txt . | |
1115 | ||
1116 | .SS "The DigiBoard Driver (`digi=')" | |
1117 | If this option is used, it should have precisely six parameters. | |
1118 | Syntax: | |
1119 | .IP | |
1120 | digi=status,type,altpin,numports,iobase,membase | |
1121 | .LP | |
1122 | The parameters maybe given as integers, or as strings. | |
1123 | If strings are used, then iobase and membase should be given | |
1124 | in hexadecimal. | |
1125 | The integer arguments (fewer may be given) are in order: | |
1126 | status (Enable(1) or Disable(0) this card), | |
1127 | type (PC/Xi(0), PC/Xe(1), PC/Xeve(2), PC/Xem(3)), | |
1128 | altpin (Enable(1) or Disable(0) alternate pin arrangement), | |
1129 | numports (number of ports on this card), | |
1130 | iobase (I/O Port where card is configured (in HEX)), | |
1131 | membase (base of memory window (in HEX)). | |
1132 | Thus, the following two boot prompt arguments are equivalent: | |
1133 | .IP | |
1134 | digi=E,PC/Xi,D,16,200,D0000 | |
1135 | .br | |
1136 | digi=1,0,0,16,0x200,851968 | |
1137 | .LP | |
1138 | More details can be found in | |
1139 | .IR /usr/src/linux/Documentation/digiboard.txt . | |
1140 | ||
1141 | .SS "The Baycom Serial/Parallel Radio Modem" | |
1142 | Syntax: | |
1143 | .IP | |
1144 | baycom=iobase,irq,modem | |
1145 | .LP | |
1146 | There are precisely 3 parameters; for several cards, give | |
1147 | several `baycom=' commands. The modem parameter is a string | |
1148 | that can take one of the values ser12, ser12*, par96, par96*. | |
1149 | Here the * denotes that software DCD is to be used, and | |
1150 | ser12/par96 chooses between the supported modem types. | |
1151 | For more details, see | |
1152 | .IR /usr/src/linux/drivers/net/README.baycom . | |
1153 | ||
1154 | .SS "Soundcard radio modem driver" | |
1155 | Syntax: | |
1156 | .IP | |
1157 | soundmodem=iobase,irq,dma[,dma2[,serio[,pario]]],0,mode | |
1158 | .LP | |
1159 | All parameters except the last are integers; | |
1160 | the dummy 0 is required because of a bug in the setup code. | |
1161 | The mode parameter is a string with syntax hw:modem, | |
1162 | where hw is one of sbc, wss, wssfdx and modem is one of | |
1163 | afsk1200, fsk9600. | |
1164 | ||
1165 | .SH "THE LINE PRINTER DRIVER" | |
1166 | ||
1167 | .SS "`lp='" | |
1168 | Syntax: | |
1169 | .IP | |
1170 | lp=0 | |
1171 | .br | |
1172 | lp=auto | |
1173 | .br | |
1174 | lp=reset | |
1175 | .br | |
1176 | lp=port[,port...] | |
1177 | .LP | |
1178 | You can tell the printer driver what ports to use and what ports not | |
1179 | to use. The latter comes in handy if you don't want the printer driver | |
1180 | to claim all available parallel ports, so that other drivers | |
1181 | (e.g. PLIP, PPA) can use them instead. | |
1182 | ||
1183 | The format of the argument is multiple port names. For example, | |
1184 | lp=none,parport0 would use the first parallel port for lp1, and | |
1185 | disable lp0. To disable the printer driver entirely, one can use | |
1186 | lp=0. | |
1187 | ||
1188 | .SS "WDT500/501 driver" | |
1189 | Syntax: | |
1190 | .IP | |
1191 | wdt=io,irq | |
1192 | .LP | |
1193 | ||
1194 | .SH "MOUSE DRIVERS" | |
1195 | ||
1196 | .SS "`bmouse=irq'" | |
1197 | The busmouse driver only accepts one parameter, that being the | |
1198 | hardware IRQ value to be used. | |
1199 | ||
1200 | .SS "`msmouse=irq'" | |
1201 | And precisely the same is true for the msmouse driver. | |
1202 | ||
1203 | .SS "ATARI mouse setup" | |
1204 | .LP | |
1205 | atamouse=threshold[,y-threshold] | |
1206 | .IP | |
1207 | If only one argument is given, it is used for both | |
1208 | x-threshold and y-threshold. Otherwise, the first argument | |
1209 | is the x-threshold, and the second the y-threshold. | |
1210 | These values must lie between 1 and 20 (inclusive); the default is 2. | |
1211 | ||
1212 | .SH "VIDEO HARDWARE" | |
1213 | ||
1214 | .SS "`no-scroll'" | |
1215 | This option tells the console driver not to use hardware scroll | |
1216 | (where a scroll is effected by moving the screen origin in video | |
1217 | memory, instead of moving the data). It is required by certain | |
1218 | Braille machines. | |
1219 | ||
1220 | .SH AUTHORS | |
1221 | Linus Torvalds (and many others) | |
1222 | ||
1223 | .SH "SEE ALSO" | |
1224 | .BR lilo.conf (5), | |
1225 | .BR klogd (8), | |
1226 | .BR lilo (8), | |
1227 | .BR mount (8), | |
1228 | .BR rdev (8) | |
1229 | ||
1230 | Large parts of this man page have been derived from the | |
1231 | Boot Parameter HOWTO (version 1.0.1) written by Paul Gortmaker. | |
1232 | More information may be found in this (or a more recent) HOWTO. | |
b9560046 | 1233 | An up-to-date source of information is |
fea681da | 1234 | .IR /usr/src/linux/Documentation/kernel-parameters.txt . |