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