0001 .. SPDX-License-Identifier: GPL-2.0
0002
0003 ===========================
0004 AMD64 Specific Boot Options
0005 ===========================
0006
0007 There are many others (usually documented in driver documentation), but
0008 only the AMD64 specific ones are listed here.
0009
0010 Machine check
0011 =============
0012 Please see Documentation/x86/x86_64/machinecheck.rst for sysfs runtime tunables.
0013
0014 mce=off
0015 Disable machine check
0016 mce=no_cmci
0017 Disable CMCI(Corrected Machine Check Interrupt) that
0018 Intel processor supports. Usually this disablement is
0019 not recommended, but it might be handy if your hardware
0020 is misbehaving.
0021 Note that you'll get more problems without CMCI than with
0022 due to the shared banks, i.e. you might get duplicated
0023 error logs.
0024 mce=dont_log_ce
0025 Don't make logs for corrected errors. All events reported
0026 as corrected are silently cleared by OS.
0027 This option will be useful if you have no interest in any
0028 of corrected errors.
0029 mce=ignore_ce
0030 Disable features for corrected errors, e.g. polling timer
0031 and CMCI. All events reported as corrected are not cleared
0032 by OS and remained in its error banks.
0033 Usually this disablement is not recommended, however if
0034 there is an agent checking/clearing corrected errors
0035 (e.g. BIOS or hardware monitoring applications), conflicting
0036 with OS's error handling, and you cannot deactivate the agent,
0037 then this option will be a help.
0038 mce=no_lmce
0039 Do not opt-in to Local MCE delivery. Use legacy method
0040 to broadcast MCEs.
0041 mce=bootlog
0042 Enable logging of machine checks left over from booting.
0043 Disabled by default on AMD Fam10h and older because some BIOS
0044 leave bogus ones.
0045 If your BIOS doesn't do that it's a good idea to enable though
0046 to make sure you log even machine check events that result
0047 in a reboot. On Intel systems it is enabled by default.
0048 mce=nobootlog
0049 Disable boot machine check logging.
0050 mce=monarchtimeout (number)
0051 monarchtimeout:
0052 Sets the time in us to wait for other CPUs on machine checks. 0
0053 to disable.
0054 mce=bios_cmci_threshold
0055 Don't overwrite the bios-set CMCI threshold. This boot option
0056 prevents Linux from overwriting the CMCI threshold set by the
0057 bios. Without this option, Linux always sets the CMCI
0058 threshold to 1. Enabling this may make memory predictive failure
0059 analysis less effective if the bios sets thresholds for memory
0060 errors since we will not see details for all errors.
0061 mce=recovery
0062 Force-enable recoverable machine check code paths
0063
0064 nomce (for compatibility with i386)
0065 same as mce=off
0066
0067 Everything else is in sysfs now.
0068
0069 APICs
0070 =====
0071
0072 apic
0073 Use IO-APIC. Default
0074
0075 noapic
0076 Don't use the IO-APIC.
0077
0078 disableapic
0079 Don't use the local APIC
0080
0081 nolapic
0082 Don't use the local APIC (alias for i386 compatibility)
0083
0084 pirq=...
0085 See Documentation/x86/i386/IO-APIC.rst
0086
0087 noapictimer
0088 Don't set up the APIC timer
0089
0090 no_timer_check
0091 Don't check the IO-APIC timer. This can work around
0092 problems with incorrect timer initialization on some boards.
0093
0094 apicpmtimer
0095 Do APIC timer calibration using the pmtimer. Implies
0096 apicmaintimer. Useful when your PIT timer is totally broken.
0097
0098 Timing
0099 ======
0100
0101 notsc
0102 Deprecated, use tsc=unstable instead.
0103
0104 nohpet
0105 Don't use the HPET timer.
0106
0107 Idle loop
0108 =========
0109
0110 idle=poll
0111 Don't do power saving in the idle loop using HLT, but poll for rescheduling
0112 event. This will make the CPUs eat a lot more power, but may be useful
0113 to get slightly better performance in multiprocessor benchmarks. It also
0114 makes some profiling using performance counters more accurate.
0115 Please note that on systems with MONITOR/MWAIT support (like Intel EM64T
0116 CPUs) this option has no performance advantage over the normal idle loop.
0117 It may also interact badly with hyperthreading.
0118
0119 Rebooting
0120 =========
0121
0122 reboot=b[ios] | t[riple] | k[bd] | a[cpi] | e[fi] | p[ci] [, [w]arm | [c]old]
0123 bios
0124 Use the CPU reboot vector for warm reset
0125 warm
0126 Don't set the cold reboot flag
0127 cold
0128 Set the cold reboot flag
0129 triple
0130 Force a triple fault (init)
0131 kbd
0132 Use the keyboard controller. cold reset (default)
0133 acpi
0134 Use the ACPI RESET_REG in the FADT. If ACPI is not configured or
0135 the ACPI reset does not work, the reboot path attempts the reset
0136 using the keyboard controller.
0137 efi
0138 Use efi reset_system runtime service. If EFI is not configured or
0139 the EFI reset does not work, the reboot path attempts the reset using
0140 the keyboard controller.
0141 pci
0142 Use a write to the PCI config space register 0xcf9 to trigger reboot.
0143
0144 Using warm reset will be much faster especially on big memory
0145 systems because the BIOS will not go through the memory check.
0146 Disadvantage is that not all hardware will be completely reinitialized
0147 on reboot so there may be boot problems on some systems.
0148
0149 reboot=force
0150 Don't stop other CPUs on reboot. This can make reboot more reliable
0151 in some cases.
0152
0153 reboot=default
0154 There are some built-in platform specific "quirks" - you may see:
0155 "reboot: <name> series board detected. Selecting <type> for reboots."
0156 In the case where you think the quirk is in error (e.g. you have
0157 newer BIOS, or newer board) using this option will ignore the built-in
0158 quirk table, and use the generic default reboot actions.
0159
0160 NUMA
0161 ====
0162
0163 numa=off
0164 Only set up a single NUMA node spanning all memory.
0165
0166 numa=noacpi
0167 Don't parse the SRAT table for NUMA setup
0168
0169 numa=nohmat
0170 Don't parse the HMAT table for NUMA setup, or soft-reserved memory
0171 partitioning.
0172
0173 numa=fake=<size>[MG]
0174 If given as a memory unit, fills all system RAM with nodes of
0175 size interleaved over physical nodes.
0176
0177 numa=fake=<N>
0178 If given as an integer, fills all system RAM with N fake nodes
0179 interleaved over physical nodes.
0180
0181 numa=fake=<N>U
0182 If given as an integer followed by 'U', it will divide each
0183 physical node into N emulated nodes.
0184
0185 ACPI
0186 ====
0187
0188 acpi=off
0189 Don't enable ACPI
0190 acpi=ht
0191 Use ACPI boot table parsing, but don't enable ACPI interpreter
0192 acpi=force
0193 Force ACPI on (currently not needed)
0194 acpi=strict
0195 Disable out of spec ACPI workarounds.
0196 acpi_sci={edge,level,high,low}
0197 Set up ACPI SCI interrupt.
0198 acpi=noirq
0199 Don't route interrupts
0200 acpi=nocmcff
0201 Disable firmware first mode for corrected errors. This
0202 disables parsing the HEST CMC error source to check if
0203 firmware has set the FF flag. This may result in
0204 duplicate corrected error reports.
0205
0206 PCI
0207 ===
0208
0209 pci=off
0210 Don't use PCI
0211 pci=conf1
0212 Use conf1 access.
0213 pci=conf2
0214 Use conf2 access.
0215 pci=rom
0216 Assign ROMs.
0217 pci=assign-busses
0218 Assign busses
0219 pci=irqmask=MASK
0220 Set PCI interrupt mask to MASK
0221 pci=lastbus=NUMBER
0222 Scan up to NUMBER busses, no matter what the mptable says.
0223 pci=noacpi
0224 Don't use ACPI to set up PCI interrupt routing.
0225
0226 IOMMU (input/output memory management unit)
0227 ===========================================
0228 Multiple x86-64 PCI-DMA mapping implementations exist, for example:
0229
0230 1. <kernel/dma/direct.c>: use no hardware/software IOMMU at all
0231 (e.g. because you have < 3 GB memory).
0232 Kernel boot message: "PCI-DMA: Disabling IOMMU"
0233
0234 2. <arch/x86/kernel/amd_gart_64.c>: AMD GART based hardware IOMMU.
0235 Kernel boot message: "PCI-DMA: using GART IOMMU"
0236
0237 3. <arch/x86_64/kernel/pci-swiotlb.c> : Software IOMMU implementation. Used
0238 e.g. if there is no hardware IOMMU in the system and it is need because
0239 you have >3GB memory or told the kernel to us it (iommu=soft))
0240 Kernel boot message: "PCI-DMA: Using software bounce buffering
0241 for IO (SWIOTLB)"
0242
0243 ::
0244
0245 iommu=[<size>][,noagp][,off][,force][,noforce]
0246 [,memaper[=<order>]][,merge][,fullflush][,nomerge]
0247 [,noaperture]
0248
0249 General iommu options:
0250
0251 off
0252 Don't initialize and use any kind of IOMMU.
0253 noforce
0254 Don't force hardware IOMMU usage when it is not needed. (default).
0255 force
0256 Force the use of the hardware IOMMU even when it is
0257 not actually needed (e.g. because < 3 GB memory).
0258 soft
0259 Use software bounce buffering (SWIOTLB) (default for
0260 Intel machines). This can be used to prevent the usage
0261 of an available hardware IOMMU.
0262
0263 iommu options only relevant to the AMD GART hardware IOMMU:
0264
0265 <size>
0266 Set the size of the remapping area in bytes.
0267 allowed
0268 Overwrite iommu off workarounds for specific chipsets.
0269 fullflush
0270 Flush IOMMU on each allocation (default).
0271 nofullflush
0272 Don't use IOMMU fullflush.
0273 memaper[=<order>]
0274 Allocate an own aperture over RAM with size 32MB<<order.
0275 (default: order=1, i.e. 64MB)
0276 merge
0277 Do scatter-gather (SG) merging. Implies "force" (experimental).
0278 nomerge
0279 Don't do scatter-gather (SG) merging.
0280 noaperture
0281 Ask the IOMMU not to touch the aperture for AGP.
0282 noagp
0283 Don't initialize the AGP driver and use full aperture.
0284 panic
0285 Always panic when IOMMU overflows.
0286
0287 iommu options only relevant to the software bounce buffering (SWIOTLB) IOMMU
0288 implementation:
0289
0290 swiotlb=<slots>[,force,noforce]
0291 <slots>
0292 Prereserve that many 2K slots for the software IO bounce buffering.
0293 force
0294 Force all IO through the software TLB.
0295 noforce
0296 Do not initialize the software TLB.
0297
0298
0299 Miscellaneous
0300 =============
0301
0302 nogbpages
0303 Do not use GB pages for kernel direct mappings.
0304 gbpages
0305 Use GB pages for kernel direct mappings.
0306
0307
0308 AMD SEV (Secure Encrypted Virtualization)
0309 =========================================
0310 Options relating to AMD SEV, specified via the following format:
0311
0312 ::
0313
0314 sev=option1[,option2]
0315
0316 The available options are:
0317
0318 debug
0319 Enable debug messages.