kernel-parameters.txt 153 KB
Newer Older
1 2
                          Kernel Parameters
                          ~~~~~~~~~~~~~~~~~
Linus Torvalds's avatar
Linus Torvalds committed
3

4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
The following is a consolidated list of the kernel parameters as
implemented by the __setup(), core_param() and module_param() macros
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.

The kernel parses parameters from the kernel command line up to "--";
if it doesn't recognize a parameter and it doesn't contain a '.', the
parameter gets passed to init: parameters with '=' go into init's
environment, others are passed as command line arguments to init.
Everything after "--" is passed as an argument to init.

Module parameters can be specified in two ways: via the kernel command
line with a module name prefix, or via modprobe, e.g.:

	(kernel command line) usbcore.blinkenlights=1
	(modprobe command line) modprobe usbcore blinkenlights=1

Parameters for modules which are built into the kernel need to be
specified on the kernel command line.  modprobe looks through the
kernel command line (/proc/cmdline) and collects module parameters
when it loads a module, so the kernel command line can be used for
loadable modules too.
Linus Torvalds's avatar
Linus Torvalds committed
27

28 29 30 31 32
Hyphens (dashes) and underscores are equivalent in parameter names, so
	log_buf_len=1M print-fatal-signals=1
can also be entered as
	log-buf-len=1M print_fatal_signals=1

33 34
Double-quotes can be used to protect spaces in values, e.g.:
	param="spaces in here"
35

36 37 38 39 40 41 42
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}".

43 44 45 46
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:
Linus Torvalds's avatar
Linus Torvalds committed
47 48

	ACPI	ACPI support is enabled.
Chuck Ebbert's avatar
Chuck Ebbert committed
49
	AGP	AGP (Accelerated Graphics Port) is enabled.
Linus Torvalds's avatar
Linus Torvalds committed
50 51 52
	ALSA	ALSA sound support is enabled.
	APIC	APIC support is enabled.
	APM	Advanced Power Management support is enabled.
53
	ARM	ARM architecture is enabled.
Haavard Skinnemoen's avatar
Haavard Skinnemoen committed
54
	AVR32	AVR32 architecture is enabled.
Linus Torvalds's avatar
Linus Torvalds committed
55
	AX25	Appropriate AX.25 support is enabled.
56
	BLACKFIN Blackfin architecture is enabled.
57
	CLK	Common clock infrastructure is enabled.
58
	CMA	Contiguous Memory Area support is enabled.
59 60
	DRM	Direct Rendering Management support is enabled.
	DYNAMIC_DEBUG Build in debug messages and enable them at runtime
Linus Torvalds's avatar
Linus Torvalds committed
61 62 63
	EDD	BIOS Enhanced Disk Drive Services (EDD) is enabled
	EFI	EFI Partitioning (GPT) is enabled
	EIDE	EIDE/ATAPI support is enabled.
64
	EVM	Extended Verification Module
Linus Torvalds's avatar
Linus Torvalds committed
65
	FB	The frame buffer device is enabled.
66
	FTRACE	Function tracing enabled.
67
	GCOV	GCOV profiling is enabled.
Linus Torvalds's avatar
Linus Torvalds committed
68 69
	HW	Appropriate hardware is enabled.
	IA-64	IA-64 architecture is enabled.
Mimi Zohar's avatar
Mimi Zohar committed
70
	IMA     Integrity measurement architecture is enabled.
Linus Torvalds's avatar
Linus Torvalds committed
71
	IOSCHED	More than one I/O scheduler is enabled.
72
	IP_PNP	IP DHCP, BOOTP, or RARP is enabled.
Brian Haley's avatar
Brian Haley committed
73
	IPV6	IPv6 support is enabled.
Linus Torvalds's avatar
Linus Torvalds committed
74 75 76
	ISAPNP	ISA PnP code is enabled.
	ISDN	Appropriate ISDN support is enabled.
	JOY	Appropriate joystick support is enabled.
77
	KGDB	Kernel debugger support is enabled.
78
	KVM	Kernel Virtual Machine support is enabled.
79
	LIBATA  Libata driver is enabled
Linus Torvalds's avatar
Linus Torvalds committed
80 81 82 83 84 85
	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.
	MDA	MDA console support is enabled.
86
	MIPS	MIPS architecture is enabled.
Linus Torvalds's avatar
Linus Torvalds committed
87
	MOUSE	Appropriate mouse support is enabled.
88
	MSI	Message Signaled Interrupts (PCI).
89
	MTD	MTD (Memory Technology Device) support is enabled.
Linus Torvalds's avatar
Linus Torvalds committed
90 91 92 93
	NET	Appropriate network support is enabled.
	NUMA	NUMA support is enabled.
	NFS	Appropriate NFS support is enabled.
	OSS	OSS sound support is enabled.
94 95
	PV_OPS	A paravirtualized kernel is enabled.
	PARIDE	The ParIDE (parallel port IDE) subsystem is enabled.
Linus Torvalds's avatar
Linus Torvalds committed
96 97
	PARISC	The PA-RISC architecture is enabled.
	PCI	PCI bus support is enabled.
Randy Dunlap's avatar
Randy Dunlap committed
98
	PCIE	PCI Express support is enabled.
Linus Torvalds's avatar
Linus Torvalds committed
99 100 101 102 103 104 105 106
	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.
107 108
			A lot of drivers have their options described inside
			the Documentation/scsi/ sub-directory.
109
	SECURITY Different security models are enabled.
Linus Torvalds's avatar
Linus Torvalds committed
110
	SELINUX SELinux support is enabled.
111
	APPARMOR AppArmor support is enabled.
Linus Torvalds's avatar
Linus Torvalds committed
112
	SERIAL	Serial support is enabled.
113
	SH	SuperH architecture is enabled.
Linus Torvalds's avatar
Linus Torvalds committed
114 115
	SMP	The kernel is an SMP kernel.
	SPARC	Sparc architecture is enabled.
116 117
	SWSUSP	Software suspend (hibernation) is enabled.
	SUSPEND	System suspend states are enabled.
118
	TPM	TPM drivers are enabled.
Linus Torvalds's avatar
Linus Torvalds committed
119
	TS	Appropriate touchscreen support is enabled.
120
	UMS	USB Mass Storage support is enabled.
Linus Torvalds's avatar
Linus Torvalds committed
121 122 123
	USB	USB support is enabled.
	USBHID	USB Human Interface Device support is enabled.
	V4L	Video For Linux support is enabled.
124
	VMMIO   Driver for memory mapped virtio devices is enabled.
