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

SEE ALSO

1079       lilo.conf(5), klogd(8), lilo(8), mount(8), rdev(8)
1080
1081       Large parts of this man page have been derived from the Boot  Parameter
1082       HOWTO  (version 1.0.1) written by Paul Gortmaker.  More information may
1083       be found in this (or a more recent) HOWTO.   An  up-to-date  source  of
1084       information is /usr/src/linux/Documentation/kernel-parameters.txt.
1085

COLOPHON

1087       This  page  is  part of release 3.22 of the Linux man-pages project.  A
1088       description of the project, and information about reporting  bugs,  can
1089       be found at http://www.kernel.org/doc/man-pages/.
1090
1091
1092
1093Linux                             2007-12-16                      BOOTPARAM(7)
Impressum