Skip to content
Snippets Groups Projects
kernel-parameters.txt 198 KiB
Newer Older
			Advanced Configuration and Power Interface
			Format: { force | on | off | strict | noirq | rsdt |
Linus Torvalds's avatar
Linus Torvalds committed
			force -- enable ACPI if default was off
			on -- enable ACPI but allow fallback to DT [arm64]
Linus Torvalds's avatar
Linus Torvalds committed
			off -- disable ACPI if default was on
			noirq -- do not use ACPI for IRQ routing
			strict -- Be less tolerant of platforms that are not
Linus Torvalds's avatar
Linus Torvalds committed
				strictly ACPI specification compliant.
			rsdt -- prefer RSDT over (default) XSDT
			copy_dsdt -- copy DSDT to memory
			For ARM64, ONLY "acpi=off", "acpi=on" or "acpi=force"
			are available
Linus Torvalds's avatar
Linus Torvalds committed

			See also Documentation/power/runtime_pm.rst, pci=noacpi
Linus Torvalds's avatar
Linus Torvalds committed

	acpi_apic_instance=	[ACPI, IOAPIC]
			Format: <int>
			2: use 2nd APIC table, if available
			1,0: use 1st APIC table
			default: 0
	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.

	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.

	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.

	acpi.debug_layer=	[HW,ACPI,ACPI_DEBUG]
	acpi.debug_level=	[HW,ACPI,ACPI_DEBUG]
Linus Torvalds's avatar
Linus Torvalds committed
			Format: <int>
			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, ...
			The debug_level mask defaults to "info".  See
			Documentation/firmware-guide/acpi/debug.rst for more information about
			debug layers and levels.
			Enable processor driver info messages:
			    acpi.debug_layer=0x20000000
			Enable PCI/PCI interrupt routing info messages:
			    acpi.debug_layer=0x400000
			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.
	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.

	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.

	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>...

	acpi_mask_gpe=	[HW,ACPI]
			Due to the existence of _Lxx/_Exx, some GPEs triggered
			by unsupported hardware/firmware features can result in
			GPE floodings that cannot be automatically disabled by
			the GPE dispatcher.
			This facility can be used to prevent such uncontrolled
			GPE floodings.
	acpi_no_auto_serialize	[HW,ACPI]
			Disable auto-serialization of AML methods
			AML control methods that contain the opcodes to create
			named objects will be marked as "Serialized" by the
			auto-serialization feature.
			This feature is enabled by default.
			This option allows to turn off the feature.
	acpi_no_memhotplug [ACPI] Disable memory hotplug.  Useful for kdump
			   kernels.

	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.
	acpi_no_watchdog	[HW,ACPI,WDT]
			Ignore the ACPI-based watchdog interface (WDAT) and let
			a native driver control the watchdog device instead.

	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.
	acpi_os_name=	[HW,ACPI] Tell ACPI BIOS the name of the OS
			Format: To spoof as Windows 98: ="Microsoft Windows"

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

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

			'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
			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.
			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.

			'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.

			Override the pmtimer bug detection: force the kernel
			to assume that this machine's pmtimer latches its value
			and always returns good values.

	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,
				  old_ordering, nonvs, sci_force_enable, nobl }
			See Documentation/power/video.rst 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).
			nonvs prevents the kernel from saving/restoring the
			ACPI NVS memory during suspend/hibernation and resume.
			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).
			nobl causes the internal blacklist of systems known to
			behave incorrectly in some ways with respect to system
			suspend and resume to be ignored (use wisely).

	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.

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

			See Documentation/sound/alsa-configuration.rst
	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.

	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.

			32: only for 32-bit processes
			64: only for 64-bit processes
			on: enable for both 32- and 64-bit processes
			off: disable for both 32- and 64-bit processes

	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.

	amd_iommu=	[HW,X86-64]
			Pass parameters to the AMD IOMMU driver in the system.
			Possible values are:
			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
			off	  - do not initialize any AMD IOMMU found in
				    the system
			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
	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.

	amd_iommu_intr=	[HW,X86-64]
			Specifies one of the following AMD IOMMU interrupt
			remapping modes:
			legacy     - Use legacy interrupt remapping mode.
			vapic      - Use virtual APIC mode, which allows IOMMU
			             to inject interrupts directly into guest.
			             This mode requires kvm-amd.avic=1.
			             (Default when IOMMU HW support is present.)

Linus Torvalds's avatar
Linus Torvalds committed
	amijoy.map=	[HW,JOY] Amiga joystick support
			Map of devices attached to JOY0DAT and JOY1DAT
			Format: <a>,<b>
			See also Documentation/input/joydev/joystick.rst
Linus Torvalds's avatar
Linus Torvalds committed

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

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

	apic=		[APIC,X86] Advanced Programmable Interrupt Controller
			Change the output verbosity while booting
