xref: /openbmc/linux/drivers/firmware/efi/Kconfig (revision ebd09753)
1menu "EFI (Extensible Firmware Interface) Support"
2	depends on EFI
3
4config EFI_VARS
5	tristate "EFI Variable Support via sysfs"
6	depends on EFI
7	default n
8	help
9	  If you say Y here, you are able to get EFI (Extensible Firmware
10	  Interface) variable information via sysfs.  You may read,
11	  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>
20
21config EFI_ESRT
22	bool
23	depends on EFI && !IA64
24	default y
25
26config EFI_VARS_PSTORE
27	tristate "Register efivars backend for pstore"
28	depends on EFI_VARS && PSTORE
29	default y
30	help
31	  Say Y here to enable use efivars as a backend to pstore. This
32	  will allow writing console messages, crash dumps, or anything
33	  else supported by pstore to EFI variables.
34
35config EFI_VARS_PSTORE_DEFAULT_DISABLE
36	bool "Disable using efivars as a pstore backend by default"
37	depends on EFI_VARS_PSTORE
38	default n
39	help
40	  Saying Y here will disable the use of efivars as a storage
41	  backend for pstore by default. This setting can be overridden
42	  using the efivars module's pstore_disable parameter.
43
44config EFI_RUNTIME_MAP
45	bool "Export efi runtime maps to sysfs"
46	depends on X86 && EFI && KEXEC_CORE
47	default y
48	help
49	  Export efi runtime memory maps to /sys/firmware/efi/runtime-map.
50	  That memory map is used for example by kexec to set up efi virtual
51	  mapping the 2nd kernel, but can also be used for debugging purposes.
52
53	  See also Documentation/ABI/testing/sysfs-firmware-efi-runtime-map.
54
55config EFI_FAKE_MEMMAP
56	bool "Enable EFI fake memory map"
57	depends on EFI && X86
58	default n
59	help
60	  Saying Y here will enable "efi_fake_mem" boot option.
61	  By specifying this parameter, you can add arbitrary attribute
62	  to specific memory range by updating original (firmware provided)
63	  EFI memmap.
64	  This is useful for debugging of EFI memmap related feature.
65	  e.g. Address Range Mirroring feature.
66
67config EFI_MAX_FAKE_MEM
68	int "maximum allowable number of ranges in efi_fake_mem boot option"
69	depends on EFI_FAKE_MEMMAP
70	range 1 128
71	default 8
72	help
73	  Maximum allowable number of ranges in efi_fake_mem boot option.
74	  Ranges can be set up to this value using comma-separated list.
75	  The default value is 8.
76
77config EFI_PARAMS_FROM_FDT
78	bool
79	help
80	  Select this config option from the architecture Kconfig if
81	  the EFI runtime support gets system table address, memory
82          map address, and other parameters from the device tree.
83
84config EFI_RUNTIME_WRAPPERS
85	bool
86
87config EFI_ARMSTUB
88	bool
89
90config EFI_ARMSTUB_DTB_LOADER
91	bool "Enable the DTB loader"
92	depends on EFI_ARMSTUB
93	default y
94	help
95	  Select this config option to add support for the dtb= command
96	  line parameter, allowing a device tree blob to be loaded into
97	  memory from the EFI System Partition by the stub.
98
99	  If the device tree is provided by the platform or by
100	  the bootloader this option may not be needed.
101	  But, for various development reasons and to maintain existing
102	  functionality for bootloaders that do not have such support
103	  this option is necessary.
104
105config EFI_BOOTLOADER_CONTROL
106	tristate "EFI Bootloader Control"
107	depends on EFI_VARS
108	default n
109	---help---
110	  This module installs a reboot hook, such that if reboot() is
111	  invoked with a string argument NNN, "NNN" is copied to the
112	  "LoaderEntryOneShot" EFI variable, to be read by the
113	  bootloader. If the string matches one of the boot labels
114	  defined in its configuration, the bootloader will boot once
115	  to that label. The "LoaderEntryRebootReason" EFI variable is
116	  set with the reboot reason: "reboot" or "shutdown". The
117	  bootloader reads this reboot reason and takes particular
118	  action according to its policy.
119
120config EFI_CAPSULE_LOADER
121	tristate "EFI capsule loader"
122	depends on EFI
123	help
124	  This option exposes a loader interface "/dev/efi_capsule_loader" for
125	  users to load EFI capsules. This driver requires working runtime
126	  capsule support in the firmware, which many OEMs do not provide.
127
128	  Most users should say N.
129
130config EFI_CAPSULE_QUIRK_QUARK_CSH
131	bool "Add support for Quark capsules with non-standard headers"
132	depends on X86 && !64BIT
133	select EFI_CAPSULE_LOADER
134	default y
135	help
136	  Add support for processing Quark X1000 EFI capsules, whose header
137	  layout deviates from the layout mandated by the UEFI specification.
138
139config EFI_TEST
140	tristate "EFI Runtime Service Tests Support"
141	depends on EFI
142	default n
143	help
144	  This driver uses the efi.<service> function pointers directly instead
145	  of going through the efivar API, because it is not trying to test the
146	  kernel subsystem, just for testing the UEFI runtime service
147	  interfaces which are provided by the firmware. This driver is used
148	  by the Firmware Test Suite (FWTS) for testing the UEFI runtime
149	  interfaces readiness of the firmware.
150	  Details for FWTS are available from:
151	  <https://wiki.ubuntu.com/FirmwareTestSuite>
152
153	  Say Y here to enable the runtime services support via /dev/efi_test.
154	  If unsure, say N.
155
156config APPLE_PROPERTIES
157	bool "Apple Device Properties"
158	depends on EFI_STUB && X86
159	select EFI_DEV_PATH_PARSER
160	select UCS2_STRING
161	help
162	  Retrieve properties from EFI on Apple Macs and assign them to
163	  devices, allowing for improved support of Apple hardware.
164	  Properties that would otherwise be missing include the
165	  Thunderbolt Device ROM and GPU configuration data.
166
167	  If unsure, say Y if you have a Mac.  Otherwise N.
168
169config RESET_ATTACK_MITIGATION
170	bool "Reset memory attack mitigation"
171	depends on EFI_STUB
172	help
173	  Request that the firmware clear the contents of RAM after a reboot
174	  using the TCG Platform Reset Attack Mitigation specification. This
175	  protects against an attacker forcibly rebooting the system while it
176	  still contains secrets in RAM, booting another OS and extracting the
177	  secrets. This should only be enabled when userland is configured to
178	  clear the MemoryOverwriteRequest flag on clean shutdown after secrets
179	  have been evicted, since otherwise it will trigger even on clean
180	  reboots.
181
182endmenu
183
184config UEFI_CPER
185	bool
186
187config UEFI_CPER_ARM
188	bool
189	depends on UEFI_CPER && ( ARM || ARM64 )
190	default y
191
192config UEFI_CPER_X86
193	bool
194	depends on UEFI_CPER && X86
195	default y
196
197config EFI_DEV_PATH_PARSER
198	bool
199	depends on ACPI
200	default n
201