Alexander Graf | 67ee705 | 2016-03-04 01:10:07 +0100 | [diff] [blame] | 1 | config EFI_LOADER |
Heinrich Schuchardt | 96b236a | 2019-05-11 10:27:58 +0200 | [diff] [blame] | 2 | bool "Support running UEFI applications" |
Heinrich Schuchardt | 79cea67 | 2019-11-17 10:44:16 +0100 | [diff] [blame] | 3 | depends on OF_LIBFDT && ( \ |
Heinrich Schuchardt | 30c3a5f | 2019-11-19 04:19:09 +0100 | [diff] [blame] | 4 | ARM && (SYS_CPU = arm1136 || \ |
| 5 | SYS_CPU = arm1176 || \ |
| 6 | SYS_CPU = armv7 || \ |
| 7 | SYS_CPU = armv8) || \ |
Heinrich Schuchardt | 79cea67 | 2019-11-17 10:44:16 +0100 | [diff] [blame] | 8 | X86 || RISCV || SANDBOX) |
Alexander Graf | 5e24717 | 2018-01-24 14:54:21 +0100 | [diff] [blame] | 9 | # 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 Schuchardt | ac212dc | 2019-11-20 18:48:02 +0100 | [diff] [blame] | 13 | default y if !ARM || SYS_CPU = armv7 || SYS_CPU = armv8 |
Adam Ford | 70c8f05 | 2018-02-06 12:14:28 -0600 | [diff] [blame] | 14 | select LIB_UUID |
Adam Ford | b10ba90 | 2018-02-06 12:43:56 -0600 | [diff] [blame] | 15 | select HAVE_BLOCK_DEVICE |
Heinrich Schuchardt | 9e18bfa | 2019-01-22 21:35:23 +0100 | [diff] [blame] | 16 | select REGEX |
Heinrich Schuchardt | 35550cc | 2018-04-29 23:37:12 +0200 | [diff] [blame] | 17 | imply CFB_CONSOLE_ANSI |
Heinrich Schuchardt | 6c46aaa | 2020-03-21 20:45:50 +0100 | [diff] [blame] | 18 | imply FAT |
| 19 | imply FAT_WRITE |
Heinrich Schuchardt | 29db4c5 | 2019-12-04 22:58:58 +0100 | [diff] [blame] | 20 | imply USB_KEYBOARD_FN_KEYS |
Heinrich Schuchardt | 8a7514a | 2020-01-15 00:49:35 +0100 | [diff] [blame] | 21 | imply VIDEO_ANSI |
Alexander Graf | 67ee705 | 2016-03-04 01:10:07 +0100 | [diff] [blame] | 22 | help |
Heinrich Schuchardt | 96b236a | 2019-05-11 10:27:58 +0200 | [diff] [blame] | 23 | Select this option if you want to run UEFI applications (like GNU |
| 24 | GRUB or iPXE) on top of U-Boot. If this option is enabled, U-Boot |
| 25 | will expose the UEFI API to a loaded application, enabling it to |
| 26 | reuse U-Boot's device drivers. |
Alexander Graf | 7c00a3c | 2016-05-11 18:25:48 +0200 | [diff] [blame] | 27 | |
Heinrich Schuchardt | 0cbab58 | 2019-05-08 23:17:38 +0200 | [diff] [blame] | 28 | if EFI_LOADER |
| 29 | |
AKASHI Takahiro | 87942ac | 2020-10-29 13:47:45 +0900 | [diff] [blame] | 30 | config EFI_SETUP_EARLY |
| 31 | bool |
| 32 | default n |
| 33 | |
Heinrich Schuchardt | 41bc601 | 2020-07-14 19:18:33 +0200 | [diff] [blame] | 34 | choice |
| 35 | prompt "Store for non-volatile UEFI variables" |
| 36 | default EFI_VARIABLE_FILE_STORE |
| 37 | help |
| 38 | Select where non-volatile UEFI variables shall be stored. |
| 39 | |
Heinrich Schuchardt | 09a8d50 | 2020-03-19 18:21:58 +0000 | [diff] [blame] | 40 | config EFI_VARIABLE_FILE_STORE |
| 41 | bool "Store non-volatile UEFI variables as file" |
| 42 | depends on FAT_WRITE |
Heinrich Schuchardt | 41bc601 | 2020-07-14 19:18:33 +0200 | [diff] [blame] | 43 | help |
| 44 | Select this option if you want non-volatile UEFI variables to be |
| 45 | stored as file /ubootefi.var on the EFI system partition. |
| 46 | |
| 47 | config EFI_MM_COMM_TEE |
| 48 | bool "UEFI variables storage service via OP-TEE" |
| 49 | depends on OPTEE |
Heinrich Schuchardt | 09a8d50 | 2020-03-19 18:21:58 +0000 | [diff] [blame] | 50 | help |
Heinrich Schuchardt | 41bc601 | 2020-07-14 19:18:33 +0200 | [diff] [blame] | 51 | If OP-TEE is present and running StandAloneMM, dispatch all UEFI |
| 52 | variable related operations to that. The application will verify, |
| 53 | authenticate and store the variables on an RPMB. |
| 54 | |
| 55 | endchoice |
Heinrich Schuchardt | 09a8d50 | 2020-03-19 18:21:58 +0000 | [diff] [blame] | 56 | |
Heinrich Schuchardt | 4b7d5c1 | 2020-07-14 21:25:28 +0200 | [diff] [blame] | 57 | config EFI_VARIABLES_PRESEED |
| 58 | bool "Initial values for UEFI variables" |
| 59 | depends on EFI_VARIABLE_FILE_STORE |
| 60 | help |
| 61 | Include a file with the initial values for non-volatile UEFI variables |
| 62 | into the U-Boot binary. If this configuration option is set, changes |
| 63 | to authentication related variables (PK, KEK, db, dbx) are not |
| 64 | allowed. |
| 65 | |
| 66 | if EFI_VARIABLES_PRESEED |
| 67 | |
| 68 | config EFI_VAR_SEED_FILE |
| 69 | string "File with initial values of non-volatile UEFI variables" |
| 70 | default ubootefi.var |
| 71 | help |
| 72 | File with initial values of non-volatile UEFI variables. The file must |
| 73 | be in the same format as the storage in the EFI system partition. The |
| 74 | easiest way to create it is by setting the non-volatile variables in |
| 75 | U-Boot. If a relative file path is used, it is relative to the source |
| 76 | directory. |
| 77 | |
| 78 | endif |
| 79 | |
Heinrich Schuchardt | f2856ad | 2019-05-31 22:56:02 +0200 | [diff] [blame] | 80 | config EFI_GET_TIME |
| 81 | bool "GetTime() runtime service" |
| 82 | depends on DM_RTC |
| 83 | default y |
| 84 | help |
| 85 | Provide the GetTime() runtime service at boottime. This service |
| 86 | can be used by an EFI application to read the real time clock. |
| 87 | |
| 88 | config EFI_SET_TIME |
| 89 | bool "SetTime() runtime service" |
| 90 | depends on EFI_GET_TIME |
Heinrich Schuchardt | 8da4625 | 2020-11-21 20:52:18 +0100 | [diff] [blame] | 91 | default y if ARCH_QEMU || SANDBOX |
Heinrich Schuchardt | f2856ad | 2019-05-31 22:56:02 +0200 | [diff] [blame] | 92 | default n |
| 93 | help |
| 94 | Provide the SetTime() runtime service at boottime. This service |
| 95 | can be used by an EFI application to adjust the real time clock. |
| 96 | |
Heinrich Schuchardt | 3db3591 | 2019-05-11 09:53:33 +0200 | [diff] [blame] | 97 | config EFI_DEVICE_PATH_TO_TEXT |
| 98 | bool "Device path to text protocol" |
| 99 | default y |
| 100 | help |
| 101 | The device path to text protocol converts device nodes and paths to |
| 102 | human readable strings. |
| 103 | |
Heinrich Schuchardt | 0cbab58 | 2019-05-08 23:17:38 +0200 | [diff] [blame] | 104 | config EFI_LOADER_HII |
| 105 | bool "HII protocols" |
| 106 | default y |
| 107 | help |
| 108 | The Human Interface Infrastructure is a complicated framework that |
| 109 | allows UEFI applications to draw fancy menus and hook strings using |
| 110 | a translation framework. |
| 111 | |
| 112 | U-Boot implements enough of its features to be able to run the UEFI |
| 113 | Shell, but not more than that. |
| 114 | |
Heinrich Schuchardt | b325884 | 2019-05-16 07:52:58 +0200 | [diff] [blame] | 115 | config EFI_UNICODE_COLLATION_PROTOCOL2 |
Heinrich Schuchardt | 532fec7 | 2019-05-08 23:24:26 +0200 | [diff] [blame] | 116 | bool "Unicode collation protocol" |
| 117 | default y |
| 118 | help |
| 119 | The Unicode collation protocol is used for lexical comparisons. It is |
| 120 | required to run the UEFI shell. |
| 121 | |
Heinrich Schuchardt | b325884 | 2019-05-16 07:52:58 +0200 | [diff] [blame] | 122 | if EFI_UNICODE_COLLATION_PROTOCOL2 |
Heinrich Schuchardt | 532fec7 | 2019-05-08 23:24:26 +0200 | [diff] [blame] | 123 | |
Heinrich Schuchardt | 58ddcd3 | 2018-09-04 19:34:56 +0200 | [diff] [blame] | 124 | config EFI_UNICODE_CAPITALIZATION |
| 125 | bool "Support Unicode capitalization" |
Heinrich Schuchardt | 58ddcd3 | 2018-09-04 19:34:56 +0200 | [diff] [blame] | 126 | default y |
| 127 | help |
| 128 | Select this option to enable correct handling of the capitalization of |
| 129 | Unicode codepoints in the range 0x0000-0xffff. If this option is not |
| 130 | set, only the the correct handling of the letters of the codepage |
| 131 | used by the FAT file system is ensured. |
| 132 | |
Heinrich Schuchardt | 18ed8cf | 2019-05-16 18:19:00 +0200 | [diff] [blame] | 133 | config EFI_UNICODE_COLLATION_PROTOCOL |
| 134 | bool "Deprecated version of the Unicode collation protocol" |
| 135 | default n |
| 136 | help |
| 137 | In EFI 1.10 a version of the Unicode collation protocol using ISO |
| 138 | 639-2 language codes existed. This protocol is not part of the UEFI |
| 139 | specification any longer. Unfortunately it is required to run the |
| 140 | UEFI Self Certification Test (SCT) II, version 2.6, 2017. |
| 141 | |
| 142 | Choose this option for testing only. It is bound to be removed. |
| 143 | |
Heinrich Schuchardt | 532fec7 | 2019-05-08 23:24:26 +0200 | [diff] [blame] | 144 | endif |
| 145 | |
Alexander Graf | 7c00a3c | 2016-05-11 18:25:48 +0200 | [diff] [blame] | 146 | config EFI_LOADER_BOUNCE_BUFFER |
| 147 | bool "EFI Applications use bounce buffers for DMA operations" |
Heinrich Schuchardt | 0cbab58 | 2019-05-08 23:17:38 +0200 | [diff] [blame] | 148 | depends on ARM64 |
Alexander Graf | 7c00a3c | 2016-05-11 18:25:48 +0200 | [diff] [blame] | 149 | default n |
| 150 | help |
| 151 | Some hardware does not support DMA to full 64bit addresses. For this |
| 152 | hardware we can create a bounce buffer so that payloads don't have to |
| 153 | worry about platform details. |
Alexander Graf | 44be5da | 2019-02-11 15:24:00 +0100 | [diff] [blame] | 154 | |
Heinrich Schuchardt | 0cbab58 | 2019-05-08 23:17:38 +0200 | [diff] [blame] | 155 | config EFI_PLATFORM_LANG_CODES |
| 156 | string "Language codes supported by firmware" |
| 157 | default "en-US" |
Alexander Graf | 44be5da | 2019-02-11 15:24:00 +0100 | [diff] [blame] | 158 | help |
Heinrich Schuchardt | 0cbab58 | 2019-05-08 23:17:38 +0200 | [diff] [blame] | 159 | This value is used to initialize the PlatformLangCodes variable. Its |
| 160 | value is a semicolon (;) separated list of language codes in native |
| 161 | RFC 4646 format, e.g. "en-US;de-DE". The first language code is used |
| 162 | to initialize the PlatformLang variable. |
Alexander Graf | 44be5da | 2019-02-11 15:24:00 +0100 | [diff] [blame] | 163 | |
Heinrich Schuchardt | 05874fb | 2019-07-05 18:12:16 +0200 | [diff] [blame] | 164 | config EFI_HAVE_RUNTIME_RESET |
| 165 | # bool "Reset runtime service is available" |
| 166 | bool |
| 167 | default y |
| 168 | depends on ARCH_BCM283X || FSL_LAYERSCAPE || PSCI_RESET || SYSRESET_X86 |
| 169 | |
Heinrich Schuchardt | 149d5d4 | 2019-07-22 22:04:36 +0200 | [diff] [blame] | 170 | config EFI_GRUB_ARM32_WORKAROUND |
| 171 | bool "Workaround for GRUB on 32bit ARM" |
Heinrich Schuchardt | 3354233 | 2020-09-17 19:09:23 +0200 | [diff] [blame] | 172 | default n if ARCH_QEMU |
Heinrich Schuchardt | 149d5d4 | 2019-07-22 22:04:36 +0200 | [diff] [blame] | 173 | default y |
| 174 | depends on ARM && !ARM64 |
| 175 | help |
| 176 | GRUB prior to version 2.04 requires U-Boot to disable caches. This |
| 177 | workaround currently is also needed on systems with caches that |
| 178 | cannot be managed via CP15. |
Sughosh Ganu | 7064a5d | 2019-12-29 00:01:05 +0530 | [diff] [blame] | 179 | |
| 180 | config EFI_RNG_PROTOCOL |
| 181 | bool "EFI_RNG_PROTOCOL support" |
| 182 | depends on DM_RNG |
Peter Robinson | fa49752 | 2020-04-01 11:15:01 +0100 | [diff] [blame] | 183 | default y |
Sughosh Ganu | 7064a5d | 2019-12-29 00:01:05 +0530 | [diff] [blame] | 184 | help |
Heinrich Schuchardt | 7bcc7fc | 2020-02-14 23:28:58 +0100 | [diff] [blame] | 185 | Provide a EFI_RNG_PROTOCOL implementation using the hardware random |
| 186 | number generator of the platform. |
Sughosh Ganu | 7064a5d | 2019-12-29 00:01:05 +0530 | [diff] [blame] | 187 | |
Ilias Apalodimas | 590fef6 | 2020-11-11 11:18:11 +0200 | [diff] [blame] | 188 | config EFI_TCG2_PROTOCOL |
| 189 | bool "EFI_TCG2_PROTOCOL support" |
| 190 | depends on TPM_V2 |
| 191 | help |
| 192 | Provide a EFI_TCG2_PROTOCOL implementation using the TPM hardware |
| 193 | of the platform. |
| 194 | |
Ilias Apalodimas | 3510ba7 | 2020-02-21 09:55:45 +0200 | [diff] [blame] | 195 | config EFI_LOAD_FILE2_INITRD |
| 196 | bool "EFI_FILE_LOAD2_PROTOCOL for Linux initial ramdisk" |
| 197 | default n |
| 198 | help |
| 199 | Expose a EFI_FILE_LOAD2_PROTOCOL that the Linux UEFI stub can |
| 200 | use to load the initial ramdisk. Once this is enabled using |
| 201 | initrd=<ramdisk> will stop working. |
| 202 | |
| 203 | config EFI_INITRD_FILESPEC |
| 204 | string "initramfs path" |
| 205 | default "host 0:1 initrd" |
| 206 | depends on EFI_LOAD_FILE2_INITRD |
| 207 | help |
| 208 | Full path of the initramfs file, e.g. mmc 0:2 initramfs.cpio.gz. |
| 209 | |
AKASHI Takahiro | 1900a3b | 2020-04-14 11:51:38 +0900 | [diff] [blame] | 210 | config EFI_SECURE_BOOT |
| 211 | bool "Enable EFI secure boot support" |
| 212 | depends on EFI_LOADER |
| 213 | select SHA256 |
| 214 | select RSA |
| 215 | select RSA_VERIFY_WITH_PKEY |
| 216 | select IMAGE_SIGN_INFO |
| 217 | select ASYMMETRIC_KEY_TYPE |
| 218 | select ASYMMETRIC_PUBLIC_KEY_SUBTYPE |
| 219 | select X509_CERTIFICATE_PARSER |
| 220 | select PKCS7_MESSAGE_PARSER |
AKASHI Takahiro | 14afd06 | 2020-07-21 19:35:22 +0900 | [diff] [blame] | 221 | select PKCS7_VERIFY |
AKASHI Takahiro | 1900a3b | 2020-04-14 11:51:38 +0900 | [diff] [blame] | 222 | default n |
| 223 | help |
| 224 | Select this option to enable EFI secure boot support. |
| 225 | Once SecureBoot mode is enforced, any EFI binary can run only if |
| 226 | it is signed with a trusted key. To do that, you need to install, |
| 227 | at least, PK, KEK and db. |
| 228 | |
Heinrich Schuchardt | 0cbab58 | 2019-05-08 23:17:38 +0200 | [diff] [blame] | 229 | endif |