Linus Torvalds's avatar
Linus Torvalds committed
			Format: { quiet (default) | verbose | debug }
			Change the amount of debugging information output
			when initialising the APIC and IO-APIC components.
			For X86-32, this can also be used to specify an APIC
			driver name.
			Format: apic=driver_name
			Examples: apic=bigsmp
	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

	autoconf=	[IPV6]
			See Documentation/networking/ipv6.txt.

	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
	apm=		[APM] Advanced Power Management
			See header of arch/x86/kernel/apm_32.c.
Linus Torvalds's avatar
Linus Torvalds committed

	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

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

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

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

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

	audit=		[KNL] Enable the audit sub-system
			Format: { "0" | "1" | "off" | "on" }
			0 | off - 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 | on - 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.
	audit_backlog_limit= [KNL] Set the audit queue size limit.
			Format: <int> (must be >=0)
			Default: 64

	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
	baycom_epp=	[HW,AX25]
			Format: <io>,<mode>
Linus Torvalds's avatar
Linus Torvalds committed
	baycom_par=	[HW,AX25] BayCom Parallel Port AX.25 Modem
			Format: <io>,<mode>
			See header of drivers/net/hamradio/baycom_par.c.

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

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

	blkdevparts=	Manual partition parsing of block device(s) for
			embedded devices based on command line input.
			See Documentation/block/cmdline-partition.rst
	boot_delay=	Milliseconds to delay each printk during boot.
			Values larger than 10 seconds (10000) are changed to
			no delay (0).
			Format: integer

	bootmem_debug	[KNL] Enable bootmem allocator debug messages.

	bert_disable	[ACPI]
			Disable BERT OS support on buggy BIOSes.

Linus Torvalds's avatar
Linus Torvalds committed
	bttv.card=	[HW,V4L] bttv (bt848 + bt878 based grabber cards)
	bttv.radio=	Most important insmod options are available as
			kernel args too.
	bttv.pll=	See Documentation/media/v4l-drivers/bttv.rst
Paul Bolle's avatar
Paul Bolle committed
	bttv.tuner=
Linus Torvalds's avatar
Linus Torvalds committed

	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
	c101=		[NET] Moxa C101 synchronous serial card

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

	carrier_timeout=
			[NET] Specifies amount of time (in seconds) that
			the kernel should wait for a network carrier. By default
			it waits 120 seconds.

	ca_keys=	[KEYS] This parameter identifies a specific key(s) on
			the system trusted keyring to be used for certificate
			trust validation.
			format: { id:<keyid> | builtin }
	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).

	ccw_timeout_log	[S390]
			See Documentation/s390/common_io.rst for details.
Linus Torvalds's avatar
Linus Torvalds committed

	cgroup_disable=	[KNL] Disable a particular controller
			Format: {name of the controller(s) to disable}
			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}
	cgroup_no_v1=	[KNL] Disable cgroup controllers and named hierarchies in v1
			Format: { { controller | "all" | "named" }
			          [,{ controller | "all" | "named" }...] }
			Like cgroup_disable, but only applies to cgroup v1;
			the blacklisted controllers remain available in cgroup2.
			"all" blacklists all controllers and "named" disables
			named mounts. Specifying both "all" and "named" disables
			all v1 hierarchies.
	cgroup.memory=	[KNL] Pass options to the cgroup memory controller.
			Format: <string>
			nosocket -- Disable socket memory accounting.
			nokmem -- Disable kernel memory accounting.
Linus Torvalds's avatar
Linus Torvalds committed
	checkreqprot	[SELINUX] Set initial checkreqprot flag value.
			Format: { "0" | "1" }
			See security/selinux/Kconfig help text.
			0 -- check protection applied by kernel (includes
				any implied execute protection).
Linus Torvalds's avatar
Linus Torvalds committed
			1 -- check protection requested by application.
			Default value is set via a kernel config option.
			Value can be changed at runtime via
				/selinux/checkreqprot.

			See Documentation/s390/common_io.rst for details.
			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/driver-api/clk.rst.
	clock=		[BUGS=X86-32, HW] gettimeofday clocksource override.
			[Deprecated]
			Forces specified clocksource (if available) to be used
			when calculating gettimeofday(). If specified
			clocksource is not available, it defaults to PIT.
Linus Torvalds's avatar
Linus Torvalds committed
			Format: { pit | tsc | cyclone | pmtmr }

	clocksource=	Override the default clocksource
Randy Dunlap's avatar
Randy Dunlap committed
			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
			[X86-32] pit,hpet,tsc;
