kernel-parameters.txt 155 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
	X86_UV	SGI UV support is enabled.
135
	XEN	Xen support is enabled
Linus Torvalds's avatar
Linus Torvalds committed
136 137 138 139 140 141 142 143 144 145

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

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

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

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

163 164 165 166 167
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.

168

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

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

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

192 193 194 195 196 197 198
	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.

199 200 201 202 203 204
	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.

205 206 207 208 209 210 211 212
	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.

213 214
	acpi.debug_layer=	[HW,ACPI,ACPI_DEBUG]
	acpi.debug_level=	[HW,ACPI,ACPI_DEBUG]
Linus Torvalds's avatar
Linus Torvalds committed
215
			Format: <int>
216 217 218 219 220 221 222
			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, ...
223 224 225
			The debug_level mask defaults to "info".  See
			Documentation/acpi/debug.txt for more information about
			debug layers and levels.
226

227 228 229 230
			Enable processor driver info messages:
			    acpi.debug_layer=0x20000000
			Enable PCI/PCI interrupt routing info messages:
			    acpi.debug_layer=0x400000
231 232 233 234 235 236 237 238 239
			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.
240

241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256
	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.

257 258 259 260 261
	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.

262 263 264 265 266 267 268 269 270 271 272 273 274 275 276
	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>...

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

285 286 287
	acpi_no_memhotplug [ACPI] Disable memory hotplug.  Useful for kdump
			   kernels.

288 289 290 291 292 293 294 295 296
	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.
297

298 299 300 301
	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.
302

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

306 307 308 309 310 311
	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).

312
	acpi_osi=	[HW,ACPI] Modify list of supported OS interface strings
313 314
			acpi_osi="string1"	# add string1
			acpi_osi="!string2"	# remove string2
315
			acpi_osi=!*		# remove all strings
316 317
			acpi_osi=!		# disable all built-in OS vendor
						  strings
318 319
			acpi_osi=!!		# enable all built-in OS vendor
						  strings
320 321
			acpi_osi=		# disable all strings

322 323 324 325 326 327 328
			'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
329 330 331
			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.
332 333 334 335 336 337 338 339 340 341 342 343 344 345 346
			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.

347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369
			'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.

370
	acpi_pm_good	[X86]
371 372 373 374
			Override the pmtimer bug detection: force the kernel
			to assume that this machine's pmtimer latches its value
			and always returns good values.

375 376 377 378 379 380 381 382 383
	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,
384
				  old_ordering, nonvs, sci_force_enable }
385 386 387 388 389 390 391 392 393 394
			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).
395 396
			nonvs prevents the kernel from saving/restoring the
			ACPI NVS memory during suspend/hibernation and resume.
397 398 399
			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).
400 401 402 403 404 405 406 407

	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.

408 409 410 411 412 413
	agp=		[AGP]
			{ off | try_unsupported }
			off: disable AGP support
			try_unsupported: try to drive unsupported chipsets
				(may crash computer or cause data corruption)

414 415 416
	ALSA		[HW,ALSA]
			See Documentation/sound/alsa/alsa-parameters.txt

417 418 419 420 421
	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.

422 423 424 425 426 427 428 429
	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.

430 431
			32: only for 32-bit processes
			64: only for 64-bit processes
432 433 434
			on: enable for both 32- and 64-bit processes
			off: disable for both 32- and 64-bit processes

435 436 437 438 439 440 441
	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.

442
	amd_iommu=	[HW,X86-64]
443 444
			Pass parameters to the AMD IOMMU driver in the system.
			Possible values are:
445 446 447 448
			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
449 450
			off	  - do not initialize any AMD IOMMU found in
				    the system
451 452 453 454 455
			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
456

457 458 459 460 461 462
	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
463 464 465
	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
466
			See also Documentation/input/joystick.txt
Linus Torvalds's avatar
Linus Torvalds committed
467 468 469 470 471 472

	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>

473 474
	apc=		[HW,SPARC]
			Power management functions (SPARCstation-4/5 + deriv.)
Linus Torvalds's avatar
Linus Torvalds committed
475 476 477 478 479
			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.

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

486 487 488 489 490 491 492 493 494
	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