Linus Torvalds's avatar
Linus Torvalds committed
125 126 127 128
	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.
129
	X86-32	X86-32, aka i386 architecture is enabled.
Linus Torvalds's avatar
Linus Torvalds committed
130 131
	X86-64	X86-64 architecture is enabled.
			More X86-64 boot options can be found in
Uwe Hermann's avatar
Uwe Hermann committed
132
			Documentation/x86/x86_64/boot-options.txt .
133
	X86	Either 32-bit or 64-bit x86 (same as X86-32+X86-64)
134
	XEN	Xen support is enabled
Linus Torvalds's avatar
Linus Torvalds committed
135 136 137 138 139 140 141 142 143 144

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
145
need or coordination with <Documentation/x86/boot.txt>.
Linus Torvalds's avatar
Linus Torvalds committed
146

147
There are also arch-specific kernel-parameters not documented here.
Uwe Hermann's avatar
Uwe Hermann committed
148
See for example <Documentation/x86/x86_64/boot-options.txt>.
149

Linus Torvalds's avatar
Linus Torvalds committed
150 151 152 153 154 155
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.

156 157 158 159 160 161
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.

162 163 164 165 166
Finally, the [KMG] suffix is commonly described after a number of kernel
parameter values. These 'K', 'M', and 'G' letters represent the _binary_
multipliers 'Kilo', 'Mega', and 'Giga', equalling 2^10, 2^20, and 2^30
bytes respectively. Such letter suffixes can also be entirely omitted.

167

168
	acpi=		[HW,ACPI,X86,ARM64]
169
			Advanced Configuration and Power Interface
170 171
			Format: { force | off | strict | noirq | rsdt |
				  copy_dsdt }
Linus Torvalds's avatar
Linus Torvalds committed
172 173 174
			force -- enable ACPI if default was off
			off -- disable ACPI if default was on
			noirq -- do not use ACPI for IRQ routing
175
			strict -- Be less tolerant of platforms that are not
Linus Torvalds's avatar
Linus Torvalds committed
176
				strictly ACPI specification compliant.
177
			rsdt -- prefer RSDT over (default) XSDT
178
			copy_dsdt -- copy DSDT to memory
179
			For ARM64, ONLY "acpi=off" or "acpi=force" are available
Linus Torvalds's avatar
Linus Torvalds committed
180

Paul Bolle's avatar
Paul Bolle committed
181
			See also Documentation/power/runtime_pm.txt, pci=noacpi
Linus Torvalds's avatar
Linus Torvalds committed
182

183 184 185 186
	acpi_apic_instance=	[ACPI, IOAPIC]
			Format: <int>
			2: use 2nd APIC table, if available
			1,0: use 1st APIC table
187
			default: 0
188

189 190 191 192 193 194 195
	acpi_backlight=	[HW,ACPI]
			acpi_backlight=vendor
			acpi_backlight=video
			If set to vendor, prefer vendor specific driver
			(e.g. thinkpad_acpi, sony_acpi, etc.) instead
			of the ACPI video.ko driver.

196 197 198 199 200 201
	acpi_force_32bit_fadt_addr
			force FADT to use 32 bit addresses rather than the
			64 bit X_* addresses. Some firmware have broken 64
			bit addresses for force ACPI ignore these and use
			the older legacy 32 bit addresses.

202 203 204 205 206 207 208 209
	acpica_no_return_repair [HW, ACPI]
			Disable AML predefined validation mechanism
			This mechanism can repair the evaluation result to make
			the return objects more ACPI specification compliant.
			This option is useful for developers to identify the
			root cause of an AML interpreter issue when the issue
			has something to do with the repair mechanism.

210 211
	acpi.debug_layer=	[HW,ACPI,ACPI_DEBUG]
	acpi.debug_level=	[HW,ACPI,ACPI_DEBUG]
Linus Torvalds's avatar
Linus Torvalds committed
212
			Format: <int>
