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