495 496 497
	autoconf=	[IPV6]
			See Documentation/networking/ipv6.txt.

498 499 500 501 502 503 504 505 506
	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
507
	apm=		[APM] Advanced Power Management
508
			See header of arch/x86/kernel/apm_32.c.
Linus Torvalds's avatar
Linus Torvalds committed
509 510 511 512 513 514 515 516 517 518 519 520 521

	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

522 523
	atkbd.set=	[HW] Select keyboard code set
			Format: <int> (2 = AT (default), 3 = PS/2)
Linus Torvalds's avatar
Linus Torvalds committed
524 525 526 527 528 529

	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))
530 531 532

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

534 535
	audit=		[KNL] Enable the audit sub-system
			Format: { "0" | "1" } (0 = disabled, 1 = enabled)
536 537 538 539 540 541 542 543
			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.
544
			Default: unset
545

546 547 548 549
	audit_backlog_limit= [KNL] Set the audit queue size limit.
			Format: <int> (must be >=0)
			Default: 64

550 551 552 553 554 555 556
	bau=		[X86_UV] Enable the BAU on SGI UV.  The default
			behavior is to disable the BAU (i.e. bau=0).
			Format: { "0" | "1" }
			0 - Disable the BAU.
			1 - Enable the BAU.
			unset - Disable the BAU.

Linus Torvalds's avatar
Linus Torvalds committed
557 558
	baycom_epp=	[HW,AX25]
			Format: <io>,<mode>
559

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

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

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

574 575 576 577
	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
578 579 580 581 582
	boot_delay=	Milliseconds to delay each printk during boot.
			Values larger than 10 seconds (10000) are changed to
			no delay (0).
			Format: integer

583 584
	bootmem_debug	[KNL] Enable bootmem allocator debug messages.

Linus Torvalds's avatar
Linus Torvalds committed
585
	bttv.card=	[HW,V4L] bttv (bt848 + bt878 based grabber cards)
586 587
	bttv.radio=	Most important insmod options are available as
			kernel args too.
Linus Torvalds's avatar
Linus Torvalds committed
588
	bttv.pll=	See Documentation/video4linux/bttv/Insmod-options
Paul Bolle's avatar
Paul Bolle committed
589
	bttv.tuner=
Linus Torvalds's avatar
Linus Torvalds committed
590

591 592 593 594
	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
595 596
	c101=		[NET] Moxa C101 synchronous serial card

597
	cachesize=	[BUGS=X86-32] Override level 2 CPU cache size detection.
Linus Torvalds's avatar
Linus Torvalds committed
598 599 600 601 602 603
			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.

604 605 606
	ca_keys=	[KEYS] This parameter identifies a specific key(s) on
			the system trusted keyring to be used for certificate
			trust validation.
607
			format: { id:<keyid> | builtin }
608

609 610 611 612 613 614
	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).

615 616
	ccw_timeout_log [S390]
			See Documentation/s390/CommonIO for details.
Linus Torvalds's avatar
Linus Torvalds committed
617

618 619
	cgroup_disable= [KNL] Disable a particular controller
			Format: {name of the controller(s) to disable}
620 621 622 623 624 625 626 627
			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}
628

629 630 631 632 633
	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.

634 635 636
	cgroup.memory=	[KNL] Pass options to the cgroup memory controller.
			Format: <string>
			nosocket -- Disable socket memory accounting.
637
			nokmem -- Disable kernel memory accounting.
638

Linus Torvalds's avatar
Linus Torvalds committed
639 640 641
	checkreqprot	[SELINUX] Set initial checkreqprot flag value.
			Format: { "0" | "1" }
			See security/selinux/Kconfig help text.
642 643
			0 -- check protection applied by kernel (includes
				any implied execute protection).
Linus Torvalds's avatar
Linus Torvalds committed
644 645
			1 -- check protection requested by application.
			Default value is set via a kernel config option.
646 647 648
			Value can be changed at runtime via
				/selinux/checkreqprot.

649 650
	cio_ignore=	[S390]
			See Documentation/s390/CommonIO for details.
651 652
	clk_ignore_unused
			[CLK]