Randy Dunlap's avatar
Randy Dunlap committed
				scx200_hrt on Geode; cyclone on IBM x440
			[MIPS] MIPS
			[PARISC] cr16
			[S390] tod
			[SH] SuperH
			[SPARC64] tick
			[X86-64] hpet,tsc

	clocksource.arm_arch_timer.evtstrm=
			[ARM,ARM64]
			Format: <bool>
			Enable/disable the eventstream feature of the ARM
			architected timer so that code using WFE-based polling
			loops can be debugged more effectively on production
			systems.

	clocksource.max_cswd_read_retries= [KNL]
			Number of clocksource_watchdog() retries due to
			external delays before the clock will be marked
			unstable.  Defaults to three retries, that is,
			four attempts to read the clock under test.

	clearcpuid=BITNUM[,BITNUM...] [X86]
			Disable CPUID feature X for the kernel. See
			arch/x86/include/asm/cpufeatures.h for the valid bit
			numbers. Note the Linux specific bits are not necessarily
			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.

	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
			memory allocations. A value of 0 disables CMA
			altogether. For more information, see
			include/linux/dma-contiguous.h

	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

	coherent_pool=nn[KMG]	[ARM,KNL]
			Sets the size of memory pool for coherent, atomic dma
			allocations, by default set to 256K.
Linus Torvalds's avatar
Linus Torvalds committed
	com20020=	[HW,NET] ARCnet - COM20020 chipset
			Format:
			<io>[,<irq>[,<nodeID>[,<backplane>[,<ckp>[,<timeout>]]]]]
Linus Torvalds's avatar
Linus Torvalds committed

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

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

	condev=		[HW,S390] console device
	conmode=
Linus Torvalds's avatar
Linus Torvalds committed
	console=	[KNL] Output console device and options.

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

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

			See Documentation/admin-guide/serial-console.rst for more
			information.  See
			Documentation/networking/netconsole.txt for an
			alternative.
