Back to home page

OSCL-LXR

 
 

    


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.