                          Kernel Parameters
                          ~~~~~~~~~~~~~~~~~

The following is a consolidated list of the kernel parameters as implemented
(mostly) by the __setup() macro and sorted into English Dictionary order
(defined as ignoring all punctuation and sorting digits before letters in a
case insensitive manner), and with descriptions where known.

Module parameters for loadable modules are specified only as the
parameter name with optional '=' and value as appropriate, such as:

	modprobe usbcore blinkenlights=1

Module parameters for modules that are built into the kernel image
are specified on the kernel command line with the module name plus
'.' plus parameter name, with '=' and value if appropriate, such as:

	usbcore.blinkenlights=1

This document may not be entirely up to date and comprehensive. The command
"modinfo -p ${modulename}" shows a current list of all parameters of a loadable
module. Loadable modules, after being loaded into the running kernel, also
reveal their parameters in /sys/module/${modulename}/parameters/. Some of these
parameters may be changed at runtime by the command
"echo -n ${value} > /sys/module/${modulename}/parameters/${parm}".

The parameters listed below are only valid if certain kernel build options were
enabled and if respective hardware is present. The text in square brackets at
the beginning of each description states the restrictions within which a
parameter is applicable:

	ACPI	ACPI support is enabled.
	ALSA	ALSA sound support is enabled.
	APIC	APIC support is enabled.
	APM	Advanced Power Management support is enabled.
	AX25	Appropriate AX.25 support is enabled.
	DRM	Direct Rendering Management support is enabled.
	EDD	BIOS Enhanced Disk Drive Services (EDD) is enabled
	EFI	EFI Partitioning (GPT) is enabled
	EIDE	EIDE/ATAPI support is enabled.
	FB	The frame buffer device is enabled.
	HW	Appropriate hardware is enabled.
	IA-32	IA-32 aka i386 architecture is enabled.
	IA-64	IA-64 architecture is enabled.
	IOSCHED	More than one I/O scheduler is enabled.
	IP_PNP	IP DHCP, BOOTP, or RARP is enabled.
	ISAPNP	ISA PnP code is enabled.
	ISDN	Appropriate ISDN support is enabled.
	JOY	Appropriate joystick support is enabled.
	LIBATA  Libata driver is enabled
	LP	Printer support is enabled.
	LOOP	Loopback device support is enabled.
	M68k	M68k architecture is enabled.
			These options have more detailed description inside of
			Documentation/m68k/kernel-options.txt.
	MCA	MCA bus support is enabled.
	MDA	MDA console support is enabled.
	MOUSE	Appropriate mouse support is enabled.
	MSI	Message Signaled Interrupts (PCI).
	MTD	MTD support is enabled.
	NET	Appropriate network support is enabled.
	NUMA	NUMA support is enabled.
	GENERIC_TIME The generic timeofday code is enabled.
	NFS	Appropriate NFS support is enabled.
	OSS	OSS sound support is enabled.
	PV_OPS	A paravirtualized kernel
	PARIDE	The ParIDE subsystem is enabled.
	PARISC	The PA-RISC architecture is enabled.
	PCI	PCI bus support is enabled.
	PCMCIA	The PCMCIA subsystem is enabled.
	PNP	Plug & Play support is enabled.
	PPC	PowerPC architecture is enabled.
	PPT	Parallel port support is enabled.
	PS2	Appropriate PS/2 support is enabled.
	RAM	RAM disk support is enabled.
	S390	S390 architecture is enabled.
	SCSI	Appropriate SCSI support is enabled.
			A lot of drivers has their options described inside of
			Documentation/scsi/.
	SELINUX SELinux support is enabled.
	SERIAL	Serial support is enabled.
	SH	SuperH architecture is enabled.
	SMP	The kernel is an SMP kernel.
	SPARC	Sparc architecture is enabled.
	SWSUSP	Software suspend is enabled.
	TS	Appropriate touchscreen support is enabled.
	USB	USB support is enabled.
	USBHID	USB Human Interface Device support is enabled.
	V4L	Video For Linux support is enabled.
	VGA	The VGA console has been enabled.
	VT	Virtual terminal support is enabled.
	WDT	Watchdog support is enabled.
	XT	IBM PC/XT MFM hard disk support is enabled.
	X86-64	X86-64 architecture is enabled.
			More X86-64 boot options can be found in
			Documentation/x86_64/boot-options.txt .

In addition, the following text indicates that the option:

	BUGS=	Relates to possible processor bugs on the said processor.
	KNL	Is a kernel start-up parameter.
	BOOT	Is a boot loader parameter.

Parameters denoted with BOOT are actually interpreted by the boot
loader, and have no meaning to the kernel directly.
Do not modify the syntax of boot loader parameters without extreme
need or coordination with <Documentation/i386/boot.txt>.

There are also arch-specific kernel-parameters not documented here.
See for example <Documentation/x86_64/boot-options.txt>.

Note that ALL kernel parameters listed below are CASE SENSITIVE, and that
a trailing = on the name of any parameter states that that parameter will
be entered as an environment variable, whereas its absence indicates that
it will appear as a kernel argument readable via /proc/cmdline by programs
running once the system is up.