Linus Torvalds's avatar
Linus Torvalds committed

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

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

		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.

	console_msg_format=
			[KNL] Change console messages format
		default
			By default we print messages on consoles in
			"[time stamp] text\n" format (time stamp may not be
			printed, depending on CONFIG_PRINTK_TIME or
			`printk_time' param).
		syslog
			Switch to syslog format: "<%u>[time stamp] text\n"
			IOW, each message will have a facility and loglevel
			prefix. The format is similar to one used by syslog()
			syscall, or to executing "dmesg -S --raw" or to reading
			from /proc/kmsg.

	consoleblank=	[KNL] The console blank (screen saver) timeout in
			seconds. A value of 0 disables the blank timer.
	coredump_filter=
			[KNL] Change the default value for
			/proc/<pid>/coredump_filter.
			See also Documentation/filesystems/proc.txt.

	coresight_cpu_debug.enable
			[ARM,ARM64]
			Format: <bool>
			Enable/disable the CPU sampling based debugging.
			0: default value, disable debugging
			1: enable debugging at boot time

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

	cpuidle.governor=
			[CPU_IDLE] Name of the cpuidle governor to use.

	cpufreq.off=1	[CPU_FREQ]
			disable the cpufreq sub-system

	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
	cpcihp_generic=	[HW,PCI] Generic port I/O CompactPCI driver
			Format:
			<first_slot>,<last_slot>,<port>,<enum_bit>[,<debug>]
Linus Torvalds's avatar
Linus Torvalds committed

	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.
			[KNL, x86_64] select a region under 4G first, and
			fall back to reserve region above 4G when '@offset'
			hasn't been specified.
			See Documentation/admin-guide/kdump/kdump.rst for further details.
	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
			Documentation/admin-guide/kdump/kdump.rst for an example.
			[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.
	crashkernel=size[KMG],low
			[KNL, x86_64] range under 4G. When crashkernel=X,high
			is passed, kernel could allocate physical memory region
			above 4G, that cause second kernel crash on system
			that require some amount of low memory, e.g. swiotlb
			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.
			This one let user to specify own low range under 4G
			for second kernel instead.
			0: to disable low allocation.
			It will be ignored when crashkernel=X,high is not used
			or memory reserved is below 4G.
			[KNL] Disable crypto self-tests
Linus Torvalds's avatar
Linus Torvalds committed
	cs89x0_dma=	[HW,NET]
			Format: <dma>

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

	dasd=		[HW,NET]
Linus Torvalds's avatar
Linus Torvalds committed
			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/devices/joystick-parport.rst
Linus Torvalds's avatar
Linus Torvalds committed

	ddebug_query=	[KNL,DYNAMIC_DEBUG] Enable debug messages at early boot
			time. See
			Documentation/admin-guide/dynamic-debug-howto.rst for
			details.  Deprecated, see dyndbg.
Linus Torvalds's avatar
Linus Torvalds committed
	debug		[KNL] Enable kernel debugging (events log level).

	debug_boot_weak_hash
			[KNL] Enable printing [hashed] pointers early in the
			boot sequence.  If enabled, we use a weak hash instead
			of siphash to hash pointers.  Use this option if you are
			seeing instances of '(___ptrval___)') and need to see a
			value (hashed pointer) instead. Cryptographically
			insecure, please do not use on production kernels.

	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.

	debug_objects	[KNL] Enable object debugging

	no_debug_objects
			[KNL] Disable object debugging

	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.

			[KNL] When CONFIG_DEBUG_PAGEALLOC is set, this parameter
			enables the feature at boot time. By default, it is
			disabled and the system will work mostly the same as a
			kernel built without CONFIG_DEBUG_PAGEALLOC.
			Note: to get most of debug_pagealloc error reports, it's
			useful to also enable the page_owner functionality.
	debugpat	[X86] Enable PAT debugging

	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.
	deferred_probe_timeout=
			[KNL] Debugging option to set a timeout in seconds for
			deferred probe to give up waiting on dependencies to
			probe. Only specific dependencies (subsystems or
			drivers) that have opted in will be ignored. A timeout of 0
			will timeout at the end of initcalls. This option will also
			dump out devices still on the deferred probe list after
			retrying.

Linus Torvalds's avatar
Linus Torvalds committed
	dhash_entries=	[KNL]
			Set number of hash buckets for dentry cache.
	disable_1tb_segments [PPC]
			Disables the use of 1TB hash page table segments. This
			causes the kernel to fall back to 256MB segments which
			can be useful when debugging issues that require an SLB
			miss to occur.

	disable=	[IPV6]
			See Documentation/networking/ipv6.txt.

	hardened_usercopy=
                        [KNL] Under CONFIG_HARDENED_USERCOPY, whether
                        hardening is enabled for this boot. Hardened
                        usercopy checking is used to protect the kernel
                        from reading or writing beyond known memory
                        allocation boundaries as a proactive defense
                        against bounds-checking flaws in the kernel's
                        copy_to_user()/copy_from_user() interface.
                on      Perform hardened usercopy checks (default).
                off     Disable hardened usercopy checks.

	disable_radix	[PPC]
			Disable RADIX MMU mode on POWER9

	disable_tlbie	[PPC]
			Disable TLBIE instruction. Currently does not work
			with KVM, with HASH MMU, or with coherent accelerators.

	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.

			Disable Intel PMU counter freezing feature.
			The feature only exists starting from
			Arch Perfmon v4 (Skylake and newer).

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

	disable_ipv6=	[IPV6]
			See Documentation/networking/ipv6.txt.

	disable_mtrr_cleanup [X86]
			The kernel tries to adjust MTRR layout from continuous
			to discrete, to make X server driver able to add WB
			entry later. This parameter disables that.
	disable_mtrr_trim [X86, Intel and AMD only]
			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.

			Disable PIN 1 of APIC timer
			Can be useful to work around chipset bugs.

	dis_ucode_ldr	[X86] Disable the microcode loader.

	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.

	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.

	driver_async_probe=  [KNL]
			List of driver names to be probed asynchronously.
			Format: <driver_name1>,<driver_name2>...

	drm.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.
			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/driver-api/edid.rst. An EDID
			data set will only be used for a particular connector,
			if its name and a colon are prepended to the EDID
			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.
Linus Torvalds's avatar
Linus Torvalds committed
	dscc4.setup=	[NET]

	dt_cpu_ftrs=	[PPC]
			Format: {"off" | "known"}
			Control how the dt_cpu_ftrs device-tree binding is
			used for CPU feature discovery and setup (if it
			exists).
			off: Do not use it, fall back to legacy cpu table.
			known: Do not pass through unknown features to guests
			or userspace, only those that the kernel is aware of.

	dump_apple_properties	[X86]
			Dump name and content of EFI device properties on
			x86 Macs.  Useful for driver authors to determine
			what data is available or for reverse-engineering.

	dyndbg[="val"]		[KNL,DYNAMIC_DEBUG]
	module.dyndbg[="val"]
			Enable debug messages at boot time.  See
			Documentation/admin-guide/dynamic-debug-howto.rst
			for details.
	nompx		[X86] Disables Intel Memory Protection Extensions.
			See Documentation/x86/intel_mpx.rst for more
			information about the feature.

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

	module.async_probe [KNL]
			Enable asynchronous probe on this module.

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

	earlycon=	[KNL] Output early console device and options.
			[ARM64] The early console is determined by the
			stdout-path property in device tree's chosen node,
			or determined by the ACPI SPCR table.

			[X86] When used with no options the early console is
			determined by the ACPI SPCR table.
		cdns,<addr>[,options]
			Start an early, polled-mode console on a Cadence