linux/Documentation/x86/x86_64/boot-options.rst
<<
>>
Prefs
   1.. SPDX-License-Identifier: GPL-2.0
   2
   3===========================
   4AMD64 Specific Boot Options
   5===========================
   6
   7There are many others (usually documented in driver documentation), but
   8only the AMD64 specific ones are listed here.
   9
  10Machine check
  11=============
  12Please see Documentation/x86/x86_64/machinecheck.rst for sysfs runtime tunables.
  13
  14   mce=off
  15                Disable machine check
  16   mce=no_cmci
  17                Disable CMCI(Corrected Machine Check Interrupt) that
  18                Intel processor supports.  Usually this disablement is
  19                not recommended, but it might be handy if your hardware
  20                is misbehaving.
  21                Note that you'll get more problems without CMCI than with
  22                due to the shared banks, i.e. you might get duplicated
  23                error logs.
  24   mce=dont_log_ce
  25                Don't make logs for corrected errors.  All events reported
  26                as corrected are silently cleared by OS.
  27                This option will be useful if you have no interest in any
  28                of corrected errors.
  29   mce=ignore_ce
  30                Disable features for corrected errors, e.g. polling timer
  31                and CMCI.  All events reported as corrected are not cleared
  32                by OS and remained in its error banks.
  33                Usually this disablement is not recommended, however if
  34                there is an agent checking/clearing corrected errors
  35                (e.g. BIOS or hardware monitoring applications), conflicting
  36                with OS's error handling, and you cannot deactivate the agent,
  37                then this option will be a help.
  38   mce=no_lmce
  39                Do not opt-in to Local MCE delivery. Use legacy method
  40                to broadcast MCEs.
  41   mce=bootlog
  42                Enable logging of machine checks left over from booting.
  43                Disabled by default on AMD Fam10h and older because some BIOS
  44                leave bogus ones.
  45                If your BIOS doesn't do that it's a good idea to enable though
  46                to make sure you log even machine check events that result
  47                in a reboot. On Intel systems it is enabled by default.
  48   mce=nobootlog
  49                Disable boot machine check logging.
  50   mce=tolerancelevel[,monarchtimeout] (number,number)
  51                tolerance levels:
  52                0: always panic on uncorrected errors, log corrected errors
  53                1: panic or SIGBUS on uncorrected errors, log corrected errors
  54                2: SIGBUS or log uncorrected errors, log corrected errors
  55                3: never panic or SIGBUS, log all errors (for testing only)
  56                Default is 1
  57                Can be also set using sysfs which is preferable.
  58                monarchtimeout:
  59                Sets the time in us to wait for other CPUs on machine checks. 0
  60                to disable.
  61   mce=bios_cmci_threshold
  62                Don't overwrite the bios-set CMCI threshold. This boot option
  63                prevents Linux from overwriting the CMCI threshold set by the
  64                bios. Without this option, Linux always sets the CMCI
  65                threshold to 1. Enabling this may make memory predictive failure
  66                analysis less effective if the bios sets thresholds for memory
  67                errors since we will not see details for all errors.
  68   mce=recovery
  69                Force-enable recoverable machine check code paths
  70
  71   nomce (for compatibility with i386)
  72                same as mce=off
  73
  74   Everything else is in sysfs now.
  75
  76APICs
  77=====
  78
  79   apic
  80        Use IO-APIC. Default
  81
  82   noapic
  83        Don't use the IO-APIC.
  84
  85   disableapic
  86        Don't use the local APIC
  87
  88   nolapic
  89     Don't use the local APIC (alias for i386 compatibility)
  90
  91   pirq=...
  92        See Documentation/x86/i386/IO-APIC.rst
  93
  94   noapictimer
  95        Don't set up the APIC timer
  96
  97   no_timer_check
  98        Don't check the IO-APIC timer. This can work around
  99        problems with incorrect timer initialization on some boards.
 100
 101   apicpmtimer
 102        Do APIC timer calibration using the pmtimer. Implies
 103        apicmaintimer. Useful when your PIT timer is totally broken.
 104
 105Timing
 106======
 107
 108  notsc
 109    Deprecated, use tsc=unstable instead.
 110
 111  nohpet
 112    Don't use the HPET timer.
 113
 114Idle loop
 115=========
 116
 117  idle=poll
 118    Don't do power saving in the idle loop using HLT, but poll for rescheduling
 119    event. This will make the CPUs eat a lot more power, but may be useful
 120    to get slightly better performance in multiprocessor benchmarks. It also
 121    makes some profiling using performance counters more accurate.
 122    Please note that on systems with MONITOR/MWAIT support (like Intel EM64T
 123    CPUs) this option has no performance advantage over the normal idle loop.
 124    It may also interact badly with hyperthreading.
 125
 126Rebooting
 127=========
 128
 129   reboot=b[ios] | t[riple] | k[bd] | a[cpi] | e[fi] | p[ci] [, [w]arm | [c]old]
 130      bios
 131        Use the CPU reboot vector for warm reset
 132      warm
 133        Don't set the cold reboot flag
 134      cold
 135        Set the cold reboot flag
 136      triple
 137        Force a triple fault (init)
 138      kbd
 139        Use the keyboard controller. cold reset (default)
 140      acpi
 141        Use the ACPI RESET_REG in the FADT. If ACPI is not configured or
 142        the ACPI reset does not work, the reboot path attempts the reset
 143        using the keyboard controller.
 144      efi
 145        Use efi reset_system runtime service. If EFI is not configured or
 146        the EFI reset does not work, the reboot path attempts the reset using
 147        the keyboard controller.
 148      pci
 149        Use a write to the PCI config space register 0xcf9 to trigger reboot.
 150
 151   Using warm reset will be much faster especially on big memory
 152   systems because the BIOS will not go through the memory check.
 153   Disadvantage is that not all hardware will be completely reinitialized
 154   on reboot so there may be boot problems on some systems.
 155
 156   reboot=force
 157     Don't stop other CPUs on reboot. This can make reboot more reliable
 158     in some cases.
 159
 160   reboot=default
 161     There are some built-in platform specific "quirks" - you may see:
 162     "reboot: <name> series board detected. Selecting <type> for reboots."
 163     In the case where you think the quirk is in error (e.g. you have
 164     newer BIOS, or newer board) using this option will ignore the built-in
 165     quirk table, and use the generic default reboot actions.
 166
 167Non Executable Mappings
 168=======================
 169
 170  noexec=on|off
 171    on
 172      Enable(default)
 173    off
 174      Disable
 175
 176NUMA
 177====
 178
 179  numa=off
 180    Only set up a single NUMA node spanning all memory.
 181
 182  numa=noacpi
 183    Don't parse the SRAT table for NUMA setup
 184
 185  numa=nohmat
 186    Don't parse the HMAT table for NUMA setup, or soft-reserved memory
 187    partitioning.
 188
 189  numa=fake=<size>[MG]
 190    If given as a memory unit, fills all system RAM with nodes of
 191    size interleaved over physical nodes.
 192
 193  numa=fake=<N>
 194    If given as an integer, fills all system RAM with N fake nodes
 195    interleaved over physical nodes.
 196
 197  numa=fake=<N>U
 198    If given as an integer followed by 'U', it will divide each
 199    physical node into N emulated nodes.
 200
 201ACPI
 202====
 203
 204  acpi=off
 205    Don't enable ACPI
 206  acpi=ht
 207    Use ACPI boot table parsing, but don't enable ACPI interpreter
 208  acpi=force
 209    Force ACPI on (currently not needed)
 210  acpi=strict
 211    Disable out of spec ACPI workarounds.
 212  acpi_sci={edge,level,high,low}
 213    Set up ACPI SCI interrupt.
 214  acpi=noirq
 215    Don't route interrupts
 216  acpi=nocmcff
 217    Disable firmware first mode for corrected errors. This
 218    disables parsing the HEST CMC error source to check if
 219    firmware has set the FF flag. This may result in
 220    duplicate corrected error reports.
 221
 222PCI
 223===
 224
 225  pci=off
 226    Don't use PCI
 227  pci=conf1
 228    Use conf1 access.
 229  pci=conf2
 230    Use conf2 access.
 231  pci=rom
 232    Assign ROMs.
 233  pci=assign-busses
 234    Assign busses
 235  pci=irqmask=MASK
 236    Set PCI interrupt mask to MASK
 237  pci=lastbus=NUMBER
 238    Scan up to NUMBER busses, no matter what the mptable says.
 239  pci=noacpi
 240    Don't use ACPI to set up PCI interrupt routing.
 241
 242IOMMU (input/output memory management unit)
 243===========================================
 244Multiple x86-64 PCI-DMA mapping implementations exist, for example:
 245
 246   1. <kernel/dma/direct.c>: use no hardware/software IOMMU at all
 247      (e.g. because you have < 3 GB memory).
 248      Kernel boot message: "PCI-DMA: Disabling IOMMU"
 249
 250   2. <arch/x86/kernel/amd_gart_64.c>: AMD GART based hardware IOMMU.
 251      Kernel boot message: "PCI-DMA: using GART IOMMU"
 252
 253   3. <arch/x86_64/kernel/pci-swiotlb.c> : Software IOMMU implementation. Used
 254      e.g. if there is no hardware IOMMU in the system and it is need because
 255      you have >3GB memory or told the kernel to us it (iommu=soft))
 256      Kernel boot message: "PCI-DMA: Using software bounce buffering
 257      for IO (SWIOTLB)"
 258
 259::
 260
 261  iommu=[<size>][,noagp][,off][,force][,noforce]
 262  [,memaper[=<order>]][,merge][,fullflush][,nomerge]
 263  [,noaperture]
 264
 265General iommu options:
 266
 267    off
 268      Don't initialize and use any kind of IOMMU.
 269    noforce
 270      Don't force hardware IOMMU usage when it is not needed. (default).
 271    force
 272      Force the use of the hardware IOMMU even when it is
 273      not actually needed (e.g. because < 3 GB memory).
 274    soft
 275      Use software bounce buffering (SWIOTLB) (default for
 276      Intel machines). This can be used to prevent the usage
 277      of an available hardware IOMMU.
 278
 279iommu options only relevant to the AMD GART hardware IOMMU:
 280
 281    <size>
 282      Set the size of the remapping area in bytes.
 283    allowed
 284      Overwrite iommu off workarounds for specific chipsets.
 285    fullflush
 286      Flush IOMMU on each allocation (default).
 287    nofullflush
 288      Don't use IOMMU fullflush.
 289    memaper[=<order>]
 290      Allocate an own aperture over RAM with size 32MB<<order.
 291      (default: order=1, i.e. 64MB)
 292    merge
 293      Do scatter-gather (SG) merging. Implies "force" (experimental).
 294    nomerge
 295      Don't do scatter-gather (SG) merging.
 296    noaperture
 297      Ask the IOMMU not to touch the aperture for AGP.
 298    noagp
 299      Don't initialize the AGP driver and use full aperture.
 300    panic
 301      Always panic when IOMMU overflows.
 302
 303iommu options only relevant to the software bounce buffering (SWIOTLB) IOMMU
 304implementation:
 305
 306    swiotlb=<pages>[,force]
 307      <pages>
 308        Prereserve that many 128K pages for the software IO bounce buffering.
 309      force
 310        Force all IO through the software TLB.
 311
 312
 313Miscellaneous
 314=============
 315
 316  nogbpages
 317    Do not use GB pages for kernel direct mappings.
 318  gbpages
 319    Use GB pages for kernel direct mappings.
 320