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