| .. | .. |
|---|
| 1 | +# SPDX-License-Identifier: GPL-2.0-only |
|---|
| 1 | 2 | menu "EFI (Extensible Firmware Interface) Support" |
|---|
| 2 | 3 | depends on EFI |
|---|
| 3 | 4 | |
|---|
| 4 | 5 | config EFI_VARS |
|---|
| 5 | 6 | tristate "EFI Variable Support via sysfs" |
|---|
| 6 | | - depends on EFI |
|---|
| 7 | + depends on EFI && (X86 || IA64) |
|---|
| 7 | 8 | default n |
|---|
| 8 | 9 | help |
|---|
| 9 | 10 | If you say Y here, you are able to get EFI (Extensible Firmware |
|---|
| 10 | 11 | Interface) variable information via sysfs. You may read, |
|---|
| 11 | 12 | write, create, and destroy EFI variables through this interface. |
|---|
| 12 | | - |
|---|
| 13 | | - Note that using this driver in concert with efibootmgr requires |
|---|
| 14 | | - at least test release version 0.5.0-test3 or later, which is |
|---|
| 15 | | - available from: |
|---|
| 16 | | - <http://linux.dell.com/efibootmgr/testing/efibootmgr-0.5.0-test3.tar.gz> |
|---|
| 17 | | - |
|---|
| 18 | | - Subsequent efibootmgr releases may be found at: |
|---|
| 19 | | - <http://github.com/vathpela/efibootmgr> |
|---|
| 13 | + Note that this driver is only retained for compatibility with |
|---|
| 14 | + legacy users: new users should use the efivarfs filesystem |
|---|
| 15 | + instead. |
|---|
| 20 | 16 | |
|---|
| 21 | 17 | config EFI_ESRT |
|---|
| 22 | 18 | bool |
|---|
| .. | .. |
|---|
| 25 | 21 | |
|---|
| 26 | 22 | config EFI_VARS_PSTORE |
|---|
| 27 | 23 | tristate "Register efivars backend for pstore" |
|---|
| 28 | | - depends on EFI_VARS && PSTORE |
|---|
| 24 | + depends on PSTORE |
|---|
| 29 | 25 | default y |
|---|
| 30 | 26 | help |
|---|
| 31 | 27 | Say Y here to enable use efivars as a backend to pstore. This |
|---|
| .. | .. |
|---|
| 74 | 70 | Ranges can be set up to this value using comma-separated list. |
|---|
| 75 | 71 | The default value is 8. |
|---|
| 76 | 72 | |
|---|
| 73 | +config EFI_SOFT_RESERVE |
|---|
| 74 | + bool "Reserve EFI Specific Purpose Memory" |
|---|
| 75 | + depends on EFI && EFI_STUB && ACPI_HMAT |
|---|
| 76 | + default ACPI_HMAT |
|---|
| 77 | + help |
|---|
| 78 | + On systems that have mixed performance classes of memory EFI |
|---|
| 79 | + may indicate specific purpose memory with an attribute (See |
|---|
| 80 | + EFI_MEMORY_SP in UEFI 2.8). A memory range tagged with this |
|---|
| 81 | + attribute may have unique performance characteristics compared |
|---|
| 82 | + to the system's general purpose "System RAM" pool. On the |
|---|
| 83 | + expectation that such memory has application specific usage, |
|---|
| 84 | + and its base EFI memory type is "conventional" answer Y to |
|---|
| 85 | + arrange for the kernel to reserve it as a "Soft Reserved" |
|---|
| 86 | + resource, and set aside for direct-access (device-dax) by |
|---|
| 87 | + default. The memory range can later be optionally assigned to |
|---|
| 88 | + the page allocator by system administrator policy via the |
|---|
| 89 | + device-dax kmem facility. Say N to have the kernel treat this |
|---|
| 90 | + memory as "System RAM" by default. |
|---|
| 91 | + |
|---|
| 92 | + If unsure, say Y. |
|---|
| 93 | + |
|---|
| 77 | 94 | config EFI_PARAMS_FROM_FDT |
|---|
| 78 | 95 | bool |
|---|
| 79 | 96 | help |
|---|
| .. | .. |
|---|
| 84 | 101 | config EFI_RUNTIME_WRAPPERS |
|---|
| 85 | 102 | bool |
|---|
| 86 | 103 | |
|---|
| 87 | | -config EFI_ARMSTUB |
|---|
| 104 | +config EFI_GENERIC_STUB |
|---|
| 88 | 105 | bool |
|---|
| 89 | 106 | |
|---|
| 90 | 107 | config EFI_ARMSTUB_DTB_LOADER |
|---|
| 91 | 108 | bool "Enable the DTB loader" |
|---|
| 92 | | - depends on EFI_ARMSTUB |
|---|
| 109 | + depends on EFI_GENERIC_STUB && !RISCV |
|---|
| 93 | 110 | default y |
|---|
| 94 | 111 | help |
|---|
| 95 | 112 | Select this config option to add support for the dtb= command |
|---|
| .. | .. |
|---|
| 102 | 119 | functionality for bootloaders that do not have such support |
|---|
| 103 | 120 | this option is necessary. |
|---|
| 104 | 121 | |
|---|
| 122 | +config EFI_GENERIC_STUB_INITRD_CMDLINE_LOADER |
|---|
| 123 | + bool "Enable the command line initrd loader" if !X86 |
|---|
| 124 | + depends on EFI_STUB && (EFI_GENERIC_STUB || X86) |
|---|
| 125 | + default y |
|---|
| 126 | + depends on !RISCV |
|---|
| 127 | + help |
|---|
| 128 | + Select this config option to add support for the initrd= command |
|---|
| 129 | + line parameter, allowing an initrd that resides on the same volume |
|---|
| 130 | + as the kernel image to be loaded into memory. |
|---|
| 131 | + |
|---|
| 132 | + This method is deprecated. |
|---|
| 133 | + |
|---|
| 105 | 134 | config EFI_BOOTLOADER_CONTROL |
|---|
| 106 | 135 | tristate "EFI Bootloader Control" |
|---|
| 107 | | - depends on EFI_VARS |
|---|
| 108 | 136 | default n |
|---|
| 109 | | - ---help--- |
|---|
| 137 | + help |
|---|
| 110 | 138 | This module installs a reboot hook, such that if reboot() is |
|---|
| 111 | 139 | invoked with a string argument NNN, "NNN" is copied to the |
|---|
| 112 | 140 | "LoaderEntryOneShot" EFI variable, to be read by the |
|---|
| .. | .. |
|---|
| 179 | 207 | have been evicted, since otherwise it will trigger even on clean |
|---|
| 180 | 208 | reboots. |
|---|
| 181 | 209 | |
|---|
| 182 | | -config EFI_CUSTOM_SSDT_OVERLAYS |
|---|
| 183 | | - bool "Load custom ACPI SSDT overlay from an EFI variable" |
|---|
| 184 | | - depends on EFI_VARS && ACPI |
|---|
| 185 | | - default ACPI_TABLE_UPGRADE |
|---|
| 210 | +config EFI_RCI2_TABLE |
|---|
| 211 | + bool "EFI Runtime Configuration Interface Table Version 2 Support" |
|---|
| 212 | + depends on X86 || COMPILE_TEST |
|---|
| 186 | 213 | help |
|---|
| 187 | | - Allow loading of an ACPI SSDT overlay from an EFI variable specified |
|---|
| 188 | | - by a kernel command line option. |
|---|
| 214 | + Displays the content of the Runtime Configuration Interface |
|---|
| 215 | + Table version 2 on Dell EMC PowerEdge systems as a binary |
|---|
| 216 | + attribute 'rci2' under /sys/firmware/efi/tables directory. |
|---|
| 189 | 217 | |
|---|
| 190 | | - See Documentation/admin-guide/acpi/ssdt-overlays.rst for more |
|---|
| 191 | | - information. |
|---|
| 218 | + RCI2 table contains BIOS HII in XML format and is used to populate |
|---|
| 219 | + BIOS setup page in Dell EMC OpenManage Server Administrator tool. |
|---|
| 220 | + The BIOS setup page contains BIOS tokens which can be configured. |
|---|
| 221 | + |
|---|
| 222 | + Say Y here for Dell EMC PowerEdge systems. |
|---|
| 223 | + |
|---|
| 224 | +config EFI_DISABLE_PCI_DMA |
|---|
| 225 | + bool "Clear Busmaster bit on PCI bridges during ExitBootServices()" |
|---|
| 226 | + help |
|---|
| 227 | + Disable the busmaster bit in the control register on all PCI bridges |
|---|
| 228 | + while calling ExitBootServices() and passing control to the runtime |
|---|
| 229 | + kernel. System firmware may configure the IOMMU to prevent malicious |
|---|
| 230 | + PCI devices from being able to attack the OS via DMA. However, since |
|---|
| 231 | + firmware can't guarantee that the OS is IOMMU-aware, it will tear |
|---|
| 232 | + down IOMMU configuration when ExitBootServices() is called. This |
|---|
| 233 | + leaves a window between where a hostile device could still cause |
|---|
| 234 | + damage before Linux configures the IOMMU again. |
|---|
| 235 | + |
|---|
| 236 | + If you say Y here, the EFI stub will clear the busmaster bit on all |
|---|
| 237 | + PCI bridges before ExitBootServices() is called. This will prevent |
|---|
| 238 | + any malicious PCI devices from being able to perform DMA until the |
|---|
| 239 | + kernel reenables busmastering after configuring the IOMMU. |
|---|
| 240 | + |
|---|
| 241 | + This option will cause failures with some poorly behaved hardware |
|---|
| 242 | + and should not be enabled without testing. The kernel commandline |
|---|
| 243 | + options "efi=disable_early_pci_dma" or "efi=no_disable_early_pci_dma" |
|---|
| 244 | + may be used to override this option. |
|---|
| 192 | 245 | |
|---|
| 193 | 246 | endmenu |
|---|
| 247 | + |
|---|
| 248 | +config EFI_EMBEDDED_FIRMWARE |
|---|
| 249 | + bool |
|---|
| 250 | + depends on EFI |
|---|
| 251 | + select CRYPTO_LIB_SHA256 |
|---|
| 194 | 252 | |
|---|
| 195 | 253 | config UEFI_CPER |
|---|
| 196 | 254 | bool |
|---|
| .. | .. |
|---|
| 209 | 267 | bool |
|---|
| 210 | 268 | depends on ACPI |
|---|
| 211 | 269 | default n |
|---|
| 270 | + |
|---|
| 271 | +config EFI_EARLYCON |
|---|
| 272 | + def_bool y |
|---|
| 273 | + depends on EFI && SERIAL_EARLYCON && !ARM && !IA64 |
|---|
| 274 | + select FONT_SUPPORT |
|---|
| 275 | + select ARCH_USE_MEMREMAP_PROT |
|---|
| 276 | + |
|---|
| 277 | +config EFI_CUSTOM_SSDT_OVERLAYS |
|---|
| 278 | + bool "Load custom ACPI SSDT overlay from an EFI variable" |
|---|
| 279 | + depends on EFI && ACPI |
|---|
| 280 | + default ACPI_TABLE_UPGRADE |
|---|
| 281 | + help |
|---|
| 282 | + Allow loading of an ACPI SSDT overlay from an EFI variable specified |
|---|
| 283 | + by a kernel command line option. |
|---|
| 284 | + |
|---|
| 285 | + See Documentation/admin-guide/acpi/ssdt-overlays.rst for more |
|---|
| 286 | + information. |
|---|