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