1 .\" Copyright (c) 1995,1997 Paul Gortmaker and Andries Brouwer
3 .\" %%%LICENSE_START(GPLv2+_DOC_FULL)
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.
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.
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.
19 .\" You should have received a copy of the GNU General Public
20 .\" License along with this manual; if not, see
21 .\" <http://www.gnu.org/licenses/>.
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.
27 .\" FIXME . The use of quotes on this page is inconsistent with the
28 .\" rest of man-pages.
30 .TH BOOTPARAM 7 2014-06-13 "Linux" "Linux Programmer's Manual"
32 bootparam \- introduction to boot time parameters of the Linux kernel
34 The Linux kernel accepts certain 'command-line options' or 'boot time
35 parameters' at the moment it is started.
36 In general this is used to
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.
41 When the kernel is booted directly by the BIOS (say from a floppy to
42 which you copied a kernel using 'cp zImage /dev/fd0'),
43 you have no opportunity to specify any parameters.
44 So, in order to take advantage of this possibility you have to
45 use a boot loader that is able to pass parameters, such as GRUB.
47 .\" The LILO program (LInux LOader) written by Werner Almesberger is the
48 .\" most commonly used.
49 .\" It has the ability to boot various kernels, and
50 .\" stores the configuration information in a plain text file.
54 .\" .BR lilo.conf (5).)
55 .\" LILO can boot DOS, OS/2, Linux, FreeBSD, UnixWare, etc., and is quite flexible.
57 .\" The other commonly used Linux loader is 'LoadLin', which is a DOS
58 .\" program that has the capability to launch a Linux kernel from the DOS
59 .\" prompt (with boot-args) assuming that certain resources are available.
60 .\" This is good for people that want to launch Linux from DOS.
62 .\" It is also very useful if you have certain hardware which relies on
63 .\" the supplied DOS driver to put the hardware into a known state.
64 .\" A common example is 'SoundBlaster Compatible' sound cards that require
65 .\" the DOS driver to twiddle a few mystical registers to put the card
66 .\" into a SB compatible mode.
67 .\" Booting DOS with the supplied driver, and
68 .\" then loading Linux from the DOS prompt with loadlin avoids the reset
69 .\" of the card that happens if one rebooted instead.
71 The kernel command line is parsed into a list of strings
72 (boot arguments) separated by spaces.
73 Most of the boot arguments take have the form:
77 name[=value_1][,value_2]...[,value_10]
81 where 'name' is a unique keyword that is used to identify what part of
82 the kernel the associated values (if any) are to be given to.
83 Note the limit of 10 is real, as the present code handles only 10 comma
84 separated parameters per keyword.
85 (However, you can reuse the same
86 keyword with up to an additional 10 parameters in unusually
87 complicated situations, assuming the setup function supports it.)
89 Most of the sorting is coded in the kernel source file
92 checks to see if the argument is any of the special arguments 'root=',
93 \&'nfsroot=', 'nfsaddrs=', 'ro', 'rw', 'debug' or 'init'.
94 The meaning of these special arguments is described below.
96 Then it walks a list of setup functions (contained in the bootsetups
97 array) to see if the specified argument string (such as 'foo') has
98 been associated with a setup function ('foo_setup()') for a particular
99 device or part of the kernel.
100 If you passed the kernel the line
101 foo=3,4,5,6 then the kernel would search the bootsetups array to see
102 if 'foo' was registered.
103 If it was, then it would call the setup
104 function associated with 'foo' (foo_setup()) and hand it the arguments
105 3, 4, 5, and 6 as given on the kernel command line.
107 Anything of the form 'foo=bar' that is not accepted as a setup function
108 as described above is then interpreted as an environment variable to
110 A (useless?) example would be to use 'TERM=vt100' as a boot
113 Any remaining arguments that were not picked up by the kernel and were
114 not interpreted as environment variables are then passed onto process
115 one, which is usually the
118 The most common argument that
121 process is the word 'single' which instructs it
122 to boot the computer in single user mode, and not launch all the usual
124 Check the manual page for the version of
127 your system to see what arguments it accepts.
128 .SS General non-device-specific boot arguments
131 This sets the initial command to be executed by the kernel.
132 If this is not set, or cannot be found, the kernel will try
140 and panic if all of this fails.
143 This sets the nfs boot address to the given string.
144 This boot address is used in case of a net boot.
147 This sets the nfs root name to the given string.
149 does not begin with '/' or ',' or a digit, then it is prefixed by
151 This root name is used in case of a net boot.
157 Some i387 coprocessor chips have bugs that show up when used in 32 bit
159 For example, some of the early ULSI-387 chips would
160 cause solid lockups while performing floating-point calculations.
161 Using the 'no387' boot argument causes Linux to ignore the maths
162 coprocessor even if you have one.
163 Of course you must then have your
164 kernel compiled with math emulation support!
170 Some of the early i486DX-100 chips have a problem with the 'hlt'
171 instruction, in that they can't reliably return to operating mode
172 after this instruction is used.
173 Using the 'no-hlt' instruction tells
174 Linux to just run an infinite loop when there is nothing else to do,
175 and to not halt the CPU.
176 This allows people with these broken chips
180 This argument tells the kernel what device is to be used as the root
181 filesystem while booting.
182 The default of this setting is determined
183 at compile time, and usually is the value of the root device of the
184 system that the kernel was built on.
185 To override this value, and
186 select the second floppy drive as the root device, one would
189 The root device can be specified symbolically or numerically.
190 A symbolic specification has the form
193 the device type ('hd' for ST-506 compatible hard disk, with Y in
194 \&'a'-'d'; 'sd' for SCSI compatible disk, with Y in 'a'-'e';
195 \&'ad' for Atari ACSI disk, with Y in 'a'-'e',
196 \&'ez' for a Syquest EZ135 parallel port removable drive, with Y='a',
197 \&'xd' for XT compatible disk, with Y either 'a' or 'b'; 'fd' for
198 floppy disk, with Y the floppy drive number\(emfd0 would be
199 the DOS 'A:' drive, and fd1 would be 'B:'), Y the driver letter or
200 number, and N the number (in decimal) of the partition on this device
201 (absent in the case of floppies).
202 Recent kernels allow many other
203 types, mostly for CD-ROMs: nfs, ram, scd, mcd, cdu535, aztcd, cm206cd,
204 gscd, sbpcd, sonycd, bpcd.
205 (The type nfs specifies a net boot; ram refers to a ram disk.)
207 Note that this has nothing to do with the designation of these
208 devices on your filesystem.
209 The '/dev/' part is purely conventional.
211 The more awkward and less portable numeric specification of the above
212 possible root devices in major/minor format is also accepted.
215 is major 8, minor 3, so you could use 'root=0x803' as an
219 This parameter sets the delay (in seconds) to pause before attempting
220 to mount the root filesystem.
222 .BR "'rootflags=...'"
223 This parameter sets the mount option string for the root filesystem
227 .BR "'rootfstype=...'"
228 The 'rootfstype' option tells the kernel to mount the root filesystem as
229 if it where of the type specified.
230 This can be useful (for example) to
231 mount an ext3 filesystem as ext2 and then remove the journal in the root
232 filesystem, in fact reverting its format from ext3 to ext2 without the
233 need to boot the box from alternate media.
235 .BR 'ro' " and " 'rw'
236 The 'ro' option tells the kernel to mount the root filesystem
237 as 'read-only' so that filesystem consistency check programs (fsck)
238 can do their work on a quiescent filesystem.
240 write to files on the filesystem in question until it is 'remounted'
241 as read/write capable, for example, by 'mount \-w \-n \-o remount /'.
245 The 'rw' option tells the kernel to mount the root filesystem read/write.
250 This tells the kernel the location of the suspend-to-disk data that you want the machine to resume from after hibernation.
251 Usually, it is the same as your swap partition or file. Example:
260 This is used to protect I/O port regions from probes.
261 The form of the command is:
265 .BI reserve= iobase,extent[,iobase,extent]...
269 In some machines it may be necessary to prevent device drivers from
270 checking for devices (auto-probing) in a specific region.
272 because of hardware that reacts badly to the probing, or hardware
273 that would be mistakenly identified, or merely
274 hardware you don't want the kernel to initialize.
276 The reserve boot-time argument specifies an I/O port region that
278 A device driver will not probe a reserved region,
279 unless another boot argument explicitly specifies that it do so.
281 For example, the boot line
285 reserve=0x300,32 blah=0x300
289 keeps all device drivers except the driver for 'blah' from probing
293 The BIOS call defined in the PC specification that returns
294 the amount of installed memory was designed only to be able
295 to report up to 64MB.
296 Linux uses this BIOS call at boot to
297 determine how much memory is installed.
298 If you have more than 64MB of
299 RAM installed, you can use this boot argument to tell Linux how much memory
301 The value is in decimal or hexadecimal (prefix 0x),
302 and the suffixes 'k' (times 1024) or 'M' (times 1048576) can be used.
303 Here is a quote from Linus on usage of the 'mem=' parameter.
306 The kernel will accept any 'mem=xx' parameter you give it, and if it
307 turns out that you lied to it, it will crash horribly sooner or later.
308 The parameter indicates the highest addressable RAM address, so
309 \&'mem=0x1000000' means you have 16MB of memory, for example.
310 For a 96MB machine this would be 'mem=0x6000000'.
313 some machines might use the top of memory for BIOS
314 caching or whatever, so you might not actually have up to the full
316 The reverse is also true: some chipsets will map
317 the physical memory that is covered by the BIOS area into the area
318 just past the top of memory, so the top-of-mem might actually be 96MB
320 If you tell linux that it has more memory than
321 it actually does have, bad things will happen: maybe not at once, but
325 You can also use the boot argument 'mem=nopentium' to turn off 4 MB
326 page tables on kernels configured for IA32 systems with a pentium or newer
330 By default the kernel will not reboot after a panic, but this option
331 will cause a kernel reboot after N seconds (if N is greater than zero).
332 This panic timeout can also be set by
336 echo N > /proc/sys/kernel/panic
340 .B "'reboot=[warm|cold][,[bios|hard]]'"
344 Since 2.0.22 a reboot is by default a cold reboot.
345 One asks for the old default with 'reboot=warm'.
346 (A cold reboot may be required to reset certain hardware,
347 but might destroy not yet written data in a disk cache.
348 A warm reboot may be faster.)
349 By default a reboot is hard, by asking the keyboard controller
350 to pulse the reset line low, but there is at least one type
351 of motherboard where that doesn't work.
352 The option 'reboot=bios' will
353 instead jump through the BIOS.
355 .BR 'nosmp' " and " 'maxcpus=N'
356 (Only when __SMP__ is defined.)
357 A command-line option of 'nosmp' or 'maxcpus=0' will disable SMP
358 activation entirely; an option 'maxcpus=N' limits the maximum number
359 of CPUs activated in SMP mode to N.
360 .SS Boot arguments for use by kernel developers
363 Kernel messages are handed off to the kernel log daemon klogd so that they
364 may be logged to disk.
365 Messages with a priority above
367 are also printed on the console.
368 (For these levels, see
369 .IR <linux/kernel.h> .)
370 By default this variable is set to log anything more important than
372 This boot argument will cause the kernel to also
373 print the messages of DEBUG priority.
374 The console loglevel can also be set at run time via an option
380 It is possible to enable a kernel profiling function,
381 if one wishes to find out where the kernel is spending its CPU cycles.
382 Profiling is enabled by setting the variable
385 This is done either by specifying
387 at compile time, or by giving the 'profile=' option.
390 gets will be N, when given, or
391 .BR CONFIG_PROFILE_SHIFT ,
392 when that is given, or 2, the default.
393 The significance of this variable is that it
394 gives the granularity of the profiling: each clock tick, if the
395 system was executing kernel code, a counter is incremented:
399 profile[address >> prof_shift]++;
403 The raw profiling information can be read from
405 Probably you'll want to use a tool such as readprofile.c to digest it.
408 will clear the counters.
410 .B "'swap=N1,N2,N3,N4,N5,N6,N7,N8'"
411 Set the eight parameters max_page_age, page_advance, page_decline,
412 page_initial_age, age_cluster_fract, age_cluster_min, pageout_weight,
413 bufferout_weight that control the kernel swap algorithm.
414 For kernel tuners only.
416 .B "'buff=N1,N2,N3,N4,N5,N6'"
417 Set the six parameters max_buff_age, buff_advance, buff_decline,
418 buff_initial_age, bufferout_weight, buffermem_grace that control
419 kernel buffer memory management.
420 For kernel tuners only.
421 .SS Boot arguments for ramdisk use
422 (Only if the kernel was compiled with
423 .BR CONFIG_BLK_DEV_RAM .)
424 In general it is a bad idea to use a ramdisk under Linux\(emthe
425 system will use available memory more efficiently itself.
426 But while booting (or while constructing boot floppies)
427 it is often useful to load the floppy contents into a
429 One might also have a system in which first
430 some modules (for filesystem or hardware) must be loaded
431 before the main disk can be accessed.
433 In Linux 1.3.48, ramdisk handling was changed drastically.
434 Earlier, the memory was allocated statically, and there was
435 a 'ramdisk=N' parameter to tell its size.
436 (This could also be set in the kernel image at compile time.)
437 These days ram disks use the buffer cache, and grow dynamically.
438 For a lot of information in conjunction with the new ramdisk
439 setup, see the kernel source file
440 .IR Documentation/blockdev/ramdisk.txt
441 .RI ( Documentation/ramdisk.txt
444 There are four parameters, two boolean and two integral.
446 .B "'load_ramdisk=N'"
447 If N=1, do load a ramdisk.
448 If N=0, do not load a ramdisk.
449 (This is the default.)
451 .B "'prompt_ramdisk=N'"
452 If N=1, do prompt for insertion of the floppy.
453 (This is the default.)
454 If N=0, do not prompt.
455 (Thus, this parameter is never needed.)
457 .BR 'ramdisk_size=N' " or (obsolete) " 'ramdisk=N'
458 Set the maximal size of the ramdisk(s) to N kB.
459 The default is 4096 (4 MB).
461 .B "'ramdisk_start=N'"
462 Sets the starting block number (the offset on the floppy where
463 the ramdisk starts) to N.
464 This is needed in case the ramdisk follows a kernel image.
467 (Only if the kernel was compiled with
468 .B CONFIG_BLK_DEV_RAM
470 .BR CONFIG_BLK_DEV_INITRD .)
471 These days it is possible to compile the kernel to use initrd.
472 When this feature is enabled, the boot process will load the kernel
473 and an initial ramdisk; then the kernel converts initrd into
474 a "normal" ramdisk, which is mounted read-write as root device;
477 is executed; afterward the "real" root filesystem is mounted,
478 and the initrd filesystem is moved over to
481 the usual boot sequence (e.g., invocation of
485 For a detailed description of the initrd feature, see the kernel source file
486 .IR Documentation/initrd.txt .
488 The 'noinitrd' option tells the kernel that although it was compiled for
489 operation with initrd, it should not go through the above steps, but
490 leave the initrd data under
492 (This device can be used only once: the data is freed as soon as
493 the last process that used it has closed
495 .SS Boot arguments for SCSI devices
496 General notation for this section:
499 -- the first I/O port that the SCSI host occupies.
500 These are specified in hexadecimal notation,
501 and usually lie in the range from 0x200 to 0x3ff.
504 -- the hardware interrupt that the card is configured to use.
505 Valid values will be dependent on the card in question, but will
506 usually be 5, 7, 9, 10, 11, 12, and 15.
507 The other values are usually
508 used for common peripherals like IDE hard disks, floppies, serial
512 -- the ID that the host adapter uses to identify itself on the
514 Only some host adapters allow you to change this value, as
515 most have it permanently specified internally.
516 The usual default value
517 is 7, but the Seagate and Future Domain TMC-950 boards use 6.
520 -- whether the SCSI host adapter expects the attached devices
521 to supply a parity value with all information exchanges.
522 Specifying a one indicates parity checking is enabled,
523 and a zero disables parity checking.
524 Again, not all adapters will support selection of parity
525 behavior as a boot argument.
527 .B "'max_scsi_luns=...'"
528 A SCSI device can have a number of 'subdevices' contained within
530 The most common example is one of the new SCSI CD-ROMs that
531 handle more than one disk at a time.
532 Each CD is addressed as a
533 \&'Logical Unit Number' (LUN) of that particular device.
535 devices, such as hard disks, tape drives and such are only one device,
536 and will be assigned to LUN zero.
538 Some poorly designed SCSI devices cannot handle being probed for
539 LUNs not equal to zero.
540 Therefore, if the compile-time flag
541 .B CONFIG_SCSI_MULTI_LUN
542 is not set, newer kernels will by default only probe LUN zero.
544 To specify the number of probed LUNs at boot, one enters
545 \&'max_scsi_luns=n' as a boot arg, where n is a number between one and
547 To avoid problems as described above, one would use n=1 to
548 avoid upsetting such broken devices.
550 .B "SCSI tape configuration"
551 Some boot time configuration of the SCSI tape driver can be achieved
552 by using the following:
556 .BI st= buf_size[,write_threshold[,max_bufs]]
560 The first two numbers are specified in units of kB.
563 is 32kB, and the maximum size that can be specified is a
567 is the value at which the buffer is committed to tape, with a
568 default value of 30kB.
569 The maximum number of buffers varies
570 with the number of drives detected, and has a default of two.
571 An example usage would be:
579 Full details can be found in the file
580 .I Documentation/scsi/st.txt
582 .I drivers/scsi/README.st
583 for older kernels) in the Linux kernel source.
585 .B "Adaptec aha151x, aha152x, aic6260, aic6360, SB16-SCSI configuration"
586 The aha numbers refer to cards and the aic numbers refer to the actual
587 SCSI chip on these type of cards, including the Soundblaster-16 SCSI.
589 The probe code for these SCSI hosts looks for an installed BIOS, and
590 if none is present, the probe will not find your card.
592 have to use a boot argument of the form:
596 .BI aha152x= iobase[,irq[,scsi-id[,reconnect[,parity]]]]
600 If the driver was compiled with debugging enabled, a sixth
601 value can be specified to set the debug level.
603 All the parameters are as described at the top of this section, and the
605 value will allow device disconnect/reconnect if a nonzero value
607 An example usage is as follows:
615 Note that the parameters must be specified in order, meaning that if
616 you want to specify a parity setting, then you will have to specify an
617 iobase, irq, scsi-id and reconnect value as well.
619 .B "Adaptec aha154x configuration"
620 The aha1542 series cards have an i82077 floppy controller onboard,
621 while the aha1540 series cards do not.
622 These are busmastering cards,
623 and have parameters to set the "fairness" that is used to share
624 the bus with other devices.
625 The boot argument looks like the following.
629 .BI aha1542= iobase[,buson,busoff[,dmaspeed]]
633 Valid iobase values are usually one of: 0x130, 0x134, 0x230, 0x234,
635 Clone cards may permit other values.
638 .IR buson ", " busoff
639 values refer to the number of microseconds that the
640 card dominates the ISA bus.
641 The defaults are 11us on, and 4us off, so
642 that other cards (such as an ISA LANCE Ethernet card) have a chance to
643 get access to the ISA bus.
647 value refers to the rate (in MB/s) at which the DMA
648 (Direct Memory Access) transfers proceed.
649 The default is 5MB/s.
650 Newer revision cards allow you to select this value as part of the
651 soft-configuration, older cards use jumpers.
652 You can use values up to
653 10MB/s assuming that your motherboard is capable of handling it.
654 Experiment with caution if using values over 5MB/s.
656 .B "Adaptec aha274x, aha284x, aic7xxx configuration"
657 These boards can accept an argument of the form:
661 .BI aic7xxx= extended,no_reset
667 value, if nonzero, indicates that extended translation for large
671 value, if nonzero, tells the driver not to reset the SCSI bus when
672 setting up the host adapter at boot.
674 .B "AdvanSys SCSI Hosts configuration ('advansys=')"
675 The AdvanSys driver can accept up to four I/O addresses that will be
676 probed for an AdvanSys SCSI card.
677 Note that these values (if used) do
678 not effect EISA or PCI probing in any way.
679 They are used only for
680 probing ISA and VLB cards.
681 In addition, if the driver has been
682 compiled with debugging enabled, the level of debugging output can be
683 set by adding an 0xdeb[0-f] parameter.
684 The 0-f allows setting the
685 level of the debugging messages to any of 16 levels of verbosity.
692 .BI AM53C974= host-scsi-id,target-scsi-id,max-rate,max-offset
696 .B "BusLogic SCSI Hosts configuration ('BusLogic=')"
701 .BI BusLogic= N1,N2,N3,N4,N5,S1,S2,...
705 For an extensive discussion of the BusLogic command line parameters,
706 see the kernel source file
707 .IR drivers/scsi/BusLogic.c .
708 .\" (lines 3149-3270 in the kernel version I am looking at).
710 below is a very much abbreviated extract.
712 The parameters N1-N5 are integers.
713 The parameters S1,... are strings.
714 N1 is the I/O Address at which the Host Adapter is located.
715 N2 is the Tagged Queue Depth to use for Target Devices that support
717 N3 is the Bus Settle Time in seconds.
718 This is the amount of time
719 to wait between a Host Adapter Hard Reset which
720 initiates a SCSI Bus Reset and issuing any SCSI Commands.
721 N4 is the Local Options (for one Host Adapter).
722 N5 is the Global Options (for all Host Adapters).
724 The string options are used to provide control over Tagged Queuing
725 (TQ:Default, TQ:Enable, TQ:Disable, TQ:<Per-Target-Spec>), over
726 Error Recovery (ER:Default, ER:HardReset, ER:BusDeviceReset,
727 ER:None, ER:<Per-Target-Spec>), and over Host Adapter Probing
728 (NoProbe, NoProbeISA, NoSortPCI).
730 .B "EATA/DMA configuration"
731 The default list of I/O ports to be probed can be changed by
735 .BI eata= iobase,iobase,... .
739 .B "Future Domain TMC-16x0 configuration"
744 .BI fdomain= iobase,irq[,adapter_id]
748 .B "Great Valley Products (GVP) SCSI controller configuration"
753 .BI gvp11= dma_transfer_bitmask
757 .B "Future Domain TMC-8xx, TMC-950 configuration"
762 .BI tmc8xx= mem_base,irq
768 value is the value of the memory-mapped I/O region that
770 This will usually be one of the following values:
771 0xc8000, 0xca000, 0xcc000, 0xce000, 0xdc000, 0xde000.
773 .B "IN2000 configuration"
782 where S is a comma-separated string of items keyword[:value].
783 Recognized keywords (possibly with value) are:
784 ioport:addr, noreset, nosync:x, period:ns, disconnect:x,
786 For the function of these parameters, see the kernel source file
787 .IR drivers/scsi/in2000.c .
789 .B "NCR5380 and NCR53C400 configuration"
790 The boot argument is of the form
794 .BI ncr5380= iobase,irq,dma
802 .BI ncr53c400= iobase,irq
806 If the card doesn't use interrupts, then an IRQ value of 255 (0xff) will
808 An IRQ value of 254 means to autoprobe.
809 More details can be found in the file
810 .I Documentation/scsi/g_NCR5380.txt
812 .I drivers/scsi/README.g_NCR5380
813 for older kernels) in the Linux kernel source.
815 .B "NCR53C8xx configuration"
824 where S is a comma-separated string of items keyword:value.
825 Recognized keywords are: mpar (master_parity), spar (scsi_parity),
826 disc (disconnection), specf (special_features), ultra (ultra_scsi),
827 fsn (force_sync_nego), tags (default_tags), sync (default_sync),
828 verb (verbose), debug (debug), burst (burst_max).
829 For the function of the assigned values, see the kernel source file
830 .IR drivers/scsi/ncr53c8xx.c .
832 .B "NCR53c406a configuration"
837 .BI ncr53c406a= iobase[,irq[,fastpio]]
841 Specify irq = 0 for noninterrupt driven mode.
842 Set fastpio = 1 for fast pio mode, 0 for slow mode.
844 .B "Pro Audio Spectrum configuration"
845 The PAS16 uses a NC5380 SCSI chip, and newer models support
846 jumperless configuration.
847 The boot argument is of the form:
851 .BI pas16= iobase,irq
855 The only difference is that you can specify an IRQ value of 255, which
856 will tell the driver to work without using interrupts, albeit at a
858 The iobase is usually 0x388.
860 .B "Seagate ST-0x configuration"
861 If your card is not detected at boot time,
862 you will then have to use a boot argument of the form:
866 .BI st0x= mem_base,irq
872 value is the value of the memory-mapped I/O region that
874 This will usually be one of the following values:
875 0xc8000, 0xca000, 0xcc000, 0xce000, 0xdc000, 0xde000.
877 .B "Trantor T128 configuration"
878 These cards are also based on the NCR5380 chip, and accept the
883 .BI t128= mem_base,irq
889 are as follows: 0xcc000, 0xc8000, 0xdc000, 0xd8000.
891 .B "UltraStor 14F/34F configuration"
892 The default list of I/O ports to be probed can be changed by
896 .BI eata= iobase,iobase,... .
900 .B "WD7000 configuration"
905 .BI wd7000= irq,dma,iobase
909 .B "Commodore Amiga A2091/590 SCSI controller configuration"
918 where S is a comma-separated string of options.
919 Recognized options are
920 nosync:bitmask, nodma:x, period:ns, disconnect:x, debug:x,
922 For details, see the kernel source file
923 .IR drivers/scsi/wd33c93.c .
926 .B "IDE Disk/CD-ROM Driver Parameters"
927 The IDE driver accepts a number of parameters, which range from disk
928 geometry specifications, to support for broken controller chips.
929 Drive-specific options are specified by using 'hdX=' with X in 'a'-'h'.
931 Non-drive-specific options are specified with the prefix 'hd='.
932 Note that using a drive-specific prefix for a non-drive-specific option
933 will still work, and the option will just be applied as expected.
935 Also note that 'hd=' can be used to refer to the next unspecified
936 drive in the (a, ..., h) sequence.
937 For the following discussions,
938 the 'hd=' option will be cited for brevity.
940 .I Documentation/ide.txt
942 .I drivers/block/README.ide
943 for older kernels) in the Linux kernel source for more details.
945 .B "The 'hd=cyls,heads,sects[,wpcom[,irq]]' options"
946 These options are used to specify the physical geometry of the disk.
947 Only the first three values are required.
948 The cylinder/head/sectors
949 values will be those used by fdisk.
950 The write precompensation value
951 is ignored for IDE disks.
952 The IRQ value specified will be the IRQ
953 used for the interface that the drive resides on, and is not really a
954 drive-specific parameter.
956 .B "The 'hd=serialize' option"
957 The dual IDE interface CMD-640 chip is broken as designed such that
958 when drives on the secondary interface are used at the same time as
959 drives on the primary interface, it will corrupt your data.
961 option tells the driver to make sure that both interfaces are never
962 used at the same time.
964 .B "The 'hd=dtc2278' option"
965 This option tells the driver that you have a DTC-2278D IDE interface.
966 The driver then tries to do DTC-specific operations to enable the
967 second interface and to enable faster transfer modes.
969 .B "The 'hd=noprobe' option"
970 Do not probe for this drive.
975 hdb=noprobe hdb=1166,7,17
979 would disable the probe, but still specify the drive geometry so
980 that it would be registered as a valid block device, and hence
983 .B "The 'hd=nowerr' option"
984 Some drives apparently have the
986 bit stuck on permanently.
987 This enables a work-around for these broken devices.
989 .B "The 'hd=cdrom' option"
990 This tells the IDE driver that there is an ATAPI compatible CD-ROM
991 attached in place of a normal IDE hard disk.
992 In most cases the CD-ROM
993 is identified automatically, but if it isn't then this may help.
995 .B "Standard ST-506 Disk Driver Options ('hd=')"
996 The standard disk driver can accept geometry arguments for the disks
997 similar to the IDE driver.
998 Note however that it expects only three
999 values (C/H/S); any more or any less and it will silently ignore you.
1000 Also, it accepts only 'hd=' as an argument, that is, 'hda='
1001 and so on are not valid here.
1002 The format is as follows:
1010 If there are two disks installed, the above is repeated with the
1011 geometry parameters of the second disk.
1013 .B "XT Disk Driver Options ('xd=')"
1014 If you are unfortunate enough to be using one of these old 8-bit cards
1015 that move data at a whopping 125kB/s, then here is the scoop.
1016 If the card is not recognized,
1017 you will have to use a boot argument of the form:
1021 xd=type,irq,iobase,dma_chan
1025 The type value specifies the particular manufacturer of the card,
1026 overriding autodetection.
1027 For the types to use, consult the
1028 .I drivers/block/xd.c
1029 source file of the kernel you are using.
1030 The type is an index in the list
1032 and in the course of time
1033 .\" 1.1.50, 1.3.81, 1.3.99, 2.0.34, 2.1.67, 2.1.78, 2.1.127
1034 types have been added to or deleted from the middle of the list,
1035 changing all type numbers.
1036 Today (Linux 2.5.0) the types are
1037 0=generic; 1=DTC 5150cx; 2,3=DTC 5150x; 4,5=Western Digital;
1038 6,7,8=Seagate; 9=Omti; 10=XEBEC, and where here several types are
1039 given with the same designation, they are equivalent.
1041 The xd_setup() function does no checking on the values, and assumes
1042 that you entered all four values.
1043 Don't disappoint it.
1045 example usage for a WD1002 controller with the BIOS disabled/removed,
1046 using the 'default' XT controller parameters:
1054 .B "Syquest's EZ* removable disks"
1059 .BI ez= iobase[,irq[,rep[,nybble]]]
1062 .SS IBM MCA bus devices
1063 See also the kernel source file
1064 .IR Documentation/mca.txt .
1066 .B "PS/2 ESDI hard disks"
1067 It is possible to specify the desired geometry at boot time:
1071 .BI ed= cyls,heads,sectors.
1075 For a ThinkPad-720, add the option
1083 .B "IBM Microchannel SCSI Subsystem configuration"
1094 (SCSI ID) of the subsystem.
1096 .B "The Aztech Interface"
1097 The syntax for this type of card is:
1101 aztcd=iobase[,magic_number]
1105 If you set the magic_number to 0x79, then the driver will try and run
1106 anyway in the event of an unknown firmware version.
1110 .B "Parallel port CD-ROM drives"
1115 pcd.driveN=prt,pro,uni,mod,slv,dly
1120 where 'port' is the base address, 'pro' is the protocol number, 'uni'
1121 is the unit selector (for chained devices), 'mod' is the mode (or \-1
1122 to choose the best automatically), 'slv' is 1 if it should be a slave,
1123 and 'dly' is a small integer for slowing down port accesses.
1124 The 'nice' parameter controls the driver's use of idle CPU time, at the
1125 expense of some speed.
1127 .B "The CDU-31A and CDU-33A Sony Interface"
1128 This CD-ROM interface is found on some of the Pro Audio Spectrum sound
1129 cards, and other Sony supplied interface cards.
1130 The syntax is as follows:
1134 cdu31a=iobase,[irq[,is_pas_card]]
1138 Specifying an IRQ value of zero tells the driver that hardware
1139 interrupts aren't supported (as on some PAS cards).
1141 supports interrupts, you should use them as it cuts down on the CPU
1142 usage of the driver.
1146 should be entered as 'PAS' if using a Pro Audio Spectrum card,
1147 and otherwise it should not be specified at all.
1149 .B "The CDU-535 Sony Interface"
1150 The syntax for this CD-ROM interface is:
1154 sonycd535=iobase[,irq]
1158 A zero can be used for the I/O base as a 'placeholder' if one wishes
1159 to specify an IRQ value.
1161 .B "The GoldStar Interface"
1162 The syntax for this CD-ROM interface is:
1170 .B "The ISP16 CD-ROM Interface"
1175 isp16=[iobase[,irq[,dma[,type]]]]
1179 (Three integers and a string.)
1180 If the type is given as 'noisp16',
1181 the interface will not be configured.
1182 Other recognized types
1183 are: 'Sanyo", 'Sony', 'Panasonic' and 'Mitsumi'.
1185 .B "The Mitsumi Standard Interface"
1186 The syntax for this CD-ROM interface is:
1190 mcd=iobase,[irq[,wait_value]]
1196 is used as an internal timeout value for people who are
1197 having problems with their drive, and may or may not be implemented
1198 depending on a compile-time #define.
1199 The Mitsumi FX400 is an IDE/ATAPI CD-ROM player and does not use
1202 .B "The Mitsumi XA/MultiSession Interface"
1203 This is for the same hardware as above, but the driver has extended features.
1212 .B "The Optics Storage Interface"
1213 The syntax for this type of card is:
1221 .B "The Phillips CM206 Interface"
1222 The syntax for this type of card is:
1226 cm206=[iobase][,irq]
1230 The driver assumes numbers between 3 and 11 are IRQ values, and
1231 numbers between 0x300 and 0x370 are I/O ports, so you can specify one,
1232 or both numbers, in any order.
1233 It also accepts 'cm206=auto' to enable
1236 .B "The Sanyo Interface"
1237 The syntax for this type of card is:
1241 sjcd=iobase[,irq[,dma_channel]]
1245 .B "The SoundBlaster Pro Interface"
1246 The syntax for this type of card is:
1254 where type is one of the following (case sensitive) strings:
1255 \&'SoundBlaster', 'LaserMate', or 'SPEA'.
1256 The I/O base is that of the
1257 CD-ROM interface, and not that of the sound portion of the card.
1258 .SS Ethernet devices
1259 Different drivers make use of different parameters, but they all at
1260 least share having an IRQ, an I/O port base value, and a name.
1261 In its most generic form, it looks something like this:
1265 ether=irq,iobase[,param_1[,...param_8]],name
1269 The first nonnumeric argument is taken as the name.
1270 The param_n values (if applicable) usually have different meanings for each
1271 different card/driver.
1272 Typical param_n values are used to specify
1273 things like shared memory address, interface selection, DMA channel
1276 The most common use of this parameter is to force probing for a second
1277 ethercard, as the default is to probe only for one.
1278 This can be accomplished with a simple:
1286 Note that the values of zero for the IRQ and I/O base in the above
1287 example tell the driver(s) to autoprobe.
1289 The Ethernet-HowTo has extensive documentation on using multiple
1290 cards and on the card/driver-specific implementation
1291 of the param_n values where used.
1292 Interested readers should refer to
1293 the section in that document on their particular card.
1294 .SS The floppy disk driver
1295 There are many floppy driver options, and they are all listed in
1296 .I Documentation/floppy.txt
1298 .I drivers/block/README.fd
1299 for older kernels) in the Linux kernel source.
1300 This information is taken directly
1303 .B "floppy=mask,allowed_drive_mask"
1304 Sets the bit mask of allowed drives to mask.
1305 By default, only units 0
1306 and 1 of each floppy controller are allowed.
1307 This is done because
1308 certain nonstandard hardware (ASUS PCI motherboards) mess up the
1309 keyboard when accessing units 2 or 3.
1310 This option is somewhat
1311 obsoleted by the cmos option.
1313 .B "floppy=all_drives"
1314 Sets the bit mask of allowed drives to all drives.
1315 Use this if you have
1316 more than two drives connected to a floppy controller.
1318 .B "floppy=asus_pci"
1319 Sets the bit mask to allow only units 0 and 1.
1323 Tells the floppy driver that you have a well behaved floppy
1325 This allows more efficient and smoother operation, but
1326 may fail on certain controllers.
1327 This may speed up certain operations.
1329 .B "floppy=0,daring"
1330 Tells the floppy driver that your floppy controller should be used
1334 Tells the floppy driver that you have only floppy controller (default)
1336 .BR floppy=two_fdc " or " floppy=address,two_fdc
1337 Tells the floppy driver that you have two floppy controllers.
1338 The second floppy controller is assumed to be at address.
1340 not given, 0x370 is assumed.
1342 .B "floppy=thinkpad"
1343 Tells the floppy driver that you have a Thinkpad.
1345 inverted convention for the disk change line.
1347 .B "floppy=0,thinkpad"
1348 Tells the floppy driver that you don't have a Thinkpad.
1350 .B "floppy=drive,type,cmos"
1351 Sets the cmos type of drive to type.
1352 Additionally, this drive is
1353 allowed in the bit mask.
1354 This is useful if you have more than two
1355 floppy drives (only two can be described in the physical cmos), or if
1356 your BIOS uses nonstandard CMOS types.
1357 Setting the CMOS to 0 for the
1358 first two drives (default) makes the floppy driver read the physical
1359 cmos for those drives.
1361 .B "floppy=unexpected_interrupts"
1362 Print a warning message when an unexpected interrupt is received
1365 .BR floppy=no_unexpected_interrupts " or " floppy=L40SX
1366 Don't print a message when an unexpected interrupt is received.
1367 This is needed on IBM L40SX laptops in certain video modes.
1369 be an interaction between video and floppy.
1370 The unexpected interrupts
1371 only affect performance, and can safely be ignored.)
1372 .SS The sound driver
1373 The sound driver can also accept boot arguments to override the compiled in
1375 This is not recommended, as it is rather complex.
1376 It is described in the Linux kernel source file
1377 .IR Documentation/sound/oss/README.OSS
1378 .RI ( drivers/sound/Readme.linux
1379 in older kernel versions).
1381 a boot argument of the form:
1385 sound=device1[,device2[,device3...[,device10]]]
1389 where each deviceN value is of the following format 0xTaaaId and the
1390 bytes are used as follows:
1392 T \- device type: 1=FM, 2=SB, 3=PAS, 4=GUS, 5=MPU401, 6=SB16,
1395 aaa \- I/O address in hex.
1397 I \- interrupt line in hex (i.e 10=a, 11=b, ...)
1401 As you can see it gets pretty messy, and you are better off to compile
1402 in your own personal values as recommended.
1403 Using a boot argument of
1404 \&'sound=0' will disable the sound driver entirely.
1407 .B "The ICN ISDN driver"
1412 icn=iobase,membase,icn_id1,icn_id2
1416 where icn_id1,icn_id2 are two strings used to identify the
1417 card in kernel messages.
1419 .B "The PCBIT ISDN driver"
1424 pcbit=membase1,irq1[,membase2,irq2]
1428 where membaseN is the shared memory base of the N'th card, and irqN is
1429 the interrupt setting of the N'th card.
1430 The default is IRQ 5 and
1433 .B "The Teles ISDN driver"
1438 teles=iobase,irq,membase,protocol,teles_id
1442 where iobase is the I/O port address of the card, membase is the
1443 shared memory base address of the card, irq is the interrupt channel
1444 the card uses, and teles_id is the unique ASCII string identifier.
1445 .SS Serial port drivers
1447 .B "The RISCom/8 Multiport Serial Driver ('riscom8=')"
1452 riscom=iobase1[,iobase2[,iobase3[,iobase4]]]
1456 More details can be found in the kernel source file
1457 .IR Documentation/riscom8.txt .
1459 .B "The DigiBoard Driver ('digi=')"
1460 If this option is used, it should have precisely six parameters.
1465 digi=status,type,altpin,numports,iobase,membase
1469 The parameters maybe given as integers, or as strings.
1470 If strings are used, then iobase and membase should be given
1472 The integer arguments (fewer may be given) are in order:
1473 status (Enable(1) or Disable(0) this card),
1474 type (PC/Xi(0), PC/Xe(1), PC/Xeve(2), PC/Xem(3)),
1475 altpin (Enable(1) or Disable(0) alternate pin arrangement),
1476 numports (number of ports on this card),
1477 iobase (I/O Port where card is configured (in HEX)),
1478 membase (base of memory window (in HEX)).
1479 Thus, the following two boot prompt arguments are equivalent:
1483 digi=E,PC/Xi,D,16,200,D0000
1484 digi=1,0,0,16,0x200,851968
1488 More details can be found in the kernel source file
1489 .IR Documentation/digiboard.txt .
1491 .B "The Baycom Serial/Parallel Radio Modem"
1496 baycom=iobase,irq,modem
1500 There are precisely 3 parameters; for several cards, give
1501 several 'baycom=' commands.
1502 The modem parameter is a string
1503 that can take one of the values ser12, ser12*, par96, par96*.
1504 Here the * denotes that software DCD is to be used, and
1505 ser12/par96 chooses between the supported modem types.
1506 For more details, see the file
1507 .I Documentation/networking/baycom.txt
1509 .I drivers/net/README.baycom
1510 for older kernels) in the Linux kernel source.
1512 .B "Soundcard radio modem driver"
1517 soundmodem=iobase,irq,dma[,dma2[,serio[,pario]]],0,mode
1521 All parameters except the last are integers;
1522 the dummy 0 is required because of a bug in the setup code.
1523 The mode parameter is a string with syntax hw:modem,
1524 where hw is one of sbc, wss, or wssfdx, and modem is one of
1525 afsk1200 or fsk9600.
1526 .SS The line printer driver
1541 You can tell the printer driver what ports to use and what ports not
1543 The latter comes in handy if you don't want the printer driver
1544 to claim all available parallel ports, so that other drivers
1545 (e.g., PLIP, PPA) can use them instead.
1547 The format of the argument is multiple port names.
1549 lp=none,parport0 would use the first parallel port for lp1, and
1551 To disable the printer driver entirely, one can use
1554 .B "WDT500/501 driver"
1565 The busmouse driver accepts only one parameter, that being the
1566 hardware IRQ value to be used.
1569 And precisely the same is true for the msmouse driver.
1571 .B "ATARI mouse setup"
1576 atamouse=threshold[,y-threshold]
1580 If only one argument is given, it is used for both
1581 x-threshold and y-threshold.
1582 Otherwise, the first argument
1583 is the x-threshold, and the second the y-threshold.
1584 These values must lie between 1 and 20 (inclusive); the default is 2.
1588 This option tells the console driver not to use hardware scroll
1589 (where a scroll is effected by moving the screen origin in video
1590 memory, instead of moving the data).
1591 It is required by certain
1594 .\" Linus Torvalds (and many others)
1599 Large parts of this man page have been derived from the
1600 Boot Parameter HOWTO (version 1.0.1) written by Paul Gortmaker.
1601 More information may be found in this (or a more recent) HOWTO.
1602 An up-to-date source of information is the kernel source file
1603 .IR Documentation/kernel-parameters.txt .