The number of kernel parameters is not limited, but the length of the
complete command line (parameters including spaces etc.) is limited to
a fixed number of characters. This limit depends on the architecture
and is between 256 and 4096 characters. It is defined in the file
./include/asm/setup.h as COMMAND_LINE_SIZE.


	53c7xx=		[HW,SCSI] Amiga SCSI controllers
			See header of drivers/scsi/53c7xx.c.
			See also Documentation/scsi/ncr53c7xx.txt.

	acpi=		[HW,ACPI,X86-64,i386]
			Advanced Configuration and Power Interface
			Format: { force | off | ht | strict | noirq }
			force -- enable ACPI if default was off
			off -- disable ACPI if default was on
			noirq -- do not use ACPI for IRQ routing
			ht -- run only enough ACPI to enable Hyper Threading
			strict -- Be less tolerant of platforms that are not
				strictly ACPI specification compliant.

			See also Documentation/pm.txt, pci=noacpi

	acpi_apic_instance=	[ACPI, IOAPIC]
			Format: <int>
			2: use 2nd APIC table, if available
			1,0: use 1st APIC table
			default: 0

	acpi_sleep=	[HW,ACPI] Sleep options
			Format: { s3_bios, s3_mode }
			See Documentation/power/video.txt

	acpi_sci=	[HW,ACPI] ACPI System Control Interrupt trigger mode
			Format: { level | edge | high | low }

	acpi_irq_balance [HW,ACPI]
			ACPI will balance active IRQs
			default in APIC mode

	acpi_irq_nobalance [HW,ACPI]
			ACPI will not move active IRQs (default)
			default in PIC mode

	acpi_irq_pci=	[HW,ACPI] If irq_balance, clear listed IRQs for
			use by PCI
			Format: <irq>,<irq>...

	acpi_irq_isa=	[HW,ACPI] If irq_balance, mark listed IRQs used by ISA
			Format: <irq>,<irq>...

	acpi_os_name=	[HW,ACPI] Tell ACPI BIOS the name of the OS
			Format: To spoof as Windows 98: ="Microsoft Windows"

	acpi_osi=	[HW,ACPI] Modify list of supported OS interface strings
			acpi_osi="string1"	# add string1 -- only one string
			acpi_osi="!string2"	# remove built-in string2
			acpi_osi=		# disable all strings

	acpi_serialize	[HW,ACPI] force serialization of AML methods

	acpi_skip_timer_override [HW,ACPI]
			Recognize and ignore IRQ0/pin2 Interrupt Override.
			For broken nForce2 BIOS resulting in XT-PIC timer.
	acpi_use_timer_override [HW,ACPI}
			Use timer override. For some broken Nvidia NF5 boards
			that require a timer override, but don't have
			HPET

	acpi.debug_layer=	[HW,ACPI]
			Format: <int>
			Each bit of the <int> indicates an ACPI debug layer,
			1: enable, 0: disable. It is useful for boot time
			debugging. After system has booted up, it can be set
			via /sys/module/acpi/parameters/debug_layer.
			CONFIG_ACPI_DEBUG must be enabled for this to produce any output.
			Available bits (add the numbers together) to enable debug output
			for specific parts of the ACPI subsystem:
			0x01 utilities 0x02 hardware 0x04 events 0x08 tables
			0x10 namespace 0x20 parser 0x40 dispatcher
			0x80 executer 0x100 resources 0x200 acpica debugger
			0x400 os services 0x800 acpica disassembler.
			The number can be in decimal or prefixed with 0x in hex.
			Warning: Many of these options can produce a lot of
			output and make your system unusable. Be very careful.

	acpi.debug_level=	[HW,ACPI]
			Format: <int>
			Each bit of the <int> indicates an ACPI debug level,
			1: enable, 0: disable. It is useful for boot time
			debugging. After system has booted up, it can be set
			via /sys/module/acpi/parameters/debug_level.
			CONFIG_ACPI_DEBUG must be enabled for this to produce any output.
			Available bits (add the numbers together) to enable different
			debug output levels of the ACPI subsystem:
			0x01 error 0x02 warn 0x04 init 0x08 debug object
			0x10 info 0x20 init names 0x40 parse 0x80 load
			0x100 dispatch 0x200 execute 0x400 names 0x800 operation region
			0x1000 bfield 0x2000 tables 0x4000 values 0x8000 objects
			0x10000 resources 0x20000 user requests 0x40000 package.
			The number can be in decimal or prefixed with 0x in hex.
			Warning: Many of these options can produce a lot of
			output and make your system unusable. Be very careful.


	acpi_fake_ecdt	[HW,ACPI] Workaround failure due to BIOS lacking ECDT

	acpi_pm_good	[IA-32,X86-64]
			Override the pmtimer bug detection: force the kernel
			to assume that this machine's pmtimer latches its value
			and always returns good values.

	enable_timer_pin_1 [i386,x86-64]
			Enable PIN 1 of APIC timer
			Can be useful to work around chipset bugs
			(in particular on some ATI chipsets).
			The kernel tries to set a reasonable default.

	disable_timer_pin_1 [i386,x86-64]
			Disable PIN 1 of APIC timer
			Can be useful to work around chipset bugs.

	ad1848=		[HW,OSS]
			Format: <io>,<irq>,<dma>,<dma2>,<type>

	advansys=	[HW,SCSI]
			See header of drivers/scsi/advansys.c.

	advwdt=		[HW,WDT] Advantech WDT
			Format: <iostart>,<iostop>

	aedsp16=	[HW,OSS] Audio Excel DSP 16
			Format: <io>,<irq>,<dma>,<mss_io>,<mpu_io>,<mpu_irq>
			See also header of sound/oss/aedsp16.c.

	aha152x=	[HW,SCSI]
			See Documentation/scsi/aha152x.txt.

	aha1542=	[HW,SCSI]
			Format: <portbase>[,<buson>,<busoff>[,<dmaspeed>]]

	aic7xxx=	[HW,SCSI]
			See Documentation/scsi/aic7xxx.txt.

	aic79xx=	[HW,SCSI]
			See Documentation/scsi/aic79xx.txt.

	amijoy.map=	[HW,JOY] Amiga joystick support
			Map of devices attached to JOY0DAT and JOY1DAT
			Format: <a>,<b>
			See also Documentation/kernel/input/joystick.txt

	analog.map=	[HW,JOY] Analog joystick and gamepad support
			Specifies type or capabilities of an analog joystick
			connected to one of 16 gameports
			Format: <type1>,<type2>,..<type16>

	apc=		[HW,SPARC]
			Power management functions (SPARCstation-4/5 + deriv.)
			Format: noidle
			Disable APC CPU standby support. SPARCstation-Fox does
			not play well with APC CPU idle - disable it if you have
			APC and your system crashes randomly.

	apic=		[APIC,i386] Change the output verbosity whilst booting
			Format: { quiet (default) | verbose | debug }
			Change the amount of debugging information output
			when initialising the APIC and IO-APIC components.

	apm=		[APM] Advanced Power Management
			See header of arch/i386/kernel/apm.c.

	applicom=	[HW]
			Format: <mem>,<irq>

	arcrimi=	[HW,NET] ARCnet - "RIM I" (entirely mem-mapped) cards
			Format: <io>,<irq>,<nodeID>

	ataflop=	[HW,M68k]

	atarimouse=	[HW,MOUSE] Atari Mouse

	atascsi=	[HW,SCSI] Atari SCSI

	atkbd.extra=	[HW] Enable extra LEDs and keys on IBM RapidAccess,
			EzKey and similar keyboards

	atkbd.reset=	[HW] Reset keyboard during initialization

	atkbd.set=	[HW] Select keyboard code set
			Format: <int> (2 = AT (default), 3 = PS/2)

	atkbd.scroll=	[HW] Enable scroll wheel on MS Office and similar
			keyboards

	atkbd.softraw=	[HW] Choose between synthetic and real raw mode
			Format: <bool> (0 = real, 1 = synthetic (default))

	atkbd.softrepeat= [HW]
			Use software keyboard repeat

	autotest	[IA64]

	baycom_epp=	[HW,AX25]
			Format: <io>,<mode>

	baycom_par=	[HW,AX25] BayCom Parallel Port AX.25 Modem
			Format: <io>,<mode>
			See header of drivers/net/hamradio/baycom_par.c.

	baycom_ser_fdx=	[HW,AX25]
			BayCom Serial Port AX.25 Modem (Full Duplex Mode)
			Format: <io>,<irq>,<mode>[,<baud>]
			See header of drivers/net/hamradio/baycom_ser_fdx.c.

	baycom_ser_hdx=	[HW,AX25]
			BayCom Serial Port AX.25 Modem (Half Duplex Mode)
			Format: <io>,<irq>,<mode>
			See header of drivers/net/hamradio/baycom_ser_hdx.c.

	blkmtd_device=	[HW,MTD]
	blkmtd_erasesz=
	blkmtd_ro=
	blkmtd_bs=
	blkmtd_count=

	bttv.card=	[HW,V4L] bttv (bt848 + bt878 based grabber cards)
	bttv.radio=	Most important insmod options are available as
			kernel args too.
	bttv.pll=	See Documentation/video4linux/bttv/Insmod-options
	bttv.tuner=	and Documentation/video4linux/bttv/CARDLIST

	BusLogic=	[HW,SCSI]
			See drivers/scsi/BusLogic.c, comment before function
			BusLogic_ParseDriverOptions().

	c101=		[NET] Moxa C101 synchronous serial card

	cachesize=	[BUGS=IA-32] Override level 2 CPU cache size detection.
			Sometimes CPU hardware bugs make them report the cache
			size incorrectly. The kernel will attempt work arounds
			to fix known problems, but for some CPUs it is not
			possible to determine what the correct size should be.
			This option provides an override for these situations.

	chandev=	[HW,NET] Generic channel device initialisation

	checkreqprot	[SELINUX] Set initial checkreqprot flag value.
			Format: { "0" | "1" }
			See security/selinux/Kconfig help text.
			0 -- check protection applied by kernel (includes
				any implied execute protection).
			1 -- check protection requested by application.
			Default value is set via a kernel config option.
			Value can be changed at runtime via
				/selinux/checkreqprot.

	clock=		[BUGS=IA-32, HW] gettimeofday clocksource override.
			[Deprecated]
			Forces specified clocksource (if available) to be used
			when calculating gettimeofday(). If specified
			clocksource is not available, it defaults to PIT.
			Format: { pit | tsc | cyclone | pmtmr }

	clocksource=	[GENERIC_TIME] Override the default clocksource
			Format: <string>
			Override the default clocksource and use the clocksource
			with the name specified.
			Some clocksource names to choose from, depending on
			the platform:
			[all] jiffies (this is the base, fallback clocksource)
			[ACPI] acpi_pm
			[ARM] imx_timer1,OSTS,netx_timer,mpu_timer2,
				pxa_timer,timer3,32k_counter,timer0_1
			[AVR32] avr32
			[IA-32] pit,hpet,tsc,vmi-timer;
				scx200_hrt on Geode; cyclone on IBM x440
			[MIPS] MIPS
			[PARISC] cr16
			[S390] tod
			[SH] SuperH
			[SPARC64] tick
			[X86-64] hpet,tsc

	code_bytes	[IA32] How many bytes of object code to print in an
			oops report.
			Range: 0 - 8192
			Default: 64

	disable_8254_timer
	enable_8254_timer
			[IA32/X86_64] Disable/Enable interrupt 0 timer routing
			over the 8254 in addition to over the IO-APIC. The
			kernel tries to set a sensible default.

	hpet=		[IA-32,HPET] option to disable HPET and use PIT.
			Format: disable

	com20020=	[HW,NET] ARCnet - COM20020 chipset
			Format:
			<io>[,<irq>[,<nodeID>[,<backplane>[,<ckp>[,<timeout>]]]]]

	com90io=	[HW,NET] ARCnet - COM90xx chipset (IO-mapped buffers)
			Format: <io>[,<irq>]

	com90xx=	[HW,NET]
			ARCnet - COM90xx chipset (memory-mapped buffers)
			Format: <io>[,<irq>[,<memstart>]]

	condev=		[HW,S390] console device
	conmode=

	console=	[KNL] Output console device and options.

		tty<n>	Use the virtual console device <n>.

		ttyS<n>[,options]
		ttyUSB0[,options]
			Use the specified serial port.  The options are of
			the form "bbbbpnf", where "bbbb" is the baud rate,
			"p" is parity ("n", "o", or "e"), "n" is number of
			bits, and "f" is flow control ("r" for RTS or
			omit it).  Default is "9600n8".

			See Documentation/serial-console.txt for more
			information.  See
			Documentation/networking/netconsole.txt for an
			alternative.

		uart[8250],io,<addr>[,options]
		uart[8250],mmio,<addr>[,options]
			Start an early, polled-mode console on the 8250/16550
			UART at the specified I/O port or MMIO address,
			switching to the matching ttyS device later.  The
			options are the same as for ttyS, above.

	earlycon=	[KNL] Output early console device and options.
		uart[8250],io,<addr>[,options]
		uart[8250],mmio,<addr>[,options]
			Start an early, polled-mode console on the 8250/16550
			UART at the specified I/O port or MMIO address.
			The options are the same as for ttyS, above.

	cpcihp_generic=	[HW,PCI] Generic port I/O CompactPCI driver
			Format:
			<first_slot>,<last_slot>,<port>,<enum_bit>[,<debug>]

	cpia_pp=	[HW,PPT]
			Format: { parport<nr> | auto | none }

	crashkernel=nn[KMG]@ss[KMG]
			[KNL] Reserve a chunk of physical memory to
			hold a kernel to switch to with kexec on panic.

	cs4232=		[HW,OSS]
			Format: <io>,<irq>,<dma>,<dma2>,<mpuio>,<mpuirq>

	cs89x0_dma=	[HW,NET]
			Format: <dma>

	cs89x0_media=	[HW,NET]
			Format: { rj45 | aui | bnc }

	cyclades=	[HW,SERIAL] Cyclades multi-serial port adapter.

	dasd=		[HW,NET]
			See header of drivers/s390/block/dasd_devmap.c.

	db9.dev[2|3]=	[HW,JOY] Multisystem joystick support via parallel port
			(one device per port)
			Format: <port#>,<type>
			See also Documentation/input/joystick-parport.txt

	debug		[KNL] Enable kernel debugging (events log level).

	debug_locks_verbose=
			[KNL] verbose self-tests
			Format=<0|1>
			Print debugging info while doing the locking API
			self-tests.
			We default to 0 (no extra messages), setting it to
			1 will print _a lot_ more information - normally
			only useful to kernel developers.

	decnet=		[HW,NET]
			Format: <area>[,<node>]
			See also Documentation/networking/decnet.txt.

	default_blu=	[VT]
			Format: <blue0>,<blue1>,<blue2>,...,<blue15>
			Change the default blue palette of the console.
			This is a 16-member array composed of values
			ranging from 0-255.

	default_grn=	[VT]
			Format: <green0>,<green1>,<green2>,...,<green15>
			Change the default green palette of the console.
			This is a 16-member array composed of values
			ranging from 0-255.

	default_red=	[VT]
			Format: <red0>,<red1>,<red2>,...,<red15>
			Change the default red palette of the console.
			This is a 16-member array composed of values
			ranging from 0-255.

	default_utf8=   [VT]
			Format=<0|1>
			Set system-wide default UTF-8 mode for all tty's.
			Default is 0 and by setting to 1, it enables UTF-8
			mode for all newly opened or allocated terminals.

	dhash_entries=	[KNL]
			Set number of hash buckets for dentry cache.

	digi=		[HW,SERIAL]
			IO parameters + enable/disable command.

	digiepca=	[HW,SERIAL]
			See drivers/char/README.epca and
			Documentation/digiepca.txt.

	dmascc=		[HW,AX25,SERIAL] AX.25 Z80SCC driver with DMA
			support available.
			Format: <io_dev0>[,<io_dev1>[,..<io_dev32>]]

	dmasound=	[HW,OSS] Sound subsystem buffers

	dscc4.setup=	[NET]

	dtc3181e=	[HW,SCSI]

	earlyprintk=	[IA-32,X86-64,SH]
			earlyprintk=vga
			earlyprintk=serial[,ttySn[,baudrate]]

			Append ",keep" to not disable it when the real console
			takes over.

			Only vga or serial at a time, not both.

			Currently only ttyS0 and ttyS1 are supported.

			Interaction with the standard serial driver is not
			very good.

			The VGA output is eventually overwritten by the real
			console.

	eata=		[HW,SCSI]

	ec_intr=	[HW,ACPI] ACPI Embedded Controller interrupt mode
			Format: <int>
			0: polling mode
			non-0: interrupt mode (default)

	eda=		[HW,PS2]

	edb=		[HW,PS2]

	edd=		[EDD]
			Format: {"of[f]" | "sk[ipmbr]"}
			See comment in arch/i386/boot/edd.S

	eicon=		[HW,ISDN]
			Format: <id>,<membase>,<irq>

	eisa_irq_edge=	[PARISC,HW]
			See header of drivers/parisc/eisa.c.

	elanfreq=	[IA-32]
			See comment before function elanfreq_setup() in
			arch/i386/kernel/cpu/cpufreq/elanfreq.c.

	elevator=	[IOSCHED]
			Format: {"anticipatory" | "cfq" | "deadline" | "noop"}
			See Documentation/block/as-iosched.txt and
			Documentation/block/deadline-iosched.txt for details.

	elfcorehdr=	[IA-32, X86_64]
			Specifies physical address of start of kernel core
			image elf header. Generally kexec loader will
			pass this option to capture kernel.
			See Documentation/kdump/kdump.txt for details.

	enforcing	[SELINUX] Set initial enforcing status.
			Format: {"0" | "1"}
			See security/selinux/Kconfig help text.
			0 -- permissive (log only, no denials).
			1 -- enforcing (deny and log).
			Default value is 0.
			Value can be changed at runtime via /selinux/enforce.

	es1371=		[HW,OSS]
			Format: <spdif>,[<nomix>,[<amplifier>]]
			See also header of sound/oss/es1371.c.

	ether=		[HW,NET] Ethernet cards parameters
			This option is obsoleted by the "netdev=" option, which
			has equivalent usage. See its documentation for details.

	eurwdt=		[HW,WDT] Eurotech CPU-1220/1410 onboard watchdog.
			Format: <io>[,<irq>]

	failslab=
	fail_page_alloc=
	fail_make_request=[KNL]
			General fault injection mechanism.
			Format: <interval>,<probability>,<space>,<times>
			See also /Documentation/fault-injection/.

	fd_mcs=		[HW,SCSI]
			See header of drivers/scsi/fd_mcs.c.

	fdomain=	[HW,SCSI]
			See header of drivers/scsi/fdomain.c.

	floppy=		[HW]
			See Documentation/floppy.txt.

	gamecon.map[2|3]=
			[HW,JOY] Multisystem joystick and NES/SNES/PSX pad
			support via parallel port (up to 5 devices per port)
			Format: <port#>,<pad1>,<pad2>,<pad3>,<pad4>,<pad5>
			See also Documentation/input/joystick-parport.txt

	gamma=		[HW,DRM]

	gdth=		[HW,SCSI]
			See header of drivers/scsi/gdth.c.

	gpt		[EFI] Forces disk with valid GPT signature but
			invalid Protective MBR to be treated as GPT.

	gvp11=		[HW,SCSI]

	hashdist=	[KNL,NUMA] Large hashes allocated during boot
			are distributed across NUMA nodes.  Defaults on
			for IA-64, off otherwise.
			Format: 0 | 1 (for off | on)

	hcl=		[IA-64] SGI's Hardware Graph compatibility layer

	hd=		[EIDE] (E)IDE hard drive subsystem geometry
			Format: <cyl>,<head>,<sect>

	hd?=		[HW] (E)IDE subsystem
	hd?lun=		See Documentation/ide.txt.

	highmem=nn[KMG]	[KNL,BOOT] forces the highmem zone to have an exact
			size of <nn>. This works even on boxes that have no
			highmem otherwise. This also works to reduce highmem
			size on bigger boxes.

	highres=	[KNL] Enable/disable high resolution timer mode.
			Valid parameters: "on", "off"
			Default: "on"

	hisax=		[HW,ISDN]
			See Documentation/isdn/README.HiSax.

	hugepages=	[HW,IA-32,IA-64] Maximal number of HugeTLB pages.

	i8042.direct	[HW] Put keyboard port into non-translated mode
	i8042.dumbkbd	[HW] Pretend that controller can only read data from
			     keyboard and cannot control its state
			     (Don't attempt to blink the leds)
	i8042.noaux	[HW] Don't check for auxiliary (== mouse) port
	i8042.nokbd	[HW] Don't check/create keyboard port
	i8042.nomux	[HW] Don't check presence of an active multiplexing
			     controller
	i8042.nopnp	[HW] Don't use ACPIPnP / PnPBIOS to discover KBD/AUX
			     controllers
	i8042.panicblink=
			[HW] Frequency with which keyboard LEDs should blink
			     when kernel panics (default is 0.5 sec)
	i8042.reset	[HW] Reset the controller during init and cleanup
	i8042.unlock	[HW] Unlock (ignore) the keylock

	i810=		[HW,DRM]

	i8k.ignore_dmi	[HW] Continue probing hardware even if DMI data
			indicates that the driver is running on unsupported
			hardware.
	i8k.force	[HW] Activate i8k driver even if SMM BIOS signature
			does not match list of supported models.
	i8k.power_status
			[HW] Report power status in /proc/i8k
			(disabled by default)
	i8k.restricted	[HW] Allow controlling fans only if SYS_ADMIN
			capability is set.

	ibmmcascsi=	[HW,MCA,SCSI] IBM MicroChannel SCSI adapter
			See Documentation/mca.txt.

	icn=		[HW,ISDN]
			Format: <io>[,<membase>[,<icn_id>[,<icn_id2>]]]

	ide=		[HW] (E)IDE subsystem
			Format: ide=nodma or ide=doubler or ide=reverse
			See Documentation/ide.txt.

	ide?=		[HW] (E)IDE subsystem
			Format: ide?=noprobe or chipset specific parameters.
			See Documentation/ide.txt.

	idebus=		[HW] (E)IDE subsystem - VLB/PCI bus speed
			See Documentation/ide.txt.

	idle=		[X86]
			Format: idle=poll or idle=mwait
			Poll forces a polling idle loop that can slightly improves the performance
			of waking up a idle CPU, but will use a lot of power and make the system
			run hot. Not recommended.
			idle=mwait. On systems which support MONITOR/MWAIT but the kernel chose
			to not use it because it doesn't save as much power as a normal idle
			loop use the MONITOR/MWAIT idle loop anyways. Performance should be the same
			as idle=poll.

	ignore_loglevel	[KNL]
			Ignore loglevel setting - this will print /all/
			kernel messages to the console. Useful for debugging.

	ihash_entries=	[KNL]
			Set number of hash buckets for inode cache.

	in2000=		[HW,SCSI]
			See header of drivers/scsi/in2000.c.

	init=		[KNL]
			Format: <full_path>
			Run specified binary instead of /sbin/init as init
			process.

	initcall_debug	[KNL] Trace initcalls as they are executed.  Useful
			for working out where the kernel is dying during
			startup.

	initrd=		[BOOT] Specify the location of the initial ramdisk

	inport.irq=	[HW] Inport (ATI XL and Microsoft) busmouse driver
			Format: <irq>

	inttest=	[IA64]

	io7=		[HW] IO7 for Marvel based alpha systems
			See comment before marvel_specify_io7 in
			arch/alpha/kernel/core_marvel.c.

	ip=		[IP_PNP]
			See Documentation/nfsroot.txt.

	ip2=		[HW] Set IO/IRQ pairs for up to 4 IntelliPort boards
			See comment before ip2_setup() in drivers/char/ip2.c.

	ips=		[HW,SCSI] Adaptec / IBM ServeRAID controller
			See header of drivers/scsi/ips.c.

	ports=		[IP_VS_FTP] IPVS ftp helper module
			Default is 21.
			Up to 8 (IP_VS_APP_MAX_PORTS) ports
			may be specified.
			Format: <port>,<port>....

	irqfixup	[HW]
			When an interrupt is not handled search all handlers
			for it. Intended to get systems with badly broken
			firmware running.

	irqpoll		[HW]
			When an interrupt is not handled search all handlers
			for it. Also check all handlers each timer
			interrupt. Intended to get systems with badly broken
			firmware running.

	isapnp=		[ISAPNP]
			Format: <RDP>,<reset>,<pci_scan>,<verbosity>

	isolcpus=	[KNL,SMP] Isolate CPUs from the general scheduler.
			Format:
			<cpu number>,...,<cpu number>
			or
			<cpu number>-<cpu number>  (must be a positive range in ascending order)
			or a mixture
			<cpu number>,...,<cpu number>-<cpu number>
			This option can be used to specify one or more CPUs
			to isolate from the general SMP balancing and scheduling
			algorithms. The only way to move a process onto or off
			an "isolated" CPU is via the CPU affinity syscalls.
			<cpu number> begins at 0 and the maximum value is
			"number of CPUs in system - 1".

			This option is the preferred way to isolate CPUs. The
			alternative -- manually setting the CPU mask of all
			tasks in the system -- can cause problems and
			suboptimal load balancer performance.

	iucv=		[HW,NET]

	js=		[HW,JOY] Analog joystick
			See Documentation/input/joystick.txt.

	kernelcore=nn[KMG]	[KNL,IA-32,IA-64,PPC,X86-64] This parameter
			specifies the amount of memory usable by the kernel
			for non-movable allocations.  The requested amount is
			spread evenly throughout all nodes in the system. The
			remaining memory in each node is used for Movable
			pages. In the event, a node is too small to have both
			kernelcore and Movable pages, kernelcore pages will
			take priority and other nodes will have a larger number
			of kernelcore pages.  The Movable zone is used for the
			allocation of pages that may be reclaimed or moved
			by the page migration subsystem.  This means that
			HugeTLB pages may not be allocated from this zone.
			Note that allocations like PTEs-from-HighMem still
			use the HighMem zone if it exists, and the Normal
			zone if it does not.

	movablecore=nn[KMG]	[KNL,IA-32,IA-64,PPC,X86-64] This parameter
			is similar to kernelcore except it specifies the
			amount of memory used for migratable allocations.
			If both kernelcore and movablecore is specified,
			then kernelcore will be at *least* the specified
			value but may be more. If movablecore on its own
			is specified, the administrator must be careful
			that the amount of memory usable for all allocations
			is not too small.

	keepinitrd	[HW,ARM]

	kstack=N	[IA-32,X86-64] Print N words from the kernel stack
			in oops dumps.

	l2cr=		[PPC]

	lapic		[IA-32,APIC] Enable the local APIC even if BIOS
			disabled it.

	lapic_timer_c2_ok	[IA-32,x86-64,APIC] trust the local apic timer in
			C2 power state.

	lasi=		[HW,SCSI] PARISC LASI driver for the 53c700 chip
			Format: addr:<io>,irq:<irq>

	legacy_serial.force [HW,IA-32,X86-64]
			Probe for COM ports at legacy addresses even
			if PNPBIOS or ACPI should describe them.  This
			is for working around firmware defects.

	llsc*=		[IA64] See function print_params() in
			arch/ia64/sn/kernel/llsc4.c.

	load_ramdisk=	[RAM] List of ramdisks to load from floppy
			See Documentation/ramdisk.txt.

	lockd.nlm_grace_period=P  [NFS] Assign grace period.
			Format: <integer>

	lockd.nlm_tcpport=N	[NFS] Assign TCP port.
			Format: <integer>

	lockd.nlm_timeout=T	[NFS] Assign timeout value.
			Format: <integer>

	lockd.nlm_udpport=M	[NFS] Assign UDP port.
			Format: <integer>

	logibm.irq=	[HW,MOUSE] Logitech Bus Mouse Driver
			Format: <irq>

	loglevel=	All Kernel Messages with a loglevel smaller than the
			console loglevel will be printed to the console. It can
			also be changed with klogd or other programs. The
			loglevels are defined as follows:

			0 (KERN_EMERG)		system is unusable
			1 (KERN_ALERT)		action must be taken immediately
			2 (KERN_CRIT)		critical conditions
			3 (KERN_ERR)		error conditions
			4 (KERN_WARNING)	warning conditions
			5 (KERN_NOTICE)		normal but significant condition
			6 (KERN_INFO)		informational
			7 (KERN_DEBUG)		debug-level messages

	log_buf_len=n	Sets the size of the printk ring buffer, in bytes.
			Format: { n | nk | nM }
			n must be a power of two.  The default size
			is set in the kernel config file.

	lp=0		[LP]	Specify parallel ports to use, e.g,
	lp=port[,port...]	lp=none,parport0 (lp0 not configured, lp1 uses
	lp=reset		first parallel port). 'lp=0' disables the
	lp=auto			printer driver. 'lp=reset' (which can be
				specified in addition to the ports) causes
				attached printers to be reset. Using
				lp=port1,port2,... specifies the parallel ports
				to associate lp devices with, starting with
				lp0. A port specification may be 'none' to skip
				that lp device, or a parport name such as
				'parport0'. Specifying 'lp=auto' instead of a
				port specification list means that device IDs
				from each port should be examined, to see if
				an IEEE 1284-compliant printer is attached; if
				so, the driver will manage that printer.
				See also header of drivers/char/lp.c.

	lpj=n		[KNL]
			Sets loops_per_jiffy to given constant, thus avoiding
			time-consuming boot-time autodetection (up to 250 ms per
			CPU). 0 enables autodetection (default). To determine
			the correct value for your kernel, boot with normal
			autodetection and see what value is printed. Note that
			on SMP systems the preset will be applied to all CPUs,
			which is likely to cause problems if your CPUs need
			significantly divergent settings. An incorrect value
			will cause delays in the kernel to be wrong, leading to
			unpredictable I/O errors and other breakage. Although
			unlikely, in the extreme case this might damage your
			hardware.

	ltpc=		[NET]
			Format: <io>,<irq>,<dma>

	mac5380=	[HW,SCSI] Format:
			<can_queue>,<cmd_per_lun>,<sg_tablesize>,<hostid>,<use_tags>

	mac53c9x=	[HW,SCSI] Format:
			<num_esps>,<disconnect>,<nosync>,<can_queue>,<cmd_per_lun>,<sg_tablesize>,<hostid>,<use_tags>

	machvec=	[IA64] Force the use of a particular machine-vector
			(machvec) in a generic kernel.
			Example: machvec=hpzx1_swiotlb

	max_loop=	[LOOP] Maximum number of loopback devices that can
			be mounted
			Format: <1-256>

	maxcpus=	[SMP] Maximum number of processors that	an SMP kernel
			should make use of.
			Using "nosmp" or "maxcpus=0" will disable SMP
			entirely (the MPS table probe still happens, though).
			A command-line option of "maxcpus=<NUM>", where <NUM>
			is an integer greater than 0, limits the maximum number
			of CPUs activated in SMP mode to <NUM>.
			Using "maxcpus=1" on an SMP kernel is the trivial
			case of an SMP kernel with only one CPU.

	max_addr=[KMG]	[KNL,BOOT,ia64] All physical memory greater than or
			equal to this physical address is ignored.

	max_luns=	[SCSI] Maximum number of LUNs to probe.
			Should be between 1 and 2^32-1.

	max_report_luns=
			[SCSI] Maximum number of LUNs received.
			Should be between 1 and 16384.

	mca-pentium	[BUGS=IA-32]

	mcatest=	[IA-64]

	mce		[IA-32] Machine Check Exception

	md=		[HW] RAID subsystems devices and level
			See Documentation/md.txt.

	mdacon=		[MDA]
			Format: <first>,<last>
			Specifies range of consoles to be captured by the MDA.

	mem=nn[KMG]	[KNL,BOOT] Force usage of a specific amount of memory
			Amount of memory to be used when the kernel is not able
			to see the whole system memory or for test.
			[IA-32] Use together with memmap= to avoid physical
			address space collisions. Without memmap= PCI devices
			could be placed at addresses belonging to unused RAM.

	mem=nopentium	[BUGS=IA-32] Disable usage of 4MB pages for kernel
			memory.

	memmap=exactmap	[KNL,IA-32,X86_64] Enable setting of an exact
			E820 memory map, as specified by the user.
			Such memmap=exactmap lines can be constructed based on
			BIOS output or other requirements. See the memmap=nn@ss
			option description.

	memmap=nn[KMG]@ss[KMG]
			[KNL] Force usage of a specific region of memory
			Region of memory to be used, from ss to ss+nn.

	memmap=nn[KMG]#ss[KMG]
			[KNL,ACPI] Mark specific memory as ACPI data.
			Region of memory to be used, from ss to ss+nn.

	memmap=nn[KMG]$ss[KMG]
			[KNL,ACPI] Mark specific memory as reserved.
			Region of memory to be used, from ss to ss+nn.

	meye.*=		[HW] Set MotionEye Camera parameters
			See Documentation/video4linux/meye.txt.

	mga=		[HW,DRM]

	mousedev.tap_time=
			[MOUSE] Maximum time between finger touching and
			leaving touchpad surface for touch to be considered
			a tap and be reported as a left button click (for
			touchpads working in absolute mode only).
			Format: <msecs>
	mousedev.xres=	[MOUSE] Horizontal screen resolution, used for devices
			reporting absolute coordinates, such as tablets
	mousedev.yres=	[MOUSE] Vertical screen resolution, used for devices
			reporting absolute coordinates, such as tablets

	mpu401=		[HW,OSS]
			Format: <io>,<irq>

	MTD_Partition=	[MTD]
			Format: <name>,<region-number>,<size>,<offset>

	MTD_Region=	[MTD] Format:
			<name>,<region-number>[,<base>,<size>,<buswidth>,<altbuswidth>]

	mtdparts=	[MTD]
			See drivers/mtd/cmdline.c.

	mtouchusb.raw_coordinates=
			[HW] Make the MicroTouch USB driver use raw coordinates
			('y', default) or cooked coordinates ('n')

	n2=		[NET] SDL Inc. RISCom/N2 synchronous serial card

	NCR_D700=	[HW,SCSI]
			See header of drivers/scsi/NCR_D700.c.

	ncr5380=	[HW,SCSI]

	ncr53c400=	[HW,SCSI]

	ncr53c400a=	[HW,SCSI]

	ncr53c406a=	[HW,SCSI]

	ncr53c8xx=	[HW,SCSI]

	netdev=		[NET] Network devices parameters
			Format: <irq>,<io>,<mem_start>,<mem_end>,<name>
			Note that mem_start is often overloaded to mean
			something different and driver-specific.
			This usage is only documented in each driver source
			file if at all.

	nfsaddrs=	[NFS]
			See Documentation/nfsroot.txt.

	nfsroot=	[NFS] nfs root filesystem for disk-less boxes.
			See Documentation/nfsroot.txt.

	nfs.callback_tcpport=
			[NFS] set the TCP port on which the NFSv4 callback
			channel should listen.

	nfs.idmap_cache_timeout=
			[NFS] set the maximum lifetime for idmapper cache
			entries.

	nmi_watchdog=	[KNL,BUGS=IA-32] Debugging features for SMP kernels

	no387		[BUGS=IA-32] Tells the kernel to use the 387 maths
			emulation library even if a 387 maths coprocessor
			is present.

	noacpi		[LIBATA] Disables use of ACPI in libata suspend/resume
			when set.
			Format: <int>

	noaliencache	[MM, NUMA, SLAB] Disables the allocation of alien
			caches in the slab allocator.  Saves per-node memory,
			but will impact performance.

	noalign		[KNL,ARM]

	noapic		[SMP,APIC] Tells the kernel to not make use of any
			IOAPICs that may be present in the system.

	noasync		[HW,M68K] Disables async and sync negotiation for
			all devices.

	nobats		[PPC] Do not use BATs for mapping kernel lowmem
			on "Classic" PPC cores.

	nocache		[ARM]

	nodelayacct	[KNL] Disable per-task delay accounting

	nodisconnect	[HW,SCSI,M68K] Disables SCSI disconnects.

	noexec		[IA-64]

	noexec		[IA-32,X86-64]
			noexec=on: enable non-executable mappings (default)
			noexec=off: disable nn-executable mappings

	nofxsr		[BUGS=IA-32] Disables x86 floating point extended
			register save and restore. The kernel will only save
			legacy floating-point registers on task switch.

	nohlt		[BUGS=ARM]

	no-hlt		[BUGS=IA-32] Tells the kernel that the hlt
			instruction doesn't work correctly and not to
			use it.

	nohalt		[IA-64] Tells the kernel not to use the power saving
			function PAL_HALT_LIGHT when idle. This increases
			power-consumption. On the positive side, it reduces
			interrupt wake-up latency, which may improve performance
			in certain environments such as networked servers or
			real-time systems.

	nohz=		[KNL] Boottime enable/disable dynamic ticks
			Valid arguments: on, off
			Default: on

	noirqbalance	[IA-32,SMP,KNL] Disable kernel irq balancing

	noirqdebug	[IA-32] Disables the code which attempts to detect and
			disable unhandled interrupt sources.

	no_timer_check	[IA-32,X86_64,APIC] Disables the code which tests for
			broken timer IRQ sources.

	noisapnp	[ISAPNP] Disables ISA PnP code.

	noinitrd	[RAM] Tells the kernel not to load any configured
			initial RAM disk.

	nointroute	[IA-64]

	nojitter	[IA64] Disables jitter checking for ITC timers.

	nolapic		[IA-32,APIC] Do not enable or use the local APIC.

	nolapic_timer	[IA-32,APIC] Do not use the local APIC timer.

	noltlbs		[PPC] Do not use large page/tlb entries for kernel
			lowmem mapping on PPC40x.

	nomca		[IA-64] Disable machine check abort handling

	nomce		[IA-32] Machine Check Exception

	noreplace-paravirt	[IA-32,PV_OPS] Don't patch paravirt_ops

	noreplace-smp	[IA-32,SMP] Don't replace SMP instructions
			with UP alternatives

	noresidual	[PPC] Don't use residual data on PReP machines.

	noresume	[SWSUSP] Disables resume and restores original swap
			space.

	no-scroll	[VGA] Disables scrollback.
			This is required for the Braillex ib80-piezo Braille
			reader made by F.H. Papenmeier (Germany).

	nosbagart	[IA-64]

	nosep		[BUGS=IA-32] Disables x86 SYSENTER/SYSEXIT support.

	nosmp		[SMP] Tells an SMP kernel to act as a UP kernel.

	nosoftlockup	[KNL] Disable the soft-lockup detector.

	nosync		[HW,M68K] Disables sync negotiation for all devices.

	notsc		[BUGS=IA-32] Disable Time Stamp Counter

	nousb		[USB] Disable the USB subsystem

	nowb		[ARM]

	numa_zonelist_order= [KNL, BOOT] Select zonelist order for NUMA.
			one of ['zone', 'node', 'default'] can be specified
			This can be set from sysctl after boot.
			See Documentation/sysctl/vm.txt for details.

	nr_uarts=	[SERIAL] maximum number of UARTs to be registered.

	opl3=		[HW,OSS]
			Format: <io>

	oprofile.timer=	[HW]
			Use timer interrupt instead of performance counters

	osst=		[HW,SCSI] SCSI Tape Driver
			Format: <buffer_size>,<write_threshold>
			See also Documentation/scsi/st.txt.

	panic=		[KNL] Kernel behaviour on panic
			Format: <timeout>

	parkbd.port=	[HW] Parallel port number the keyboard adapter is
			connected to, default is 0.
			Format: <parport#>
	parkbd.mode=	[HW] Parallel port keyboard adapter mode of operation,
			0 for XT, 1 for AT (default is AT).
			Format: <mode>

	parport=	[HW,PPT] Specify parallel ports. 0 disables.
			Format: { 0 | auto | 0xBBB[,IRQ[,DMA]] }
			Use 'auto' to force the driver to use any
			IRQ/DMA settings detected (the default is to
			ignore detected IRQ/DMA settings because of
			possible conflicts). You can specify the base
			address, IRQ, and DMA settings; IRQ and DMA
			should be numbers, or 'auto' (for using detected
			settings on that particular port), or 'nofifo'
			(to avoid using a FIFO even if it is detected).
			Parallel ports are assigned in the order they
			are specified on the command line, starting
			with parport0.

	parport_init_mode=	[HW,PPT]
			Configure VIA parallel port to operate in
			a specific mode. This is necessary on Pegasos
			computer where firmware has no options for setting
			up parallel port mode and sets it to spp.
			Currently this function knows 686a and 8231 chips.
			Format: [spp|ps2|epp|ecp|ecpepp]

	pas2=		[HW,OSS] Format:
			<io>,<irq>,<dma>,<dma16>,<sb_io>,<sb_irq>,<sb_dma>,<sb_dma16>

	pas16=		[HW,SCSI]
			See header of drivers/scsi/pas16.c.

	pause_on_oops=
			Halt all CPUs after the first oops has been printed for
			the specified number of seconds.  This is to be used if
			your oopses keep scrolling off the screen.

	pcbit=		[HW,ISDN]

	pcd.		[PARIDE]
			See header of drivers/block/paride/pcd.c.
			See also Documentation/paride.txt.

	pci=option[,option...]	[PCI] various PCI subsystem options:
		off		[IA-32] don't probe for the PCI bus
		bios		[IA-32] force use of PCI BIOS, don't access
				the hardware directly. Use this if your machine
				has a non-standard PCI host bridge.
		nobios		[IA-32] disallow use of PCI BIOS, only direct
				hardware access methods are allowed. Use this
				if you experience crashes upon bootup and you
				suspect they are caused by the BIOS.
		conf1		[IA-32] Force use of PCI Configuration
				Mechanism 1.
		conf2		[IA-32] Force use of PCI Configuration
				Mechanism 2.
		nommconf	[IA-32,X86_64] Disable use of MMCONFIG for PCI
				Configuration
		nomsi		[MSI] If the PCI_MSI kernel config parameter is
				enabled, this kernel boot option can be used to
				disable the use of MSI interrupts system-wide.
		nosort		[IA-32] Don't sort PCI devices according to
				order given by the PCI BIOS. This sorting is
				done to get a device order compatible with
				older kernels.
		biosirq		[IA-32] Use PCI BIOS calls to get the interrupt
				routing table. These calls are known to be buggy
				on several machines and they hang the machine
				when used, but on other computers it's the only
				way to get the interrupt routing table. Try
				this option if the kernel is unable to allocate
				IRQs or discover secondary PCI buses on your
				motherboard.
		rom		[IA-32] Assign address space to expansion ROMs.
				Use with caution as certain devices share
				address decoders between ROMs and other
				resources.
		irqmask=0xMMMM	[IA-32] Set a bit mask of IRQs allowed to be
				assigned automatically to PCI devices. You can
				make the kernel exclude IRQs of your ISA cards
				this way.
		pirqaddr=0xAAAAA	[IA-32] Specify the physical address
				of the PIRQ table (normally generated
				by the BIOS) if it is outside the
				F0000h-100000h range.
		lastbus=N	[IA-32] Scan all buses thru bus #N. Can be
				useful if the kernel is unable to find your
				secondary buses and you want to tell it
				explicitly which ones they are.
		assign-busses	[IA-32] Always assign all PCI bus
				numbers ourselves, overriding
				whatever the firmware may have done.
		usepirqmask	[IA-32] Honor the possible IRQ mask stored
				in the BIOS $PIR table. This is needed on
				some systems with broken BIOSes, notably
				some HP Pavilion N5400 and Omnibook XE3
				notebooks. This will have no effect if ACPI
				IRQ routing is enabled.
		noacpi		[IA-32] Do not use ACPI for IRQ routing
				or for PCI scanning.
		routeirq	Do IRQ routing for all PCI devices.
				This is normally done in pci_enable_device(),
				so this option is a temporary workaround
				for broken drivers that don't call it.
		firmware	[ARM] Do not re-enumerate the bus but instead
				just use the configuration from the
				bootloader. This is currently used on
				IXP2000 systems where the bus has to be
				configured a certain way for adjunct CPUs.
		noearly		[X86] Don't do any early type 1 scanning.
				This might help on some broken boards which
				machine check when some devices' config space
				is read. But various workarounds are disabled
				and some IOMMU drivers will not work.
		bfsort		Sort PCI devices into breadth-first order.
				This sorting is done to get a device
				order compatible with older (<= 2.4) kernels.
		nobfsort	Don't sort PCI devices into breadth-first order.
		cbiosize=nn[KMG]	The fixed amount of bus space which is
				reserved for the CardBus bridge's IO window.
				The default value is 256 bytes.
		cbmemsize=nn[KMG]	The fixed amount of bus space which is
				reserved for the CardBus bridge's memory
				window. The default value is 64 megabytes.

	pcmv=		[HW,PCMCIA] BadgePAD 4

	pd.		[PARIDE]
			See Documentation/paride.txt.

	pdcchassis=	[PARISC,HW] Disable/Enable PDC Chassis Status codes at
			boot time.
			Format: { 0 | 1 }
			See arch/parisc/kernel/pdc_chassis.c

	pf.		[PARIDE]
			See Documentation/paride.txt.

	pg.		[PARIDE]
			See Documentation/paride.txt.

	pirq=		[SMP,APIC] Manual mp-table setup
			See Documentation/i386/IO-APIC.txt.

	plip=		[PPT,NET] Parallel port network link
			Format: { parport<nr> | timid | 0 }
			See also Documentation/parport.txt.

	pnpacpi=	[ACPI]
			{ off }

	pnpbios=	[ISAPNP]
			{ on | off | curr | res | no-curr | no-res }

	pnp_reserve_irq=
			[ISAPNP] Exclude IRQs for the autoconfiguration

	pnp_reserve_dma=
			[ISAPNP] Exclude DMAs for the autoconfiguration

	pnp_reserve_io=	[ISAPNP] Exclude I/O ports for the autoconfiguration
			Ranges are in pairs (I/O port base and size).

	pnp_reserve_mem=
			[ISAPNP] Exclude memory regions for the
			autoconfiguration.
			Ranges are in pairs (memory base and size).

	print-fatal-signals=
			[KNL] debug: print fatal signals
			print-fatal-signals=1: print segfault info to
			the kernel console.
			default: off.

	printk.time=	Show timing data prefixed to each printk message line
			Format: <bool>  (1/Y/y=enable, 0/N/n=disable)

	profile=	[KNL] Enable kernel profiling via /proc/profile
			Format: [schedule,]<number>
			Param: "schedule" - profile schedule points.
			Param: <number> - step/bucket size as a power of 2 for
				statistical time based profiling.
			Param: "sleep" - profile D-state sleeping (millisecs)

	processor.max_cstate=	[HW,ACPI]
			Limit processor to maximum C-state
			max_cstate=9 overrides any DMI blacklist limit.

	processor.nocst	[HW,ACPI]
			Ignore the _CST method to determine C-states,
			instead using the legacy FADT method

	prompt_ramdisk=	[RAM] List of RAM disks to prompt for floppy disk
			before loading.
			See Documentation/ramdisk.txt.

	psmouse.proto=	[HW,MOUSE] Highest PS2 mouse protocol extension to
			probe for; one of (bare|imps|exps|lifebook|any).
	psmouse.rate=	[HW,MOUSE] Set desired mouse report rate, in reports
			per second.
	psmouse.resetafter=	[HW,MOUSE]
			Try to reset the device after so many bad packets
			(0 = never).
	psmouse.resolution=
			[HW,MOUSE] Set desired mouse resolution, in dpi.
	psmouse.smartscroll=
			[HW,MOUSE] Controls Logitech smartscroll autorepeat.
			0 = disabled, 1 = enabled (default).

	pss=		[HW,OSS] Personal Sound System (ECHO ESC614)
			Format:
			<io>,<mss_io>,<mss_irq>,<mss_dma>,<mpu_io>,<mpu_irq>

	pt.		[PARIDE]
			See Documentation/paride.txt.

	quiet		[KNL] Disable most log messages

	r128=		[HW,DRM]

	raid=		[HW,RAID]
			See Documentation/md.txt.

	ramdisk=	[RAM] Sizes of RAM disks in kilobytes [deprecated]
			See Documentation/ramdisk.txt.

	ramdisk_blocksize=	[RAM]
			See Documentation/ramdisk.txt.

	ramdisk_size=	[RAM] Sizes of RAM disks in kilobytes
			New name for the ramdisk parameter.
			See Documentation/ramdisk.txt.

	rcu.blimit=	[KNL,BOOT] Set maximum number of finished
			RCU callbacks to process in one batch.

	rcu.qhimark=	[KNL,BOOT] Set threshold of queued
			RCU callbacks over which batch limiting is disabled.

	rcu.qlowmark=	[KNL,BOOT] Set threshold of queued
			RCU callbacks below which batch limiting is re-enabled.

	rdinit=		[KNL]
			Format: <full_path>
			Run specified binary instead of /init from the ramdisk,
			used for early userspace startup. See initrd.

	reboot=		[BUGS=IA-32,BUGS=ARM,BUGS=IA-64] Rebooting mode
			Format: <reboot_mode>[,<reboot_mode2>[,...]]
			See arch/*/kernel/reboot.c or arch/*/kernel/process.c			

	reserve=	[KNL,BUGS] Force the kernel to ignore some iomem area

	reservetop=	[IA-32]
			Format: nn[KMG]
			Reserves a hole at the top of the kernel virtual
			address space.

	reset_devices	[KNL] Force drivers to reset the underlying device
			during initialization.

	resume=		[SWSUSP]
			Specify the partition device for software suspend

	resume_offset=	[SWSUSP]
			Specify the offset from the beginning of the partition
			given by "resume=" at which the swap header is located,
			in <PAGE_SIZE> units (needed only for swap files).
			See  Documentation/power/swsusp-and-swap-files.txt

	retain_initrd	[RAM] Keep initrd memory after extraction

	rhash_entries=	[KNL,NET]
			Set number of hash buckets for route cache

	riscom8=	[HW,SERIAL]
			Format: <io_board1>[,<io_board2>[,...<io_boardN>]]

	ro		[KNL] Mount root device read-only on boot

	root=		[KNL] Root filesystem

	rootdelay=	[KNL] Delay (in seconds) to pause before attempting to
			mount the root filesystem

	rootflags=	[KNL] Set root filesystem mount option string

	rootfstype=	[KNL] Set root filesystem type

	rootwait	[KNL] Wait (indefinitely) for root device to show up.
			Useful for devices that are detected asynchronously
			(e.g. USB and MMC devices).

	rw		[KNL] Mount root device read-write on boot

	S		[KNL] Run init in single mode

	sa1100ir	[NET]
			See drivers/net/irda/sa1100_ir.c.

	sb=		[HW,OSS]
			Format: <io>,<irq>,<dma>,<dma2>

	sbni=		[NET] Granch SBNI12 leased line adapter

	sc1200wdt=	[HW,WDT] SC1200 WDT (watchdog) driver
			Format: <io>[,<timeout>[,<isapnp>]]

	scsi_debug_*=	[SCSI]
			See drivers/scsi/scsi_debug.c.

	scsi_default_dev_flags=
			[SCSI] SCSI default device flags
			Format: <integer>

	scsi_dev_flags=	[SCSI] Black/white list entry for vendor and model
			Format: <vendor>:<model>:<flags>
			(flags are integer value)

	scsi_logging=	[SCSI]

	scsi_mod.scan=	[SCSI] sync (default) scans SCSI busses as they are
			discovered.  async scans them in kernel threads,
			allowing boot to proceed.  none ignores them, expecting
			user space to do the scan.

	selinux		[SELINUX] Disable or enable SELinux at boot time.
			Format: { "0" | "1" }
			See security/selinux/Kconfig help text.
			0 -- disable.
			1 -- enable.
			Default value is set via kernel config option.
			If enabled at boot time, /selinux/disable can be used
			later to disable prior to initial policy load.

	selinux_compat_net =
			[SELINUX] Set initial selinux_compat_net flag value.
                        Format: { "0" | "1" }
                        0 -- use new secmark-based packet controls
                        1 -- use legacy packet controls
                        Default value is 0 (preferred).
                        Value can be changed at runtime via
                        /selinux/compat_net.

	serialnumber	[BUGS=IA-32]

	sg_def_reserved_size=	[SCSI]

	shapers=	[NET]
			Maximal number of shapers.

	sim710=		[SCSI,HW]
			See header of drivers/scsi/sim710.c.

	simeth=		[IA-64]
	simscsi=

	slram=		[HW,MTD]

	slub_debug[=options[,slabs]]	[MM, SLUB]
			Enabling slub_debug allows one to determine the
			culprit if slab objects become corrupted. Enabling
			slub_debug can create guard zones around objects and
			may poison objects when not in use. Also tracks the
			last alloc / free. For more information see
			Documentation/vm/slub.txt.

	slub_max_order= [MM, SLUB]
			Determines the maximum allowed order for slabs.
			A high setting may cause OOMs due to memory
			fragmentation. For more information see
			Documentation/vm/slub.txt.

	slub_min_objects=	[MM, SLUB]
			The minimum number of objects per slab. SLUB will
			increase the slab order up to slub_max_order to
			generate a sufficiently large slab able to contain
			the number of objects indicated. The higher the number
			of objects the smaller the overhead of tracking slabs
			and the less frequently locks need to be acquired.
			For more information see Documentation/vm/slub.txt.

	slub_min_order=	[MM, SLUB]
			Determines the mininum page order for slabs. Must be
			lower than slub_max_order.
			For more information see Documentation/vm/slub.txt.

	slub_nomerge	[MM, SLUB]
			Disable merging of slabs with similar size. May be
			necessary if there is some reason to distinguish
			allocs to different slabs. Debug options disable
			merging on their own.
			For more information see Documentation/vm/slub.txt.

	smart2=		[HW]
			Format: <io1>[,<io2>[,...,<io8>]]

	smp-alt-once	[IA-32,SMP] On a hotplug CPU system, only
			attempt to substitute SMP alternatives once at boot.

	smsc-ircc2.nopnp	[HW] Don't use PNP to discover SMC devices
	smsc-ircc2.ircc_cfg=	[HW] Device configuration I/O port
	smsc-ircc2.ircc_sir=	[HW] SIR base I/O port
	smsc-ircc2.ircc_fir=	[HW] FIR base I/O port
	smsc-ircc2.ircc_irq=	[HW] IRQ line
	smsc-ircc2.ircc_dma=	[HW] DMA channel
	smsc-ircc2.ircc_transceiver= [HW] Transceiver type:
				0: Toshiba Satellite 1800 (GP data pin select)
				1: Fast pin select (default)
				2: ATC IRMode

	snd-ad1816a=	[HW,ALSA]

	snd-ad1848=	[HW,ALSA]

	snd-ali5451=	[HW,ALSA]

	snd-als100=	[HW,ALSA]

	snd-als4000=	[HW,ALSA]

	snd-azt2320=	[HW,ALSA]

	snd-cmi8330=	[HW,ALSA]

	snd-cmipci=	[HW,ALSA]

	snd-cs4231=	[HW,ALSA]

	snd-cs4232=	[HW,ALSA]

	snd-cs4236=	[HW,ALSA]

	snd-cs4281=	[HW,ALSA]

	snd-cs46xx=	[HW,ALSA]

	snd-dt019x=	[HW,ALSA]

	snd-dummy=	[HW,ALSA]

	snd-emu10k1=	[HW,ALSA]

	snd-ens1370=	[HW,ALSA]

	snd-ens1371=	[HW,ALSA]

	snd-es968=	[HW,ALSA]

	snd-es1688=	[HW,ALSA]

	snd-es18xx=	[HW,ALSA]

	snd-es1938=	[HW,ALSA]

	snd-es1968=	[HW,ALSA]

	snd-fm801=	[HW,ALSA]

	snd-gusclassic=	[HW,ALSA]

	snd-gusextreme=	[HW,ALSA]

	snd-gusmax=	[HW,ALSA]

	snd-hdsp=	[HW,ALSA]

	snd-ice1712=	[HW,ALSA]

	snd-intel8x0=	[HW,ALSA]

	snd-interwave=	[HW,ALSA]

	snd-interwave-stb=
			[HW,ALSA]

	snd-korg1212=	[HW,ALSA]

	snd-maestro3=	[HW,ALSA]

	snd-mpu401=	[HW,ALSA]

	snd-mtpav=	[HW,ALSA]

	snd-nm256=	[HW,ALSA]

	snd-opl3sa2=	[HW,ALSA]

	snd-opti92x-ad1848=
			[HW,ALSA]

	snd-opti92x-cs4231=
			[HW,ALSA]

	snd-opti93x=	[HW,ALSA]

	snd-pmac=	[HW,ALSA]

	snd-rme32=	[HW,ALSA]

	snd-rme96=	[HW,ALSA]

	snd-rme9652=	[HW,ALSA]

	snd-sb8=	[HW,ALSA]

	snd-sb16=	[HW,ALSA]

	snd-sbawe=	[HW,ALSA]

	snd-serial=	[HW,ALSA]

	snd-sgalaxy=	[HW,ALSA]

	snd-sonicvibes=	[HW,ALSA]

	snd-sun-amd7930=
			[HW,ALSA]

	snd-sun-cs4231=	[HW,ALSA]

	snd-trident=	[HW,ALSA]

	snd-usb-audio=	[HW,ALSA,USB]

	snd-via82xx=	[HW,ALSA]

	snd-virmidi=	[HW,ALSA]

	snd-wavefront=	[HW,ALSA]

	snd-ymfpci=	[HW,ALSA]

	sonypi.*=	[HW] Sony Programmable I/O Control Device driver
			See Documentation/sonypi.txt

	specialix=	[HW,SERIAL] Specialix multi-serial port adapter
			See Documentation/specialix.txt.

	spia_io_base=	[HW,MTD]
	spia_fio_base=
	spia_pedr=
	spia_peddr=

	sscape=		[HW,OSS]
			Format: <io>,<irq>,<dma>,<mpu_io>,<mpu_irq>

	st=		[HW,SCSI] SCSI tape parameters (buffers, etc.)
			See Documentation/scsi/st.txt.

	st0x=		[HW,SCSI]
			See header of drivers/scsi/seagate.c.

	sti=		[PARISC,HW]
			Format: <num>
			Set the STI (builtin display/keyboard on the HP-PARISC
			machines) console (graphic card) which should be used
			as the initial boot-console.
			See also comment in drivers/video/console/sticore.c.

	sti_font=	[HW]
			See comment in drivers/video/console/sticore.c.

	stifb=		[HW]
			Format: bpp:<bpp1>[:<bpp2>[:<bpp3>...]]

	sunrpc.pool_mode=
			[NFS]
			Control how the NFS server code allocates CPUs to
			service thread pools.  Depending on how many NICs
			you have and where their interrupts are bound, this
			option will affect which CPUs will do NFS serving.
			Note: this parameter cannot be changed while the
			NFS server is running.

			auto	    the server chooses an appropriate mode
				    automatically using heuristics
			global	    a single global pool contains all CPUs
			percpu	    one pool for each CPU
			pernode	    one pool for each NUMA node (equivalent
				    to global on non-NUMA machines)

	swiotlb=	[IA-64] Number of I/O TLB slabs

	switches=	[HW,M68k]

	sym53c416=	[HW,SCSI]
			See header of drivers/scsi/sym53c416.c.

	sysrq_always_enabled
			[KNL]
			Ignore sysrq setting - this boot parameter will
			neutralize any effect of /proc/sys/kernel/sysrq.
			Useful for debugging.

	t128=		[HW,SCSI]
			See header of drivers/scsi/t128.c.

	tdfx=		[HW,DRM]

	thash_entries=	[KNL,NET]
			Set number of hash buckets for TCP connection

	time		Show timing data prefixed to each printk message line
			[deprecated, see 'printk.time']

	tipar.timeout=	[HW,PPT]
			Set communications timeout in tenths of a second
			(default 15).

	tipar.delay=	[HW,PPT]
			Set inter-bit delay in microseconds (default 10).

	tmc8xx=		[HW,SCSI]
			See header of drivers/scsi/seagate.c.

	tmscsim=	[HW,SCSI]
			See comment before function dc390_setup() in
			drivers/scsi/tmscsim.c.

	tp720=		[HW,PS2]

	trix=		[HW,OSS] MediaTrix AudioTrix Pro
			Format:
			<io>,<irq>,<dma>,<dma2>,<sb_io>,<sb_irq>,<sb_dma>,<mpu_io>,<mpu_irq>

	tsdev.xres=	[TS] Horizontal screen resolution.
	tsdev.yres=	[TS] Vertical screen resolution.

	turbografx.map[2|3]=	[HW,JOY]
			TurboGraFX parallel port interface
			Format:
			<port#>,<js1>,<js2>,<js3>,<js4>,<js5>,<js6>,<js7>
			See also Documentation/input/joystick-parport.txt

	u14-34f=	[HW,SCSI] UltraStor 14F/34F SCSI host adapter
			See header of drivers/scsi/u14-34f.c.

	uart401=	[HW,OSS]
			Format: <io>,<irq>

	uart6850=	[HW,OSS]
			Format: <io>,<irq>

	uhci-hcd.ignore_oc=
			[USB] Ignore overcurrent events (default N).
			Some badly-designed motherboards generate lots of
			bogus events, for ports that aren't wired to
			anything.  Set this parameter to avoid log spamming.
			Note that genuine overcurrent events won't be
			reported either.

	usbcore.autosuspend=
			[USB] The autosuspend time delay (in seconds) used
			for newly-detected USB devices (default 2).  This
			is the time required before an idle device will be
			autosuspended.  Devices for which the delay is set
			to a negative value won't be autosuspended at all.

	usbhid.mousepoll=
			[USBHID] The interval which mice are to be polled at.

	vdso=		[IA-32,SH,x86-64]
			vdso=2: enable compat VDSO (default with COMPAT_VDSO)
			vdso=1: enable VDSO (default)
			vdso=0: disable VDSO mapping

	vector=		[IA-64,SMP]
			vector=percpu: enable percpu vector domain

	video=		[FB] Frame buffer configuration
			See Documentation/fb/modedb.txt.

	vga=		[BOOT,IA-32] Select a particular video mode
			See Documentation/i386/boot.txt and
			Documentation/svga.txt.
			Use vga=ask for menu.
			This is actually a boot loader parameter; the value is
			passed to the kernel using a special protocol.

	vmalloc=nn[KMG]	[KNL,BOOT] Forces the vmalloc area to have an exact
			size of <nn>. This can be used to increase the
			minimum size (128MB on x86). It can also be used to
			decrease the size and leave more room for directly
			mapped kernel RAM.

	vmhalt=		[KNL,S390] Perform z/VM CP command after system halt.
			Format: <command>

	vmpanic=	[KNL,S390] Perform z/VM CP command after kernel panic.
			Format: <command>

	vmpoff=		[KNL,S390] Perform z/VM CP command after power off.
			Format: <command>

	waveartist=	[HW,OSS]
			Format: <io>,<irq>,<dma>,<dma2>

	wd33c93=	[HW,SCSI]
			See header of drivers/scsi/wd33c93.c.

	wd7000=		[HW,SCSI]
			See header of drivers/scsi/wd7000.c.

	wdt=		[WDT] Watchdog
			See Documentation/watchdog/watchdog.txt.

	xd=		[HW,XT] Original XT pre-IDE (RLL encoded) disks.
	xd_geo=		See header of drivers/block/xd.c.

	xirc2ps_cs=	[NET,PCMCIA]
			Format:
			<irq>,<irq_mask>,<io>,<full_duplex>,<do_sound>,<lockup_hack>[,<irq2>[,<irq3>[,<irq4>]]]

	norandmaps	Don't use address space randomization
			Equivalent to echo 0 > /proc/sys/kernel/randomize_va_space

 	unwind_debug=N 	N > 0 will enable dwarf2 unwinder debugging
			This is useful to get more information why
			you got a "dwarf2 unwinder stuck"

______________________________________________________________________

TODO:

	Add documentation for ALSA options.
	Add more DRM drivers.
