blob: 1cefdf0d2176c3ed6879864395bdeb2abdd40960 [file] [log] [blame]
Alexander Graf67ee7052016-03-04 01:10:07 +01001config EFI_LOADER
Heinrich Schuchardt96b236a2019-05-11 10:27:58 +02002 bool "Support running UEFI applications"
Heinrich Schuchardt79cea672019-11-17 10:44:16 +01003 depends on OF_LIBFDT && ( \
Heinrich Schuchardt30c3a5f2019-11-19 04:19:09 +01004 ARM && (SYS_CPU = arm1136 || \
5 SYS_CPU = arm1176 || \
6 SYS_CPU = armv7 || \
7 SYS_CPU = armv8) || \
Heinrich Schuchardt79cea672019-11-17 10:44:16 +01008 X86 || RISCV || SANDBOX)
Alexander Graf5e247172018-01-24 14:54:21 +01009 # We need EFI_STUB_64BIT to be set on x86_64 with EFI_STUB
10 depends on !EFI_STUB || !X86_64 || EFI_STUB_64BIT
11 # We need EFI_STUB_32BIT to be set on x86_32 with EFI_STUB
12 depends on !EFI_STUB || !X86 || X86_64 || EFI_STUB_32BIT
Heinrich Schuchardt302a9cc2021-09-07 08:56:47 +020013 depends on BLK
Simon Glass49a643b2021-11-03 21:09:07 -060014 depends on !EFI_APP
Heinrich Schuchardtac212dc2019-11-20 18:48:02 +010015 default y if !ARM || SYS_CPU = armv7 || SYS_CPU = armv8
Heinrich Schuchardt013aabb2022-05-02 06:27:00 +020016 select CHARSET
Tom Rini7d3684a2023-01-16 15:46:49 -050017 # We need to send DM events, dynamically, in the EFI block driver
AKASHI Takahiro2381f2e2022-04-19 10:05:12 +090018 select DM_EVENT
19 select EVENT_DYNAMIC
Adam Ford70c8f052018-02-06 12:14:28 -060020 select LIB_UUID
AKASHI Takahiroae18a672022-04-19 10:01:56 +090021 imply PARTITION_UUIDS
Heinrich Schuchardt9e18bfa2019-01-22 21:35:23 +010022 select REGEX
Heinrich Schuchardt6c46aaa2020-03-21 20:45:50 +010023 imply FAT
24 imply FAT_WRITE
Heinrich Schuchardt29db4c52019-12-04 22:58:58 +010025 imply USB_KEYBOARD_FN_KEYS
Heinrich Schuchardt8a7514a2020-01-15 00:49:35 +010026 imply VIDEO_ANSI
Alexander Graf67ee7052016-03-04 01:10:07 +010027 help
Heinrich Schuchardt96b236a2019-05-11 10:27:58 +020028 Select this option if you want to run UEFI applications (like GNU
29 GRUB or iPXE) on top of U-Boot. If this option is enabled, U-Boot
30 will expose the UEFI API to a loaded application, enabling it to
31 reuse U-Boot's device drivers.
Alexander Graf7c00a3c2016-05-11 18:25:48 +020032
Heinrich Schuchardt0cbab582019-05-08 23:17:38 +020033if EFI_LOADER
34
Heinrich Schuchardtb2625e82021-01-15 19:02:50 +010035config CMD_BOOTEFI_BOOTMGR
36 bool "UEFI Boot Manager"
37 default y
Simon Glass4f8633d2022-07-30 15:52:21 -060038 select BOOTMETH_GLOBAL if BOOTSTD
Heinrich Schuchardtb2625e82021-01-15 19:02:50 +010039 help
40 Select this option if you want to select the UEFI binary to be booted
41 via UEFI variables Boot####, BootOrder, and BootNext. This enables the
42 'bootefi bootmgr' command.
43
Heinrich Schuchardt41bc6012020-07-14 19:18:33 +020044choice
45 prompt "Store for non-volatile UEFI variables"
46 default EFI_VARIABLE_FILE_STORE
47 help
48 Select where non-volatile UEFI variables shall be stored.
49
Heinrich Schuchardt09a8d502020-03-19 18:21:58 +000050config EFI_VARIABLE_FILE_STORE
51 bool "Store non-volatile UEFI variables as file"
52 depends on FAT_WRITE
Heinrich Schuchardt41bc6012020-07-14 19:18:33 +020053 help
54 Select this option if you want non-volatile UEFI variables to be
55 stored as file /ubootefi.var on the EFI system partition.
56
57config EFI_MM_COMM_TEE
Abdellatif El Khlifi805b3a12023-07-13 14:28:46 +010058 bool "UEFI variables storage service via the trusted world"
59 select ARM_FFA_TRANSPORT
60 select TEE
61 select OPTEE
Heinrich Schuchardt09a8d502020-03-19 18:21:58 +000062 help
Abdellatif El Khlifi805b3a12023-07-13 14:28:46 +010063 Allowing access to the MM SP services (SPs such as StandAlonneMM, smm-gateway).
64 When using the u-boot OP-TEE driver, StandAlonneMM is supported.
65 When using the u-boot FF-A driver any MM SP is supported.
66
Heinrich Schuchardt41bc6012020-07-14 19:18:33 +020067 If OP-TEE is present and running StandAloneMM, dispatch all UEFI
68 variable related operations to that. The application will verify,
69 authenticate and store the variables on an RPMB.
70
Abdellatif El Khlifi805b3a12023-07-13 14:28:46 +010071 When ARM_FFA_TRANSPORT is used, dispatch all UEFI variable related
72 operations to the MM SP running in the secure world.
73 A door bell mechanism is used to notify the SP when there is data in the shared
74 MM buffer. The data is copied by u-boot to the shared buffer before issuing
75 the door bell event.
76
77config FFA_SHARED_MM_BUF_SIZE
78 int "Memory size of the shared MM communication buffer"
79 default 0
80 depends on EFI_MM_COMM_TEE
81 help
82 This defines the size in bytes of the memory area reserved for the shared
83 buffer used for communication between the MM feature in U-Boot and
84 the MM SP in secure world.
85 The size of the memory region must be a multiple of the size of the maximum
86 translation granule size that is specified in the ID_AA64MMFR0_EL1 System register.
87 It is assumed that the MM SP knows the size of the shared MM communication buffer.
88
89config FFA_SHARED_MM_BUF_OFFSET
90 int "Data offset in the shared MM communication buffer"
91 default 0
92 depends on EFI_MM_COMM_TEE
93 help
94 This defines the offset in bytes of the data read or written to in the shared
95 buffer by the MM SP.
96
97config FFA_SHARED_MM_BUF_ADDR
98 hex "Define the address of the shared MM communication buffer"
99 default 0x0
100 depends on EFI_MM_COMM_TEE
101 help
102 This defines the address of the shared MM communication buffer
103 used for communication between the MM feature in U-Boot and
104 the MM SP in secure world.
105 It is assumed that the MM SP knows the address of the shared MM communication buffer.
106
Tom Saeger79696ce2022-03-22 15:21:10 -0600107config EFI_VARIABLE_NO_STORE
108 bool "Don't persist non-volatile UEFI variables"
109 help
110 If you choose this option, non-volatile variables cannot be persisted.
111 You could still provide non-volatile variables via
112 EFI_VARIABLES_PRESEED.
113
Heinrich Schuchardt41bc6012020-07-14 19:18:33 +0200114endchoice
Heinrich Schuchardt09a8d502020-03-19 18:21:58 +0000115
Heinrich Schuchardt4b7d5c12020-07-14 21:25:28 +0200116config EFI_VARIABLES_PRESEED
117 bool "Initial values for UEFI variables"
Tom Saeger79696ce2022-03-22 15:21:10 -0600118 depends on !EFI_MM_COMM_TEE
Heinrich Schuchardt4b7d5c12020-07-14 21:25:28 +0200119 help
120 Include a file with the initial values for non-volatile UEFI variables
121 into the U-Boot binary. If this configuration option is set, changes
122 to authentication related variables (PK, KEK, db, dbx) are not
123 allowed.
124
125if EFI_VARIABLES_PRESEED
126
127config EFI_VAR_SEED_FILE
128 string "File with initial values of non-volatile UEFI variables"
129 default ubootefi.var
130 help
131 File with initial values of non-volatile UEFI variables. The file must
132 be in the same format as the storage in the EFI system partition. The
133 easiest way to create it is by setting the non-volatile variables in
134 U-Boot. If a relative file path is used, it is relative to the source
135 directory.
136
137endif
138
Heinrich Schuchardt12f18612020-12-20 11:05:38 +0100139config EFI_VAR_BUF_SIZE
140 int "Memory size of the UEFI variable store"
Alper Nebi Yasak7107d312023-07-08 18:21:12 +0300141 default 16384 if EFI_MM_COMM_TEE
142 default 65536
Heinrich Schuchardt12f18612020-12-20 11:05:38 +0100143 range 4096 2147483647
144 help
145 This defines the size in bytes of the memory area reserved for keeping
146 UEFI variables.
147
148 When using StandAloneMM (CONFIG_EFI_MM_COMM_TEE=y) this value should
149 match the value of PcdFlashNvStorageVariableSize used to compile the
150 StandAloneMM module.
151
Alper Nebi Yasak7107d312023-07-08 18:21:12 +0300152 Minimum 4096, default 65536, or 16384 when using StandAloneMM.
Heinrich Schuchardt12f18612020-12-20 11:05:38 +0100153
Heinrich Schuchardtf2856ad2019-05-31 22:56:02 +0200154config EFI_GET_TIME
155 bool "GetTime() runtime service"
156 depends on DM_RTC
157 default y
158 help
159 Provide the GetTime() runtime service at boottime. This service
160 can be used by an EFI application to read the real time clock.
161
162config EFI_SET_TIME
163 bool "SetTime() runtime service"
164 depends on EFI_GET_TIME
Heinrich Schuchardt8da46252020-11-21 20:52:18 +0100165 default y if ARCH_QEMU || SANDBOX
Heinrich Schuchardtf2856ad2019-05-31 22:56:02 +0200166 help
167 Provide the SetTime() runtime service at boottime. This service
168 can be used by an EFI application to adjust the real time clock.
169
Jan Kiszkad4d0fec2023-01-18 22:24:59 +0100170config EFI_SCROLL_ON_CLEAR_SCREEN
171 bool "Avoid overwriting previous output on clear screen"
172 help
173 Instead of erasing the screen content when the console screen should
174 be cleared, emit blank new lines so that previous output is scrolled
175 out of sight rather than overwritten. On serial consoles this allows
176 to capture complete boot logs (except for interactive menus etc.)
177 and can ease debugging related issues.
178
AKASHI Takahiro473d9b32020-11-17 09:27:55 +0900179config EFI_HAVE_CAPSULE_SUPPORT
180 bool
181
182config EFI_RUNTIME_UPDATE_CAPSULE
183 bool "UpdateCapsule() runtime service"
AKASHI Takahiro473d9b32020-11-17 09:27:55 +0900184 select EFI_HAVE_CAPSULE_SUPPORT
185 help
186 Select this option if you want to use UpdateCapsule and
187 QueryCapsuleCapabilities API's.
188
AKASHI Takahiro45b819542020-11-17 09:27:56 +0900189config EFI_CAPSULE_ON_DISK
190 bool "Enable capsule-on-disk support"
Masami Hiramatsuff744862022-03-21 22:37:56 +0900191 depends on SYSRESET
AKASHI Takahiro45b819542020-11-17 09:27:56 +0900192 select EFI_HAVE_CAPSULE_SUPPORT
AKASHI Takahiro45b819542020-11-17 09:27:56 +0900193 help
194 Select this option if you want to use capsule-on-disk feature,
195 that is, capsules can be fetched and executed from files
196 under a specific directory on UEFI system partition instead of
197 via UpdateCapsule API.
198
Ilias Apalodimasa38d0cb2021-06-29 07:55:51 +0300199config EFI_IGNORE_OSINDICATIONS
200 bool "Ignore OsIndications for CapsuleUpdate on-disk"
201 depends on EFI_CAPSULE_ON_DISK
Ilias Apalodimasa38d0cb2021-06-29 07:55:51 +0300202 help
203 There are boards where U-Boot does not support SetVariable at runtime.
204 Select this option if you want to use the capsule-on-disk feature
205 without setting the EFI_OS_INDICATIONS_FILE_CAPSULE_DELIVERY_SUPPORTED
206 flag in variable OsIndications.
207
AKASHI Takahiro45b819542020-11-17 09:27:56 +0900208config EFI_CAPSULE_ON_DISK_EARLY
209 bool "Initiate capsule-on-disk at U-Boot boottime"
210 depends on EFI_CAPSULE_ON_DISK
AKASHI Takahiro45b819542020-11-17 09:27:56 +0900211 help
212 Normally, without this option enabled, capsules will be
213 executed only at the first time of invoking one of efi command.
214 If this option is enabled, capsules will be enforced to be
215 executed as part of U-Boot initialisation so that they will
216 surely take place whatever is set to distro_bootcmd.
217
AKASHI Takahiro7ff3f3c2020-11-17 09:28:00 +0900218config EFI_CAPSULE_FIRMWARE
219 bool
AKASHI Takahiro7ff3f3c2020-11-17 09:28:00 +0900220
AKASHI Takahiro0d963782020-11-30 18:12:11 +0900221config EFI_CAPSULE_FIRMWARE_MANAGEMENT
222 bool "Capsule: Firmware Management Protocol"
223 depends on EFI_HAVE_CAPSULE_SUPPORT
224 default y
225 help
226 Select this option if you want to enable capsule-based
227 firmware update using Firmware Management Protocol.
228
Ilias Apalodimas967334d2021-06-22 17:38:52 +0300229config EFI_CAPSULE_FIRMWARE_FIT
230 bool "FMP driver for FIT images"
231 depends on FIT
232 depends on EFI_CAPSULE_FIRMWARE_MANAGEMENT
233 select UPDATE_FIT
234 select DFU
Sughosh Ganua1d9f672022-04-15 11:29:37 +0530235 select SET_DFU_ALT_INFO
Ilias Apalodimas967334d2021-06-22 17:38:52 +0300236 select EFI_CAPSULE_FIRMWARE
237 help
238 Select this option if you want to enable firmware management protocol
239 driver for FIT image
240
241config EFI_CAPSULE_FIRMWARE_RAW
242 bool "FMP driver for raw images"
243 depends on EFI_CAPSULE_FIRMWARE_MANAGEMENT
244 depends on SANDBOX || (!SANDBOX && !EFI_CAPSULE_FIRMWARE_FIT)
245 select DFU_WRITE_ALT
246 select DFU
Sughosh Ganua1d9f672022-04-15 11:29:37 +0530247 select SET_DFU_ALT_INFO
Ilias Apalodimas967334d2021-06-22 17:38:52 +0300248 select EFI_CAPSULE_FIRMWARE
249 help
250 Select this option if you want to enable firmware management protocol
251 driver for raw image
252
Sughosh Ganu586bb982020-12-30 19:27:09 +0530253config EFI_CAPSULE_AUTHENTICATE
254 bool "Update Capsule authentication"
255 depends on EFI_CAPSULE_FIRMWARE
256 depends on EFI_CAPSULE_ON_DISK
257 depends on EFI_CAPSULE_FIRMWARE_MANAGEMENT
Alexandru Gagniuc1a69f4d2021-05-24 14:28:57 -0500258 select HASH
Sughosh Ganu586bb982020-12-30 19:27:09 +0530259 select SHA256
260 select RSA
261 select RSA_VERIFY
262 select RSA_VERIFY_WITH_PKEY
263 select X509_CERTIFICATE_PARSER
264 select PKCS7_MESSAGE_PARSER
265 select PKCS7_VERIFY
Sughosh Ganu3f5318f2021-04-07 17:23:31 +0530266 select IMAGE_SIGN_INFO
Masahisa Kojima915e4272021-05-14 09:53:36 +0900267 select EFI_SIGNATURE_SUPPORT
Sughosh Ganu586bb982020-12-30 19:27:09 +0530268 help
269 Select this option if you want to enable capsule
270 authentication
271
Etienne Carriere6326e912023-02-16 18:21:41 +0100272config EFI_CAPSULE_MAX
273 int "Max value for capsule index"
274 default 15
275 range 0 65535
276 help
277 Select the max capsule index value used for capsule report
278 variables. This value is used to create CapsuleMax variable.
279
Heinrich Schuchardt3db35912019-05-11 09:53:33 +0200280config EFI_DEVICE_PATH_TO_TEXT
281 bool "Device path to text protocol"
282 default y
283 help
284 The device path to text protocol converts device nodes and paths to
285 human readable strings.
286
Heinrich Schuchardt1cb1a9d2021-01-16 09:44:25 +0100287config EFI_DEVICE_PATH_UTIL
288 bool "Device path utilities protocol"
289 default y
290 help
291 The device path utilities protocol creates and manipulates device
292 paths and device nodes. It is required to run the EFI Shell.
293
Heinrich Schuchardt0404b282021-01-16 09:33:24 +0100294config EFI_DT_FIXUP
295 bool "Device tree fixup protocol"
296 depends on !GENERATE_ACPI_TABLE
297 default y
298 help
299 The EFI device-tree fix-up protocol provides a function to let the
300 firmware apply fix-ups. This may be used by boot loaders.
301
Heinrich Schuchardt0cbab582019-05-08 23:17:38 +0200302config EFI_LOADER_HII
303 bool "HII protocols"
304 default y
305 help
306 The Human Interface Infrastructure is a complicated framework that
307 allows UEFI applications to draw fancy menus and hook strings using
308 a translation framework.
309
310 U-Boot implements enough of its features to be able to run the UEFI
311 Shell, but not more than that.
312
Heinrich Schuchardtb3258842019-05-16 07:52:58 +0200313config EFI_UNICODE_COLLATION_PROTOCOL2
Heinrich Schuchardt532fec72019-05-08 23:24:26 +0200314 bool "Unicode collation protocol"
315 default y
316 help
317 The Unicode collation protocol is used for lexical comparisons. It is
318 required to run the UEFI shell.
319
Heinrich Schuchardtb3258842019-05-16 07:52:58 +0200320if EFI_UNICODE_COLLATION_PROTOCOL2
Heinrich Schuchardt532fec72019-05-08 23:24:26 +0200321
Heinrich Schuchardt58ddcd32018-09-04 19:34:56 +0200322config EFI_UNICODE_CAPITALIZATION
323 bool "Support Unicode capitalization"
Heinrich Schuchardt58ddcd32018-09-04 19:34:56 +0200324 default y
325 help
326 Select this option to enable correct handling of the capitalization of
327 Unicode codepoints in the range 0x0000-0xffff. If this option is not
328 set, only the the correct handling of the letters of the codepage
329 used by the FAT file system is ensured.
330
Heinrich Schuchardt532fec72019-05-08 23:24:26 +0200331endif
332
Alexander Graf7c00a3c2016-05-11 18:25:48 +0200333config EFI_LOADER_BOUNCE_BUFFER
334 bool "EFI Applications use bounce buffers for DMA operations"
Heinrich Schuchardt0cbab582019-05-08 23:17:38 +0200335 depends on ARM64
Alexander Graf7c00a3c2016-05-11 18:25:48 +0200336 help
337 Some hardware does not support DMA to full 64bit addresses. For this
338 hardware we can create a bounce buffer so that payloads don't have to
339 worry about platform details.
Alexander Graf44be5da2019-02-11 15:24:00 +0100340
Heinrich Schuchardt0cbab582019-05-08 23:17:38 +0200341config EFI_PLATFORM_LANG_CODES
342 string "Language codes supported by firmware"
343 default "en-US"
Alexander Graf44be5da2019-02-11 15:24:00 +0100344 help
Heinrich Schuchardt0cbab582019-05-08 23:17:38 +0200345 This value is used to initialize the PlatformLangCodes variable. Its
346 value is a semicolon (;) separated list of language codes in native
347 RFC 4646 format, e.g. "en-US;de-DE". The first language code is used
348 to initialize the PlatformLang variable.
Alexander Graf44be5da2019-02-11 15:24:00 +0100349
Heinrich Schuchardt05874fb2019-07-05 18:12:16 +0200350config EFI_HAVE_RUNTIME_RESET
351 # bool "Reset runtime service is available"
352 bool
353 default y
Heinrich Schuchardt43eb8722020-12-02 16:22:11 +0100354 depends on ARCH_BCM283X || FSL_LAYERSCAPE || PSCI_RESET || \
355 SANDBOX || SYSRESET_X86
Heinrich Schuchardt05874fb2019-07-05 18:12:16 +0200356
Heinrich Schuchardt149d5d42019-07-22 22:04:36 +0200357config EFI_GRUB_ARM32_WORKAROUND
358 bool "Workaround for GRUB on 32bit ARM"
Heinrich Schuchardt79979602021-03-03 14:05:05 +0100359 default n if ARCH_BCM283X || ARCH_SUNXI || ARCH_QEMU
Heinrich Schuchardt149d5d42019-07-22 22:04:36 +0200360 default y
361 depends on ARM && !ARM64
362 help
363 GRUB prior to version 2.04 requires U-Boot to disable caches. This
364 workaround currently is also needed on systems with caches that
365 cannot be managed via CP15.
Sughosh Ganu7064a5d2019-12-29 00:01:05 +0530366
367config EFI_RNG_PROTOCOL
368 bool "EFI_RNG_PROTOCOL support"
369 depends on DM_RNG
Peter Robinsonfa497522020-04-01 11:15:01 +0100370 default y
Sughosh Ganu7064a5d2019-12-29 00:01:05 +0530371 help
Heinrich Schuchardt7bcc7fc2020-02-14 23:28:58 +0100372 Provide a EFI_RNG_PROTOCOL implementation using the hardware random
373 number generator of the platform.
Sughosh Ganu7064a5d2019-12-29 00:01:05 +0530374
Ilias Apalodimas590fef62020-11-11 11:18:11 +0200375config EFI_TCG2_PROTOCOL
376 bool "EFI_TCG2_PROTOCOL support"
Ilias Apalodimascc29c9b2021-05-11 14:40:58 +0300377 default y
Ilias Apalodimas590fef62020-11-11 11:18:11 +0200378 depends on TPM_V2
Masahisa Kojima0fd43792021-12-07 14:15:31 +0900379 # Sandbox TPM currently fails on GetCapabilities needed for TCG2
380 depends on !SANDBOX
Ilias Apalodimascc29c9b2021-05-11 14:40:58 +0300381 select SHA1
382 select SHA256
Ilias Apalodimascc29c9b2021-05-11 14:40:58 +0300383 select SHA384
384 select SHA512
Masahisa Kojima70be5a62021-05-26 12:09:58 +0900385 select HASH
Masahisa Kojimacd1fe7d2021-10-26 17:27:24 +0900386 select SMBIOS_PARSER
Ilias Apalodimas590fef62020-11-11 11:18:11 +0200387 help
388 Provide a EFI_TCG2_PROTOCOL implementation using the TPM hardware
389 of the platform.
390
Ilias Apalodimas967650d2020-11-30 11:47:40 +0200391config EFI_TCG2_PROTOCOL_EVENTLOG_SIZE
392 int "EFI_TCG2_PROTOCOL EventLog size"
393 depends on EFI_TCG2_PROTOCOL
Masahisa Kojima8db8a962021-07-14 22:00:01 +0900394 default 65536
Ilias Apalodimas967650d2020-11-30 11:47:40 +0200395 help
396 Define the size of the EventLog for EFI_TCG2_PROTOCOL. Note that
397 this is going to be allocated twice. One for the eventlog it self
398 and one for the configuration table that is required from the spec
399
Etienne Carriereb9064352023-02-16 17:29:48 +0100400config EFI_TCG2_PROTOCOL_MEASURE_DTB
401 bool "Measure DTB with EFI_TCG2_PROTOCOL"
402 depends on EFI_TCG2_PROTOCOL
403 help
404 When enabled, the DTB image passed to the booted EFI image is
405 measured using the EFI TCG2 protocol. Do not enable this feature if
406 the passed DTB contains data that change across platform reboots
407 and cannot be used has a predictable measurement. Otherwise
408 this feature allows better measurement of the system boot
409 sequence.
410
Ilias Apalodimas3510ba72020-02-21 09:55:45 +0200411config EFI_LOAD_FILE2_INITRD
412 bool "EFI_FILE_LOAD2_PROTOCOL for Linux initial ramdisk"
Ilias Apalodimasb307e3d2021-03-17 21:55:00 +0200413 default y
Ilias Apalodimas3510ba72020-02-21 09:55:45 +0200414 help
Ilias Apalodimasb307e3d2021-03-17 21:55:00 +0200415 Linux v5.7 and later can make use of this option. If the boot option
416 selected by the UEFI boot manager specifies an existing file to be used
417 as initial RAM disk, a Linux specific Load File2 protocol will be
418 installed and Linux 5.7+ will ignore any initrd=<ramdisk> command line
419 argument.
Ilias Apalodimas3510ba72020-02-21 09:55:45 +0200420
AKASHI Takahiro1900a3b2020-04-14 11:51:38 +0900421config EFI_SECURE_BOOT
422 bool "Enable EFI secure boot support"
Simon Glassd898dcb2021-09-25 19:43:29 -0600423 depends on EFI_LOADER && FIT_SIGNATURE
Alexandru Gagniuc1a69f4d2021-05-24 14:28:57 -0500424 select HASH
AKASHI Takahiro1900a3b2020-04-14 11:51:38 +0900425 select SHA256
426 select RSA
427 select RSA_VERIFY_WITH_PKEY
428 select IMAGE_SIGN_INFO
429 select ASYMMETRIC_KEY_TYPE
430 select ASYMMETRIC_PUBLIC_KEY_SUBTYPE
431 select X509_CERTIFICATE_PARSER
432 select PKCS7_MESSAGE_PARSER
AKASHI Takahiro14afd062020-07-21 19:35:22 +0900433 select PKCS7_VERIFY
AKASHI Takahiroe669c2d2022-07-05 14:48:14 +0900434 select MSCODE_PARSER
Masahisa Kojima915e4272021-05-14 09:53:36 +0900435 select EFI_SIGNATURE_SUPPORT
AKASHI Takahiro1900a3b2020-04-14 11:51:38 +0900436 help
437 Select this option to enable EFI secure boot support.
438 Once SecureBoot mode is enforced, any EFI binary can run only if
439 it is signed with a trusted key. To do that, you need to install,
440 at least, PK, KEK and db.
441
Masahisa Kojima915e4272021-05-14 09:53:36 +0900442config EFI_SIGNATURE_SUPPORT
443 bool
444
Jose Marinhoebb61ee2021-03-02 17:26:38 +0000445config EFI_ESRT
446 bool "Enable the UEFI ESRT generation"
447 depends on EFI_CAPSULE_FIRMWARE_MANAGEMENT
448 default y
449 help
450 Enabling this option creates the ESRT UEFI system table.
451
Jose Marinhoff72cb32021-12-23 14:51:07 +0000452config EFI_ECPT
453 bool "Enable the UEFI ECPT generation"
454 default y
455 help
456 Enabling this option created the ECPT UEFI table.
457
Vincent Stehléc53cec62022-12-16 17:55:04 +0100458config EFI_EBBR_2_1_CONFORMANCE
459 bool "Add the EBBRv2.1 conformance entry to the ECPT table"
Jose Marinhoe3b7c9b2021-12-17 12:55:05 +0000460 depends on EFI_ECPT
461 depends on EFI_LOADER_HII
462 depends on EFI_RISCV_BOOT_PROTOCOL || !RISCV
463 depends on EFI_RNG_PROTOCOL || !DM_RNG
464 depends on EFI_UNICODE_COLLATION_PROTOCOL2
465 default y
466 help
Vincent Stehléc53cec62022-12-16 17:55:04 +0100467 Enabling this option adds the EBBRv2.1 conformance entry to the ECPT UEFI table.
Jose Marinhoe3b7c9b2021-12-17 12:55:05 +0000468
Sunil V L279d1c82022-01-28 20:48:44 +0530469config EFI_RISCV_BOOT_PROTOCOL
470 bool "RISCV_EFI_BOOT_PROTOCOL support"
471 default y
472 depends on RISCV
473 help
474 The EFI_RISCV_BOOT_PROTOCOL is used to transfer the boot hart ID
475 to the next boot stage. It should be enabled as it is meant to
476 replace the transfer via the device-tree. The latter is not
477 possible on systems using ACPI.
478
Heinrich Schuchardt0cbab582019-05-08 23:17:38 +0200479endif