653 654 655 656 657 658 659 660 661
			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.
662

663
	clock=		[BUGS=X86-32, HW] gettimeofday clocksource override.
664
			[Deprecated]
665
			Forces specified clocksource (if available) to be used
666
			when calculating gettimeofday(). If specified
667
			clocksource is not available, it defaults to PIT.
Linus Torvalds's avatar
Linus Torvalds committed
668 669
			Format: { pit | tsc | cyclone | pmtmr }

670
	clocksource=	Override the default clocksource
Randy Dunlap's avatar
Randy Dunlap committed
671 672 673 674 675 676 677 678 679 680
			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
681
			[X86-32] pit,hpet,tsc;
Randy Dunlap's avatar
Randy Dunlap committed
682 683 684 685 686 687 688 689
				scx200_hrt on Geode; cyclone on IBM x440
			[MIPS] MIPS
			[PARISC] cr16
			[S390] tod
			[SH] SuperH
			[SPARC64] tick
			[X86-64] hpet,tsc

690 691
	clearcpuid=BITNUM [X86]
			Disable CPUID feature X for the kernel. See
692
			arch/x86/include/asm/cpufeatures.h for the valid bit
693
			numbers. Note the Linux specific bits are not necessarily
694 695 696 697 698 699 700 701 702
			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.

703 704 705 706 707
	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
708 709
			memory allocations. A value of 0 disables CMA
			altogether. For more information, see
710 711
			include/linux/dma-contiguous.h

712 713 714 715 716 717 718
	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

719 720
	coherent_pool=nn[KMG]	[ARM,KNL]
			Sets the size of memory pool for coherent, atomic dma
721
			allocations, by default set to 256K.
722

723
	code_bytes	[X86] How many bytes of object code to print
724
			in an oops report.
725 726 727
			Range: 0 - 8192
			Default: 64

Linus Torvalds's avatar
Linus Torvalds committed
728
	com20020=	[HW,NET] ARCnet - COM20020 chipset
729 730
			Format:
			<io>[,<irq>[,<nodeID>[,<backplane>[,<ckp>[,<timeout>]]]]]
Linus Torvalds's avatar
Linus Torvalds committed
731 732 733 734

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

735 736
	com90xx=	[HW,NET]
			ARCnet - COM90xx chipset (memory-mapped buffers)
Linus Torvalds's avatar
Linus Torvalds committed
737 738 739 740
			Format: <io>[,<irq>[,<memstart>]]

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

Linus Torvalds's avatar
Linus Torvalds committed
742 743 744 745 746
	console=	[KNL] Output console device and options.

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

		ttyS<n>[,options]
747
		ttyUSB0[,options]
Linus Torvalds's avatar
Linus Torvalds committed
748
			Use the specified serial port.  The options are of
749 750 751 752 753 754 755 756 757
			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
758

759 760
		uart[8250],io,<addr>[,options]
		uart[8250],mmio,<addr>[,options]
761
		uart[8250],mmio16,<addr>[,options]
762 763
		uart[8250],mmio32,<addr>[,options]
		uart[8250],0x<addr>[,options]
Linus Torvalds's avatar
Linus Torvalds committed
764 765
			Start an early, polled-mode console on the 8250/16550
			UART at the specified I/O port or MMIO address,
766 767
			switching to the matching ttyS device later.
			MMIO inter-register address stride is either 8-bit