213 214 215 216 217 218 219
			CONFIG_ACPI_DEBUG must be enabled to produce any ACPI
			debug output.  Bits in debug_layer correspond to a
			_COMPONENT in an ACPI source file, e.g.,
			    #define _COMPONENT ACPI_PCI_COMPONENT
			Bits in debug_level correspond to a level in
			ACPI_DEBUG_PRINT statements, e.g.,
			    ACPI_DEBUG_PRINT((ACPI_DB_INFO, ...
220 221 222
			The debug_level mask defaults to "info".  See
			Documentation/acpi/debug.txt for more information about
			debug layers and levels.
223

224 225 226 227
			Enable processor driver info messages:
			    acpi.debug_layer=0x20000000
			Enable PCI/PCI interrupt routing info messages:
			    acpi.debug_layer=0x400000
228 229 230 231 232 233 234 235 236
			Enable AML "Debug" output, i.e., stores to the Debug
			object while interpreting AML:
			    acpi.debug_layer=0xffffffff acpi.debug_level=0x2
			Enable all messages related to ACPI hardware:
			    acpi.debug_layer=0x2 acpi.debug_level=0xffffffff

			Some values produce so much output that the system is
			unusable.  The "log_buf_len" parameter may be useful
			if you need to capture more output.
237

238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253
	acpi_enforce_resources=	[ACPI]
			{ strict | lax | no }
			Check for resource conflicts between native drivers
			and ACPI OperationRegions (SystemIO and SystemMemory
			only). IO ports and memory declared in ACPI might be
			used by the ACPI subsystem in arbitrary AML code and
			can interfere with legacy drivers.
			strict (default): access to resources claimed by ACPI
			is denied; legacy drivers trying to access reserved
			resources will fail to bind to device using them.
			lax: access to resources claimed by ACPI is allowed;
			legacy drivers trying to access reserved resources
			will bind successfully but a warning message is logged.
			no: ACPI OperationRegions are not marked as reserved,
			no further checks are performed.

254 255 256 257 258
	acpi_force_table_verification	[HW,ACPI]
			Enable table checksum verification during early stage.
			By default, this is disabled due to x86 early mapping
			size limitation.

259 260 261 262 263 264 265 266 267 268 269 270 271 272 273
	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_isa=	[HW,ACPI] If irq_balance, mark listed IRQs used by ISA
			Format: <irq>,<irq>...

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

274 275
	acpi_no_auto_serialize	[HW,ACPI]
			Disable auto-serialization of AML methods
276 277 278
			AML control methods that contain the opcodes to create
			named objects will be marked as "Serialized" by the
			auto-serialization feature.
279 280
			This feature is enabled by default.
			This option allows to turn off the feature.
281

282 283 284
	acpi_no_memhotplug [ACPI] Disable memory hotplug.  Useful for kdump
			   kernels.

285 286 287 288 289 290 291 292 293
	acpi_no_static_ssdt	[HW,ACPI]
			Disable installation of static SSDTs at early boot time
			By default, SSDTs contained in the RSDT/XSDT will be
			installed automatically and they will appear under
			/sys/firmware/acpi/tables.
			This option turns off this feature.
			Note that specifying this option does not affect
			dynamic table installation which will install SSDT
			tables to /sys/firmware/acpi/tables/dynamic.
294

295 296 297 298
	acpi_rsdp=	[ACPI,EFI,KEXEC]
			Pass the RSDP address to the kernel, mostly used
			on machines running EFI runtime service to boot the
			second kernel for kdump.
299

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

303 304 305 306 307 308
	acpi_rev_override [ACPI] Override the _REV object to return 5 (instead
			of 2 which is mandated by ACPI 6) as the supported ACPI
			specification revision (when using this switch, it may
			be necessary to carry out a cold reboot _twice_ in a
			row to make it take effect on the platform firmware).

309
	acpi_osi=	[HW,ACPI] Modify list of supported OS interface strings
310 311
			acpi_osi="string1"	# add string1
			acpi_osi="!string2"	# remove string2
312
			acpi_osi=!*		# remove all strings
313 314
			acpi_osi=!		# disable all built-in OS vendor
						  strings
315 316
			acpi_osi=		# disable all strings

317 318 319 320 321 322 323
			'acpi_osi=!' can be used in combination with single or
			multiple 'acpi_osi="string1"' to support specific OS
			vendor string(s).  Note that such command can only
			affect the default state of the OS vendor strings, thus
			it cannot affect the default state of the feature group
			strings and the current state of the OS vendor strings,
			specifying it multiple times through kernel command line
324 325 326
			is meaningless.  This command is useful when one do not
			care about the state of the feature group strings which
			should be controlled by the OSPM.
327 328 329 330 331 332 333 334 335 336 337 338 339 340 341
			Examples:
			  1. 'acpi_osi=! acpi_osi="Windows 2000"' is equivalent
			     to 'acpi_osi="Windows 2000" acpi_osi=!', they all
			     can make '_OSI("Windows 2000")' TRUE.

			'acpi_osi=' cannot be used in combination with other
			'acpi_osi=' command lines, the _OSI method will not
			exist in the ACPI namespace.  NOTE that such command can
			only affect the _OSI support state, thus specifying it
			multiple times through kernel command line is also
			meaningless.
			Examples:
			  1. 'acpi_osi=' can make 'CondRefOf(_OSI, Local1)'
			     FALSE.

342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364
			'acpi_osi=!*' can be used in combination with single or
			multiple 'acpi_osi="string1"' to support specific
			string(s).  Note that such command can affect the
			current state of both the OS vendor strings and the
			feature group strings, thus specifying it multiple times
			through kernel command line is meaningful.  But it may
			still not able to affect the final state of a string if
			there are quirks related to this string.  This command
			is useful when one want to control the state of the
			feature group strings to debug BIOS issues related to
			the OSPM features.
			Examples:
			  1. 'acpi_osi="Module Device" acpi_osi=!*' can make
			     '_OSI("Module Device")' FALSE.
			  2. 'acpi_osi=!* acpi_osi="Module Device"' can make
			     '_OSI("Module Device")' TRUE.
			  3. 'acpi_osi=! acpi_osi=!* acpi_osi="Windows 2000"' is
			     equivalent to
			     'acpi_osi=!* acpi_osi=! acpi_osi="Windows 2000"'
			     and
			     'acpi_osi=!* acpi_osi="Windows 2000" acpi_osi=!',
			     they all will make '_OSI("Windows 2000")' TRUE.

365
	acpi_pm_good	[X86]
366 367 368 369
			Override the pmtimer bug detection: force the kernel
			to assume that this machine's pmtimer latches its value
			and always returns good values.

370 371 372 373 374 375 376 377 378
	acpi_sci=	[HW,ACPI] ACPI System Control Interrupt trigger mode
			Format: { level | edge | high | low }

	acpi_skip_timer_override [HW,ACPI]
			Recognize and ignore IRQ0/pin2 Interrupt Override.
			For broken nForce2 BIOS resulting in XT-PIC timer.

	acpi_sleep=	[HW,ACPI] Sleep options
			Format: { s3_bios, s3_mode, s3_beep, s4_nohwsig,
379
				  old_ordering, nonvs, sci_force_enable }
380 381 382 383 384 385 386 387 388 389
			See Documentation/power/video.txt for information on
			s3_bios and s3_mode.
			s3_beep is for debugging; it makes the PC's speaker beep
			as soon as the kernel's real-mode entry point is called.
			s4_nohwsig prevents ACPI hardware signature from being
			used during resume from hibernation.
			old_ordering causes the ACPI 1.0 ordering of the _PTS
			control method, with respect to putting devices into
			low power states, to be enforced (the ACPI 2.0 ordering
			of _PTS is used by default).
390 391
			nonvs prevents the kernel from saving/restoring the
			ACPI NVS memory during suspend/hibernation and resume.
392 393 394
			sci_force_enable causes the kernel to set SCI_EN directly
			on resume from S1/S3 (which is against the ACPI spec,
			but some broken systems don't work without it).
395 396 397 398 399 400 401 402

	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

	add_efi_memmap	[EFI; X86] Include EFI memory map in
			kernel's map of available physical RAM.

403 404 405 406 407 408
	agp=		[AGP]
			{ off | try_unsupported }
			off: disable AGP support
			try_unsupported: try to drive unsupported chipsets
				(may crash computer or cause data corruption)

409 410 411
	ALSA		[HW,ALSA]
			See Documentation/sound/alsa/alsa-parameters.txt

412 413 414 415 416
	alignment=	[KNL,ARM]
			Allow the default userspace alignment fault handler
			behaviour to be specified.  Bit 0 enables warnings,
			bit 1 enables fixups, and bit 2 sends a segfault.

417 418 419 420 421 422 423 424
	align_va_addr=	[X86-64]
			Align virtual addresses by clearing slice [14:12] when
			allocating a VMA at process creation time. This option
			gives you up to 3% performance improvement on AMD F15h
			machines (where it is enabled by default) for a
			CPU-intensive style benchmark, and it can vary highly in
			a microbenchmark depending on workload and compiler.

425 426
			32: only for 32-bit processes
			64: only for 64-bit processes
427 428 429
			on: enable for both 32- and 64-bit processes
			off: disable for both 32- and 64-bit processes

430 431 432 433 434 435 436
	alloc_snapshot	[FTRACE]
			Allocate the ftrace snapshot buffer on boot up when the
			main buffer is allocated. This is handy if debugging
			and you need to use tracing_snapshot() on boot up, and
			do not want to use tracing_snapshot_alloc() as it needs
			to be done where GFP_KERNEL allocations are allowed.

437
	amd_iommu=	[HW,X86-64]
438 439
			Pass parameters to the AMD IOMMU driver in the system.
			Possible values are:
440 441 442 443
			fullflush - enable flushing of IO/TLB entries when
				    they are unmapped. Otherwise they are
				    flushed before they will be reused, which
				    is a lot of faster
444 445
			off	  - do not initialize any AMD IOMMU found in
				    the system
446 447 448 449 450
			force_isolation - Force device isolation for all
					  devices. The IOMMU driver is not
					  allowed anymore to lift isolation
					  requirements as needed. This option
					  does not override iommu=pt
451

452 453 454 455 456 457
	amd_iommu_dump=	[HW,X86-64]
			Enable AMD IOMMU driver option to dump the ACPI table
			for AMD IOMMU. With this option enabled, AMD IOMMU
			driver will print ACPI tables for AMD IOMMU during
			IOMMU initialization.

Linus Torvalds's avatar
Linus Torvalds committed
458 459 460
	amijoy.map=	[HW,JOY] Amiga joystick support
			Map of devices attached to JOY0DAT and JOY1DAT
			Format: <a>,<b>
Paul Bolle's avatar
Paul Bolle committed
461
			See also Documentation/input/joystick.txt
Linus Torvalds's avatar
Linus Torvalds committed
462 463 464 465 466 467

	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>

468 469
	apc=		[HW,SPARC]
			Power management functions (SPARCstation-4/5 + deriv.)
Linus Torvalds's avatar
Linus Torvalds committed
470 471 472 473 474
			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.

475
	apic=		[APIC,X86-32] Advanced Programmable Interrupt Controller
476
			Change the output verbosity whilst booting
Linus Torvalds's avatar
Linus Torvalds committed
477 478 479
			Format: { quiet (default) | verbose | debug }
			Change the amount of debugging information output
			when initialising the APIC and IO-APIC components.
480

481 482 483 484 485 486 487 488 489
	apic_extnmi=	[APIC,X86] External NMI delivery setting
			Format: { bsp (default) | all | none }
			bsp:  External NMI is delivered only to CPU 0
			all:  External NMIs are broadcast to all CPUs as a
			      backup of CPU 0
			none: External NMI is masked for all CPUs. This is
			      useful so that a dump capture kernel won't be
			      shot down by NMI

Brian Haley's avatar
Brian Haley committed
490 491 492
	autoconf=	[IPV6]
			See Documentation/networking/ipv6.txt.

493 494 495 496 497 498 499 500 501
	show_lapic=	[APIC,X86] Advanced Programmable Interrupt Controller
			Limit apic dumping. The parameter defines the maximal
			number of local apics being dumped. Also it is possible
			to set it to "all" by meaning -- no limit here.
			Format: { 1 (default) | 2 | ... | all }.
			The parameter valid if only apic=debug or
			apic=verbose is specified.
			Example: apic=debug show_lapic=all

Linus Torvalds's avatar
Linus Torvalds committed
502
	apm=		[APM] Advanced Power Management
503
			See header of arch/x86/kernel/apm_32.c.
Linus Torvalds's avatar
Linus Torvalds committed
504 505 506 507 508 509 510 511 512 513 514 515 516

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

	ataflop=	[HW,M68k]

	atarimouse=	[HW,MOUSE] Atari Mouse

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

	atkbd.reset=	[HW] Reset keyboard during initialization

517 518
	atkbd.set=	[HW] Select keyboard code set
			Format: <int> (2 = AT (default), 3 = PS/2)
Linus Torvalds's avatar
Linus Torvalds committed
519 520 521 522 523 524

	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))
525 526 527

	atkbd.softrepeat= [HW]
			Use software keyboard repeat
Linus Torvalds's avatar
Linus Torvalds committed
528

529 530
	audit=		[KNL] Enable the audit sub-system
			Format: { "0" | "1" } (0 = disabled, 1 = enabled)
531 532 533 534 535 536 537 538
			0 - kernel audit is disabled and can not be enabled
			    until the next reboot
			unset - kernel audit is initialized but disabled and
			    will be fully enabled by the userspace auditd.
			1 - kernel audit is initialized and partially enabled,
			    storing at most audit_backlog_limit messages in
			    RAM until it is fully enabled by the userspace
			    auditd.
539
			Default: unset
540

541 542 543 544
	audit_backlog_limit= [KNL] Set the audit queue size limit.
			Format: <int> (must be >=0)
			Default: 64

Linus Torvalds's avatar
Linus Torvalds committed
545 546
	baycom_epp=	[HW,AX25]
			Format: <io>,<mode>
547

Linus Torvalds's avatar
Linus Torvalds committed
548 549 550 551
	baycom_par=	[HW,AX25] BayCom Parallel Port AX.25 Modem
			Format: <io>,<mode>
			See header of drivers/net/hamradio/baycom_par.c.

552 553
	baycom_ser_fdx=	[HW,AX25]
			BayCom Serial Port AX.25 Modem (Full Duplex Mode)
Linus Torvalds's avatar
Linus Torvalds committed
554 555 556
			Format: <io>,<irq>,<mode>[,<baud>]
			See header of drivers/net/hamradio/baycom_ser_fdx.c.

557 558
	baycom_ser_hdx=	[HW,AX25]
			BayCom Serial Port AX.25 Modem (Half Duplex Mode)
Linus Torvalds's avatar
Linus Torvalds committed
559 560 561
			Format: <io>,<irq>,<mode>
			See header of drivers/net/hamradio/baycom_ser_hdx.c.

562 563 564 565
	blkdevparts=	Manual partition parsing of block device(s) for
			embedded devices based on command line input.
			See Documentation/block/cmdline-partition.txt

Randy Dunlap's avatar
Randy Dunlap committed
566 567 568 569 570
	boot_delay=	Milliseconds to delay each printk during boot.
			Values larger than 10 seconds (10000) are changed to
			no delay (0).
			Format: integer

571 572
	bootmem_debug	[KNL] Enable bootmem allocator debug messages.

Linus Torvalds's avatar
Linus Torvalds committed
573
	bttv.card=	[HW,V4L] bttv (bt848 + bt878 based grabber cards)
574 575
	bttv.radio=	Most important insmod options are available as
			kernel args too.
Linus Torvalds's avatar
Linus Torvalds committed
576
	bttv.pll=	See Documentation/video4linux/bttv/Insmod-options
Paul Bolle's avatar
Paul Bolle committed
577
	bttv.tuner=
Linus Torvalds's avatar
Linus Torvalds committed
578

579 580 581 582
	bulk_remove=off	[PPC]  This parameter disables the use of the pSeries
			firmware feature for flushing multiple hpte entries
			at a time.

Linus Torvalds's avatar
Linus Torvalds committed
583 584
	c101=		[NET] Moxa C101 synchronous serial card

585
	cachesize=	[BUGS=X86-32] Override level 2 CPU cache size detection.
Linus Torvalds's avatar
Linus Torvalds committed
586 587 588 589 590 591
			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.

592 593 594
	ca_keys=	[KEYS] This parameter identifies a specific key(s) on
			the system trusted keyring to be used for certificate
			trust validation.
595
			format: { id:<keyid> | builtin }
596

597 598 599 600 601 602
	cca=		[MIPS] Override the kernel pages' cache coherency
			algorithm.  Accepted values range from 0 to 7
			inclusive. See arch/mips/include/asm/pgtable-bits.h
			for platform specific values (SB1, Loongson3 and
			others).

603 604
	ccw_timeout_log [S390]
			See Documentation/s390/CommonIO for details.
Linus Torvalds's avatar
Linus Torvalds committed
605

606 607
	cgroup_disable= [KNL] Disable a particular controller
			Format: {name of the controller(s) to disable}
608 609 610 611 612 613 614 615
			The effects of cgroup_disable=foo are:
			- foo isn't auto-mounted if you mount all cgroups in
			  a single hierarchy
			- foo isn't visible as an individually mountable
			  subsystem
			{Currently only "memory" controller deal with this and
			cut the overhead, others just disable the usage. So
			only cgroup_disable=memory is actually worthy}
616

617 618 619 620 621
	cgroup_no_v1=	[KNL] Disable one, multiple, all cgroup controllers in v1
			Format: { controller[,controller...] | "all" }
			Like cgroup_disable, but only applies to cgroup v1;
			the blacklisted controllers remain available in cgroup2.

622 623 624
	cgroup.memory=	[KNL] Pass options to the cgroup memory controller.
			Format: <string>
			nosocket -- Disable socket memory accounting.
625
			nokmem -- Disable kernel memory accounting.
626

Linus Torvalds's avatar
Linus Torvalds committed
627 628 629
	checkreqprot	[SELINUX] Set initial checkreqprot flag value.
			Format: { "0" | "1" }
			See security/selinux/Kconfig help text.
630 631
			0 -- check protection applied by kernel (includes
				any implied execute protection).
Linus Torvalds's avatar
Linus Torvalds committed
632 633
			1 -- check protection requested by application.
			Default value is set via a kernel config option.
634 635 636
			Value can be changed at runtime via
				/selinux/checkreqprot.

637 638
	cio_ignore=	[S390]
			See Documentation/s390/CommonIO for details.
639 640
	clk_ignore_unused
			[CLK]
641 642 643 644 645 646 647 648 649
			Prevents the clock framework from automatically gating
			clocks that have not been explicitly enabled by a Linux
			device driver but are enabled in hardware at reset or
			by the bootloader/firmware. Note that this does not
			force such clocks to be always-on nor does it reserve
			those clocks in any way. This parameter is useful for
			debug and development, but should not be needed on a
			platform with proper driver support.  For more
			information, see Documentation/clk.txt.
650

651
	clock=		[BUGS=X86-32, HW] gettimeofday clocksource override.
652
			[Deprecated]
653
			Forces specified clocksource (if available) to be used
654
			when calculating gettimeofday(). If specified
655
			clocksource is not available, it defaults to PIT.
Linus Torvalds's avatar
Linus Torvalds committed
656 657
			Format: { pit | tsc | cyclone | pmtmr }

658
	clocksource=	Override the default clocksource
Randy Dunlap's avatar
Randy Dunlap committed
659 660 661 662 663 664 665 666 667 668
			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
669
			[X86-32] pit,hpet,tsc;
Randy Dunlap's avatar
Randy Dunlap committed
670 671 672 673 674 675 676 677
				scx200_hrt on Geode; cyclone on IBM x440
			[MIPS] MIPS
			[PARISC] cr16
			[S390] tod
			[SH] SuperH
			[SPARC64] tick
			[X86-64] hpet,tsc

678 679
	clearcpuid=BITNUM [X86]
			Disable CPUID feature X for the kernel. See
680
			arch/x86/include/asm/cpufeatures.h for the valid bit
681
			numbers. Note the Linux specific bits are not necessarily
682 683 684 685 686 687 688 689 690
			stable over kernel options, but the vendor specific
			ones should be.
			Also note that user programs calling CPUID directly
			or using the feature without checking anything
			will still see it. This just prevents it from
			being used by the kernel or shown in /proc/cpuinfo.
			Also note the kernel might malfunction if you disable
			some critical bits.

691 692 693 694 695
	cma=nn[MG]@[start[MG][-end[MG]]]
			[ARM,X86,KNL]
			Sets the size of kernel global memory area for
			contiguous memory allocations and optionally the
			placement constraint by the physical address range of
Jean Delvare's avatar
Jean Delvare committed
696 697
			memory allocations. A value of 0 disables CMA
			altogether. For more information, see
698 699
			include/linux/dma-contiguous.h

700 701 702 703 704 705 706
	cmo_free_hint=	[PPC] Format: { yes | no }
			Specify whether pages are marked as being inactive
			when they are freed.  This is used in CMO environments
			to determine OS memory pressure for page stealing by
			a hypervisor.
			Default: yes

707 708
	coherent_pool=nn[KMG]	[ARM,KNL]
			Sets the size of memory pool for coherent, atomic dma
709
			allocations, by default set to 256K.
710

711
	code_bytes	[X86] How many bytes of object code to print
712
			in an oops report.
713 714 715
			Range: 0 - 8192
			Default: 64

Linus Torvalds's avatar
Linus Torvalds committed
716
	com20020=	[HW,NET] ARCnet - COM20020 chipset
717 718
			Format:
			<io>[,<irq>[,<nodeID>[,<backplane>[,<ckp>[,<timeout>]]]]]
Linus Torvalds's avatar
Linus Torvalds committed
719 720 721 722

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

723 724
	com90xx=	[HW,NET]
			ARCnet - COM90xx chipset (memory-mapped buffers)
Linus Torvalds's avatar
Linus Torvalds committed
725 726 727 728
			Format: <io>[,<irq>[,<memstart>]]

	condev=		[HW,S390] console device
	conmode=
729

Linus Torvalds's avatar
Linus Torvalds committed
730 731 732 733 734
	console=	[KNL] Output console device and options.

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

		ttyS<n>[,options]
735
		ttyUSB0[,options]
Linus Torvalds's avatar
Linus Torvalds committed
736
			Use the specified serial port.  The options are of
737 738 739 740 741 742 743 744 745
			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.
Linus Torvalds's avatar
Linus Torvalds committed
746

747 748
		uart[8250],io,<addr>[,options]
		uart[8250],mmio,<addr>[,options]
749
		uart[8250],mmio16,<addr>[,options]
750 751
		uart[8250],mmio32,<addr>[,options]
		uart[8250],0x<addr>[,options]
Linus Torvalds's avatar
Linus Torvalds committed
752 753
			Start an early, polled-mode console on the 8250/16550
			UART at the specified I/O port or MMIO address,
754 755
			switching to the matching ttyS device later.
			MMIO inter-register address stride is either 8-bit
756 757 758 759
			(mmio), 16-bit (mmio16), or 32-bit (mmio32).
			If none of [io|mmio|mmio16|mmio32], <addr> is assumed
			to be equivalent to 'mmio'. 'options' are specified in
			the same format described for ttyS above; if unspecified,
760 761
			the h/w is not re-initialized.

762 763
		hvc<n>	Use the hypervisor console device <n>. This is for
			both Xen and PowerPC hypervisors.
Linus Torvalds's avatar
Linus Torvalds committed
764

765 766 767 768 769
                If the device connected to the port is not a TTY but a braille
                device, prepend "brl," before the device type, for instance
			console=brl,ttyS0
		For now, only VisioBraille is supported.

770 771 772 773
	consoleblank=	[KNL] The console blank (screen saver) timeout in
			seconds. Defaults to 10*60 = 10mins. A value of 0
			disables the blank timer.

774 775 776 777 778
	coredump_filter=
			[KNL] Change the default value for
			/proc/<pid>/coredump_filter.
			See also Documentation/filesystems/proc.txt.

779 780 781
	cpuidle.off=1	[CPU_IDLE]
			disable the cpuidle sub-system

782 783 784 785 786 787
	cpu_init_udelay=N
			[X86] Delay for N microsec between assert and de-assert
			of APIC INIT to start processors.  This delay occurs
			on every CPU online, such as boot, and resume from suspend.
			Default: 10000

Linus Torvalds's avatar
Linus Torvalds committed
788
	cpcihp_generic=	[HW,PCI] Generic port I/O CompactPCI driver
789 790
			Format:
			<first_slot>,<last_slot>,<port>,<enum_bit>[,<debug>]
Linus Torvalds's avatar
Linus Torvalds committed
791

792 793 794 795 796 797 798
	crashkernel=size[KMG][@offset[KMG]]
			[KNL] Using kexec, Linux can switch to a 'crash kernel'
			upon panic. This parameter reserves the physical
			memory region [offset, offset + size] for that kernel
			image. If '@offset' is omitted, then a suitable offset
			is selected automatically. Check
			Documentation/kdump/kdump.txt for further details.
799

800 801 802 803 804
	crashkernel=range1:size1[,range2:size2,...][@offset]
			[KNL] Same as above, but depends on the memory
			in the running system. The syntax of range is
			start-[end] where start and end are both
			a memory unit (amount[KMG]). See also
805
			Documentation/kdump/kdump.txt for an example.
806

807
	crashkernel=size[KMG],high
808 809 810 811 812 813
			[KNL, x86_64] range could be above 4G. Allow kernel
			to allocate physical memory region from top, so could
			be above 4G if system have more than 4G ram installed.
			Otherwise memory region will be allocated below 4G, if
			available.
			It will be ignored if crashkernel=X is specified.
814 815 816
	crashkernel=size[KMG],low
			[KNL, x86_64] range under 4G. When crashkernel=X,high
			is passed, kernel could allocate physical memory region
817 818
			above 4G, that cause second kernel crash on system
			that require some amount of low memory, e.g. swiotlb
819 820 821 822
			requires at least 64M+32K low memory, also enough extra
			low memory is needed to make sure DMA buffers for 32-bit
			devices won't run out. Kernel would try to allocate at
			at least 256M below 4G automatically.
823 824 825
			This one let user to specify own low range under 4G
			for second kernel instead.
			0: to disable low allocation.
826
			It will be ignored when crashkernel=X,high is not used
827
			or memory reserved is below 4G.
828

Linus Torvalds's avatar
Linus Torvalds committed
829 830 831 832 833
	cs89x0_dma=	[HW,NET]
			Format: <dma>

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

	dasd=		[HW,NET]
Linus Torvalds's avatar
Linus Torvalds committed
836 837 838 839 840 841 842
			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

843 844
	ddebug_query=   [KNL,DYNAMIC_DEBUG] Enable debug messages at early boot
			time. See Documentation/dynamic-debug-howto.txt for
845
			details.  Deprecated, see dyndbg.
846

Linus Torvalds's avatar
Linus Torvalds committed
847 848
	debug		[KNL] Enable kernel debugging (events log level).

849 850 851 852 853 854 855 856 857
	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.

858 859
	debug_objects	[KNL] Enable object debugging

860 861 862
	no_debug_objects
			[KNL] Disable object debugging

863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881
	debug_guardpage_minorder=
			[KNL] When CONFIG_DEBUG_PAGEALLOC is set, this
			parameter allows control of the order of pages that will
			be intentionally kept free (and hence protected) by the
			buddy allocator. Bigger value increase the probability
			of catching random memory corruption, but reduce the
			amount of memory for normal system use. The maximum
			possible value is MAX_ORDER/2.  Setting this parameter
			to 1 or 2 should be enough to identify most random
			memory corruption problems caused by bugs in kernel or
			driver code when a CPU writes to (or reads from) a
			random memory location. Note that there exists a class
			of memory corruptions problems caused by buggy H/W or
			F/W or by drivers badly programing DMA (basically when
			memory is written at bus level and the CPU MMU is
			bypassed) which are not detectable by
			CONFIG_DEBUG_PAGEALLOC, hence this option will not help
			tracking down these problems.

882 883 884 885 886 887 888 889 890
	debug_pagealloc=
			[KNL] When CONFIG_DEBUG_PAGEALLOC is set, this
			parameter enables the feature at boot time. In
			default, it is disabled. We can avoid allocating huge
			chunk of memory for debug pagealloc if we don't enable
			it at boot time and the system will work mostly same
			with the kernel built without CONFIG_DEBUG_PAGEALLOC.
			on: enable the feature

891 892
	debugpat	[X86] Enable PAT debugging

893
	decnet.addr=	[HW,NET]
Linus Torvalds's avatar
Linus Torvalds committed
894 895 896
			Format: <area>[,<node>]
			See also Documentation/networking/decnet.txt.

897 898 899 900 901 902 903
	default_hugepagesz=
			[same as hugepagesz=] The size of the default
			HugeTLB page size. This is the size represented by
			the legacy /proc/ hugepages APIs, used for SHM, and
			default size when mounting hugetlbfs filesystems.
			Defaults to the default architecture's huge page size
			if not specified.
904

Linus Torvalds's avatar
Linus Torvalds committed
905 906
	dhash_entries=	[KNL]
			Set number of hash buckets for dentry cache.
907

Brian Haley's avatar
Brian Haley committed
908 909 910
	disable=	[IPV6]
			See Documentation/networking/ipv6.txt.

911 912 913 914 915 916 917 918 919
	disable_cpu_apicid= [X86,APIC,SMP]
			Format: <int>
			The number of initial APIC ID for the
			corresponding CPU to be disabled at boot,
			mostly used for the kdump 2nd kernel to
			disable BSP to wake up multiple CPUs without
			causing system reset or hang due to sending
			INIT from AP to BSP.

920 921 922 923
	disable_ddw     [PPC/PSERIES]
			Disable Dynamic DMA Window support. Use this if
			to workaround buggy firmware.

Brian Haley's avatar
Brian Haley committed
924 925 926
	disable_ipv6=	[IPV6]
			See Documentation/networking/ipv6.txt.

927 928 929
	disable_mtrr_cleanup [X86]
			The kernel tries to adjust MTRR layout from continuous
			to discrete, to make X server driver able to add WB
930
			entry later. This parameter disables that.
931

932
	disable_mtrr_trim [X86, Intel and AMD only]
933 934 935 936 937
			By default the kernel will trim any uncacheable
			memory out of your available memory pool based on
			MTRR settings.  This parameter disables that behavior,
			possibly causing your machine to run very slowly.

938
	disable_timer_pin_1 [X86]
939 940 941
			Disable PIN 1 of APIC timer
			Can be useful to work around chipset bugs.

942 943
	dis_ucode_ldr	[X86] Disable the microcode loader.

944 945 946 947 948 949 950 951 952 953
	dma_debug=off	If the kernel is compiled with DMA_API_DEBUG support,
			this option disables the debugging code at boot.

	dma_debug_entries=<number>
			This option allows to tune the number of preallocated
			entries for DMA-API debugging code. One entry is
			required per DMA-API allocation. Use this if the
			DMA-API debugging code disables itself because the
			architectural default is too low.

954 955 956 957 958 959 960
	dma_debug_driver=<driver_name>
			With this option the DMA-API debugging driver
			filter feature can be enabled at boot time. Just
			pass the driver to filter for as the parameter.
			The filter can be disabled or changed to another
			driver later using sysfs.

961 962 963 964 965
	drm_kms_helper.edid_firmware=[<connector>:]<file>[,[<connector>:]<file>]
			Broken monitors, graphic adapters, KVMs and EDIDless
			panels may send no or incorrect EDID data sets.
			This parameter allows to specify an EDID data sets
			in the /lib/firmware directory that are used instead.
966 967 968 969 970 971 972 973
			Generic built-in EDID data sets are used, if one of
			edid/1024x768.bin, edid/1280x1024.bin,
			edid/1680x1050.bin, or edid/1920x1080.bin is given
			and no file with the same name exists. Details and
			instructions how to build your own EDID data are
			available in Documentation/EDID/HOWTO.txt. An EDID
			data set will only be used for a particular connector,
			if its name and a colon are prepended to the EDID
974 975 976 977
			name. Each connector may use a unique EDID data
			set by separating the files with a comma.  An EDID
			data set with no connector name will be used for
			any connectors not explicitly specified.
978

Linus Torvalds's avatar
Linus Torvalds committed
979 980
	dscc4.setup=	[NET]

981 982 983 984 985
	dyndbg[="val"]		[KNL,DYNAMIC_DEBUG]
	module.dyndbg[="val"]
			Enable debug messages at boot time.  See
			Documentation/dynamic-debug-howto.txt for details.

986 987 988 989
	nompx		[X86] Disables Intel Memory Protection Extensions.
			See Documentation/x86/intel_mpx.txt for more
			information about the feature.

990 991 992
	nopku		[X86] Disable Memory Protection Keys CPU feature found
			in some Intel CPUs.

993 994 995 996 997 998
	eagerfpu=	[X86]
			on	enable eager fpu restore
			off	disable eager fpu restore
			auto	selects the default scheme, which automatically
				enables eagerfpu restore for xsaveopt.

999 1000 1001
	module.async_probe [KNL]
			Enable asynchronous probe on this module.

1002 1003 1004 1005 1006
	early_ioremap_debug [KNL]
			Enable debug messages in early_ioremap support. This
			is useful for tracking down temporary early mappings
			which are not unmapped.

1007
	earlycon=	[KNL] Output early console device and options.
1008

1009 1010 1011 1012
			When used with no options, the early console is
			determined by the stdout-path property in device
			tree's chosen node.

1013 1014 1015 1016 1017 1018
		cdns,<addr>
			Start an early, polled-mode console on a cadence serial
			port at the specified address. The cadence serial port
			must already be setup and configured. Options are not
			yet supported.

1019 1020
		uart[8250],io,<addr>[,options]
		uart[8250],mmio,<addr>[,options]
1021
		uart[8250],mmio32,<addr>[,options]
1022
		uart[8250],mmio32be,<addr>[,options]
1023
		uart[8250],0x<addr>[,options]
1024 1025
			Start an early, polled-mode console on the 8250/16550
			UART at the specified I/O port or MMIO address.
1026
			MMIO inter-register address stride is either 8-bit
1027 1028 1029 1030
			(mmio) or 32-bit (mmio32 or mmio32be).
			If none of [io|mmio|mmio32|mmio32be], <addr> is assumed
			to be equivalent to 'mmio'. 'options' are specified
			in the same format described for "console=ttyS<n>"; if
1031
			unspecified, the h/w is not initialized.
1032

1033
		pl011,<addr>
1034
		pl011,mmio32,<addr>
1035 1036 1037
			Start an early, polled-mode console on a pl011 serial
			port at the specified address. The pl011 serial port
			must already be setup and configured. Options are not
1038 1039 1040
			yet supported.  If 'mmio32' is specified, then only
			the driver will use only 32-bit accessors to read/write
			the device registers.
1041

1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053
		msm_serial,<addr>
			Start an early, polled-mode console on an msm serial
			port at the specified address. The serial port
			must already be setup and configured. Options are not
			yet supported.

		msm_serial_dm,<addr>
			Start an early, polled-mode console on an msm serial
			dm port at the specified address. The serial port
			must already be setup and configured. Options are not
			yet supported.

1054 1055
		smh	Use ARM semihosting calls for early console.

1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067
		s3c2410,<addr>
		s3c2412,<addr>
		s3c2440,<addr>
		s3c6400,<addr>
		s5pv210,<addr>
		exynos4210,<addr>
			Use early console provided by serial driver available
			on Samsung SoCs, requires selecting proper type and
			a correct base address of the selected UART port. The
			serial port must already be setup and configured.
			Options are not yet supported.

1068 1069 1070 1071 1072 1073 1074
		lpuart,<addr>
		lpuart32,<addr>
			Use early console provided by Freescale LP UART driver
			found on Freescale Vybrid and QorIQ LS1021A processors.
			A valid base address must be provided, and the serial
			port must already be setup and configured.

1075 1076 1077 1078 1079 1080
		armada3700_uart,<addr>
			Start an early, polled-mode console on the
			Armada 3700 serial port at the specified
			address. The serial port must already be setup
			and configured. Options are not yet supported.

Finn Thain's avatar
Finn Thain committed
1081
	earlyprintk=	[X86,SH,BLACKFIN,ARM,M68k]
Linus Torvalds's avatar
Linus Torvalds committed
1082
			earlyprintk=vga
1083
			earlyprintk=efi
1084
			earlyprintk=xen
Linus Torvalds's avatar
Linus Torvalds committed
1085
			earlyprintk=serial[,ttySn[,baudrate]]
1086
			earlyprintk=serial[,0x...[,baudrate]]
1087
			earlyprintk=ttySn[,baudrate]
1088
			earlyprintk=dbgp[debugController#]
1089
			earlyprintk=pciserial,bus:device.function[,baudrate]
Linus Torvalds's avatar
Linus Torvalds committed
1090

1091 1092 1093 1094
			earlyprintk is useful when the kernel crashes before
			the normal console is initialized. It is not enabled by
			default because it has some cosmetic problems.

1095
			Append ",keep" to not disable it when the real console
Linus Torvalds's avatar
Linus Torvalds committed
1096 1097
			takes over.

1098 1099
			Only one of vga, efi, serial, or usb debug port can
			be used at a time.
Linus Torvalds's avatar
Linus Torvalds committed
1100

1101 1102 1103 1104 1105 1106 1107 1108
			Currently only ttyS0 and ttyS1 may be specified by
			name.  Other I/O ports may be explicitly specified
			on some architectures (x86 and arm at least) by
			replacing ttySn with an I/O port address, like this:
				earlyprintk=serial,0x1008,115200
			You can find the port for a given device in
			/proc/tty/driver/serial:
				2: uart:ST16650V2 port:00001008 irq:18 ...
Linus Torvalds's avatar
Linus Torvalds committed
1109 1110 1111 1112

			Interaction with the standard serial driver is not
			very good.

1113 1114
			The VGA and EFI output is eventually overwritten by
			the real console.
Linus Torvalds's avatar
Linus Torvalds committed
1115

1116 1117
			The xen output can only be used by Xen PV guests.

1118 1119 1120 1121 1122 1123 1124 1125
	edac_report=	[HW,EDAC] Control how to report EDAC event
			Format: {"on" | "off" | "force"}
			on: enable EDAC to report H/W event. May be overridden
			by other higher priority error reporting module.
			off: disable H/W event reporting through EDAC.
			force: enforce the use of EDAC to report H/W event.
			default: on.

1126 1127 1128
	ekgdboc=	[X86,KGDB] Allow early kernel console debugging
			ekgdboc=kbd

Lucas De Marchi's avatar
Lucas De Marchi committed
1129
			This is designed to be used in conjunction with
1130 1131
			the boot argument: earlyprintk=vga

Linus Torvalds's avatar
Linus Torvalds committed
1132
	edd=		[EDD]
1133
			Format: {"off" | "on" | "skip[mbr]"}
Linus Torvalds's avatar
Linus Torvalds committed
1134

1135
	efi=		[EFI]
1136
			Format: { "old_map", "nochunk", "noruntime", "debug" }
1137 1138 1139
			old_map [X86-64]: switch to the old ioremap-based EFI
			runtime services mapping. 32-bit still uses this one by
			default.
1140 1141 1142
			nochunk: disable reading files in "chunks" in the EFI
			boot stub, as chunking can cause problems with some
			firmware implementations.
1143
			noruntime : disable EFI runtime services support
1144
			debug: enable misc debug output
1145

1146 1147 1148 1149 1150 1151
	efi_no_storage_paranoia [EFI; X86]
			Using this parameter you can use more than 50% of
			your efi variable storage. Use this parameter only if
			you are really sure that your UEFI does sane gc and
			fulfills the spec otherwise your board may brick.

1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166
	efi_fake_mem=	nn[KMG]@ss[KMG]:aa[,nn[KMG]@ss[KMG]:aa,..] [EFI; X86]
			Add arbitrary attribute to specific memory range by
			updating original EFI memory map.
			Region of memory which aa attribute is added to is
			from ss to ss+nn.
			If efi_fake_mem=2G@4G:0x10000,2G@0x10a0000000:0x10000
			is specified, EFI_MEMORY_MORE_RELIABLE(0x10000)
			attribute is added to range 0x100000000-0x180000000 and
			0x10a0000000-0x1120000000.

			Using this parameter you can do debugging of EFI memmap
			related feature. For example, you can do debugging of
			Address Range Mirroring feature even if your box
			doesn't support it.

Linus Torvalds's avatar
Linus Torvalds committed
1167 1168 1169
	eisa_irq_edge=	[PARISC,HW]
			See header of drivers/parisc/eisa.c.

1170
	elanfreq=	[X86-32]
Linus Torvalds's avatar
Linus Torvalds committed
1171
			See comment before function elanfreq_setup() in