xref: /openbmc/linux/drivers/firmware/efi/Kconfig (revision c62d3cd0ddd629606a3830aa22e9dcc6c2a0d3bf)
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	help
94	  Select this config option to add support for the dtb= command
95	  line parameter, allowing a device tree blob to be loaded into
96	  memory from the EFI System Partition by the stub.
97
98	  The device tree is typically provided by the platform or by
99	  the bootloader, so this option is mostly for development
100	  purposes only.
101
102config EFI_BOOTLOADER_CONTROL
103	tristate "EFI Bootloader Control"
104	depends on EFI_VARS
105	default n
106	---help---
107	  This module installs a reboot hook, such that if reboot() is
108	  invoked with a string argument NNN, "NNN" is copied to the
109	  "LoaderEntryOneShot" EFI variable, to be read by the
110	  bootloader. If the string matches one of the boot labels
111	  defined in its configuration, the bootloader will boot once
112	  to that label. The "LoaderEntryRebootReason" EFI variable is
113	  set with the reboot reason: "reboot" or "shutdown". The
114	  bootloader reads this reboot reason and takes particular
115	  action according to its policy.
116
117config EFI_CAPSULE_LOADER
118	tristate "EFI capsule loader"
119	depends on EFI
120	help
121	  This option exposes a loader interface "/dev/efi_capsule_loader" for
122	  users to load EFI capsules. This driver requires working runtime
123	  capsule support in the firmware, which many OEMs do not provide.
124
125	  Most users should say N.
126
127config EFI_CAPSULE_QUIRK_QUARK_CSH
128	bool "Add support for Quark capsules with non-standard headers"
129	depends on X86 && !64BIT
130	select EFI_CAPSULE_LOADER
131	default y
132	help
133	  Add support for processing Quark X1000 EFI capsules, whose header
134	  layout deviates from the layout mandated by the UEFI specification.
135
136config EFI_TEST
137	tristate "EFI Runtime Service Tests Support"
138	depends on EFI
139	default n
140	help
141	  This driver uses the efi.<service> function pointers directly instead
142	  of going through the efivar API, because it is not trying to test the
143	  kernel subsystem, just for testing the UEFI runtime service
144	  interfaces which are provided by the firmware. This driver is used
145	  by the Firmware Test Suite (FWTS) for testing the UEFI runtime
146	  interfaces readiness of the firmware.
147	  Details for FWTS are available from:
148	  <https://wiki.ubuntu.com/FirmwareTestSuite>
149
150	  Say Y here to enable the runtime services support via /dev/efi_test.
151	  If unsure, say N.
152
153config APPLE_PROPERTIES
154	bool "Apple Device Properties"
155	depends on EFI_STUB && X86
156	select EFI_DEV_PATH_PARSER
157	select UCS2_STRING
158	help
159	  Retrieve properties from EFI on Apple Macs and assign them to
160	  devices, allowing for improved support of Apple hardware.
161	  Properties that would otherwise be missing include the
162	  Thunderbolt Device ROM and GPU configuration data.
163
164	  If unsure, say Y if you have a Mac.  Otherwise N.
165
166config RESET_ATTACK_MITIGATION
167	bool "Reset memory attack mitigation"
168	depends on EFI_STUB
169	help
170	  Request that the firmware clear the contents of RAM after a reboot
171	  using the TCG Platform Reset Attack Mitigation specification. This
172	  protects against an attacker forcibly rebooting the system while it
173	  still contains secrets in RAM, booting another OS and extracting the
174	  secrets. This should only be enabled when userland is configured to
175	  clear the MemoryOverwriteRequest flag on clean shutdown after secrets
176	  have been evicted, since otherwise it will trigger even on clean
177	  reboots.
178
179endmenu
180
181config UEFI_CPER
182	bool
183
184config UEFI_CPER_ARM
185	bool
186	depends on UEFI_CPER && ( ARM || ARM64 )
187	default y
188
189config UEFI_CPER_X86
190	bool
191	depends on UEFI_CPER && X86
192	default y
193
194config EFI_DEV_PATH_PARSER
195	bool
196	depends on ACPI
197	default n
198