768 769 770 771
			(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,
772 773
			the h/w is not re-initialized.

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

777 778 779 780 781
                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.

782 783 784 785
	consoleblank=	[KNL] The console blank (screen saver) timeout in
			seconds. Defaults to 10*60 = 10mins. A value of 0
			disables the blank timer.

786 787 788 789 790
	coredump_filter=
			[KNL] Change the default value for
			/proc/<pid>/coredump_filter.
			See also Documentation/filesystems/proc.txt.

791 792 793
	cpuidle.off=1	[CPU_IDLE]
			disable the cpuidle sub-system

794 795 796 797 798 799
	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
800
	cpcihp_generic=	[HW,PCI] Generic port I/O CompactPCI driver
801 802
			Format:
			<first_slot>,<last_slot>,<port>,<enum_bit>[,<debug>]
Linus Torvalds's avatar
Linus Torvalds committed
803

804 805 806 807 808 809 810
	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.
811

812 813 814 815 816
	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
817
			Documentation/kdump/kdump.txt for an example.
818

819
	crashkernel=size[KMG],high
820 821 822 823 824 825
			[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.
826 827 828
	crashkernel=size[KMG],low
			[KNL, x86_64] range under 4G. When crashkernel=X,high
			is passed, kernel could allocate physical memory region
829 830
			above 4G, that cause second kernel crash on system
			that require some amount of low memory, e.g. swiotlb
831 832 833 834
			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.
835 836 837
			This one let user to specify own low range under 4G
			for second kernel instead.
			0: to disable low allocation.
838
			It will be ignored when crashkernel=X,high is not used
839
			or memory reserved is below 4G.
840

841 842 843
	cryptomgr.notests
                        [KNL] Disable crypto self-tests

Linus Torvalds's avatar
Linus Torvalds committed
844 845 846 847 848
	cs89x0_dma=	[HW,NET]
			Format: <dma>

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

	dasd=		[HW,NET]
Linus Torvalds's avatar
Linus Torvalds committed
851 852 853 854 855 856 857
			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

858 859
	ddebug_query=   [KNL,DYNAMIC_DEBUG] Enable debug messages at early boot
			time. See Documentation/dynamic-debug-howto.txt for
860
			details.  Deprecated, see dyndbg.
861

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

864 865 866 867 868 869 870 871 872
	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.

873 874
	debug_objects	[KNL] Enable object debugging

875 876 877
	no_debug_objects
			[KNL] Disable object debugging

878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896
	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.

897 898 899 900 901 902 903 904 905
	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

906 907
	debugpat	[X86] Enable PAT debugging

908
	decnet.addr=	[HW,NET]
Linus Torvalds's avatar
Linus Torvalds committed
909 910 911
			Format: <area>[,<node>]
			See also Documentation/networking/decnet.txt.

912 913 914 915 916 917 918
	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.
919

Linus Torvalds's avatar
Linus Torvalds committed
920 921
	dhash_entries=	[KNL]
			Set number of hash buckets for dentry cache.
922

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

926 927 928 929 930 931 932 933 934
	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.

935 936 937 938
	disable_ddw     [PPC/PSERIES]
			Disable Dynamic DMA Window support. Use this if
			to workaround buggy firmware.

Brian Haley's avatar
Brian Haley committed
939 940 941
	disable_ipv6=	[IPV6]
			See Documentation/networking/ipv6.txt.

942 943 944
	disable_mtrr_cleanup [X86]
			The kernel tries to adjust MTRR layout from continuous
			to discrete, to make X server driver able to add WB
945
			entry later. This parameter disables that.
946

947
	disable_mtrr_trim [X86, Intel and AMD only]
948 949 950 951 952
			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.

953
	disable_timer_pin_1 [X86]
954 955 956
			Disable PIN 1 of APIC timer
			Can be useful to work around chipset bugs.

957 958
	dis_ucode_ldr	[X86] Disable the microcode loader.

959 960 961 962 963 964 965 966 967 968
	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.

969 970 971 972 973 974 975
	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.

976 977 978 979 980
	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.
981 982 983 984 985 986 987 988
			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
989 990 991 992
			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.
993

Linus Torvalds's avatar
Linus Torvalds committed
994 995
	dscc4.setup=	[NET]

996 997 998 999 1000
	dyndbg[="val"]		[KNL,DYNAMIC_DEBUG]
	module.dyndbg[="val"]
			Enable debug messages at boot time.  See
			Documentation/dynamic-debug-howto.txt for details.

1001 1002 1003 1004
	nompx		[X86] Disables Intel Memory Protection Extensions.
			See Documentation/x86/intel_mpx.txt for more
			information about the feature.

1005 1006 1007
	nopku		[X86] Disable Memory Protection Keys CPU feature found
			in some Intel CPUs.

1008 1009 1010 1011 1012 1013
	eagerfpu=	[X86]
			on	enable eager fpu restore
			off	disable eager fpu restore
			auto	selects the default scheme, which automatically
				enables eagerfpu restore for xsaveopt.

1014 1015 1016
	module.async_probe [KNL]
			Enable asynchronous probe on this module.

1017 1018 1019 1020 1021
	early_ioremap_debug [KNL]
			Enable debug messages in early_ioremap support. This
			is useful for tracking down temporary early mappings
			which are not unmapped.

1022
	earlycon=	[KNL] Output early console device and options.
1023

1024 1025 1026 1027
			When used with no options, the early console is
			determined by the stdout-path property in device
			tree's chosen node.

1028 1029 1030 1031 1032 1033
		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.

1034 1035
		uart[8250],io,<addr>[,options]
		uart[8250],mmio,<addr>[,options]
1036
		uart[8250],mmio32,<addr>[,options]
1037
		uart[8250],mmio32be,<addr>[,options]
1038
		uart[8250],0x<addr>[,options]
1039 1040
			Start an early, polled-mode console on the 8250/16550
			UART at the specified I/O port or MMIO address.
1041
			MMIO inter-register address stride is either 8-bit
1042 1043 1044 1045
			(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
1046
			unspecified, the h/w is not initialized.
1047

1048
		pl011,<addr>
1049
		pl011,mmio32,<addr>
1050 1051 1052
			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
1053 1054 1055
			yet supported.  If 'mmio32' is specified, then only
			the driver will use only 32-bit accessors to read/write
			the device registers.
1056

1057 1058 1059 1060 1061 1062
		meson,<addr>
			Start an early, polled-mode console on a meson serial
			port at the specified address. The serial port must
			already be setup and configured. Options are not yet
			supported.

1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074
		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.

1075 1076
		smh	Use ARM semihosting calls for early console.

1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088
		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.

1089 1090 1091 1092 1093 1094 1095
		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.

1096 1097 1098 1099 1100 1101
		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
1102
	earlyprintk=	[X86,SH,BLACKFIN,ARM,M68k]
Linus Torvalds's avatar
Linus Torvalds committed
1103
			earlyprintk=vga
1104
			earlyprintk=efi
1105
			earlyprintk=xen
Linus Torvalds's avatar
Linus Torvalds committed
1106
			earlyprintk=serial[,ttySn[,baudrate]]
1107
			earlyprintk=serial[,0x...[,baudrate]]
1108
			earlyprintk=ttySn[,baudrate]
1109
			earlyprintk=dbgp[debugController#]
1110
			earlyprintk=pciserial,bus:device.function[,baudrate]
Linus Torvalds's avatar
Linus Torvalds committed
1111

1112 1113 1114 1115
			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.

1116
			Append ",keep" to not disable it when the real console
Linus Torvalds's avatar
Linus Torvalds committed
1117 1118
			takes over.

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

1122 1123 1124 1125 1126 1127 1128 1129
			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
1130 1131 1132 1133

			Interaction with the standard serial driver is not
			very good.

1134 1135
			The VGA and EFI output is eventually overwritten by
			the real console.
Linus Torvalds's avatar
Linus Torvalds committed
1136

1137 1138
			The xen output can only be used by Xen PV guests.

1139 1140 1141 1142 1143 1144 1145 1146
	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.

1147 1148 1149
	ekgdboc=	[X86,KGDB] Allow early kernel console debugging
			ekgdboc=kbd

Lucas De Marchi's avatar
Lucas De Marchi committed
1150
			This is designed to be used in conjunction with
1151 1152
			the boot argument: earlyprintk=vga

Linus Torvalds's avatar
Linus Torvalds committed
1153
	edd=		[EDD]
1154
			Format: {"off" | "on" | "skip[mbr]"}
Linus Torvalds's avatar
Linus Torvalds committed
1155

1156
	efi=		[EFI]
1157
			Format: { "old_map", "nochunk", "noruntime", "debug" }
1158 1159 1160
			old_map [X86-64]: switch to the old ioremap-based EFI
			runtime services mapping. 32-bit still uses this one by
			default.
1161 1162 1163
			nochunk: disable reading files in "chunks" in the EFI
			boot stub, as chunking can cause problems with some
			firmware implementations.
1164
			noruntime : disable EFI runtime services support