1BOOTPARAM(7)               Linux Programmer's Manual              BOOTPARAM(7)
2
3
4

NAME

6       bootparam - Introduction to boot time parameters of the Linux kernel
7

DESCRIPTION

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

THE ARGUMENT LIST

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

GENERAL NON-DEVICE SPECIFIC BOOT ARGS

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

BOOT ARGUMENTS FOR USE BY KERNEL DEVELOPERS

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

BOOT ARGUMENTS FOR RAMDISK USE

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

BOOT ARGUMENTS FOR SCSI DEVICES

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

HARD DISKS

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

IBM MCA BUS DEVICES

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

CD-ROMs (Non-SCSI/ATAPI/IDE)

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

ETHERNET DEVICES

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

THE FLOPPY DISK DRIVER

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

THE SOUND DRIVER

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

ISDN DRIVERS

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

SERIAL PORT DRIVERS

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

THE LINE PRINTER DRIVER

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

MOUSE DRIVERS

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

VIDEO HARDWARE

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

AUTHORS

1113       Linus Torvalds (and many others)
1114
1115

SEE ALSO

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)
Impressum