Orange Pi5 kernel

Deprecated Linux kernel 5.10.110 for OrangePi 5/5B/5+ boards

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