2 bool "Support running UEFI applications"
3 depends on OF_LIBFDT && ( \
4 ARM && (SYS_CPU = arm1136 || \
8 X86 || RISCV || SANDBOX)
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
13 default y if !ARM || SYS_CPU = armv7 || SYS_CPU = armv8
15 select HAVE_BLOCK_DEVICE
17 imply CFB_CONSOLE_ANSI
18 imply USB_KEYBOARD_FN_KEYS
21 Select this option if you want to run UEFI applications (like GNU
22 GRUB or iPXE) on top of U-Boot. If this option is enabled, U-Boot
23 will expose the UEFI API to a loaded application, enabling it to
24 reuse U-Boot's device drivers.
29 bool "GetTime() runtime service"
33 Provide the GetTime() runtime service at boottime. This service
34 can be used by an EFI application to read the real time clock.
37 bool "SetTime() runtime service"
38 depends on EFI_GET_TIME
41 Provide the SetTime() runtime service at boottime. This service
42 can be used by an EFI application to adjust the real time clock.
44 config EFI_DEVICE_PATH_TO_TEXT
45 bool "Device path to text protocol"
48 The device path to text protocol converts device nodes and paths to
49 human readable strings.
55 The Human Interface Infrastructure is a complicated framework that
56 allows UEFI applications to draw fancy menus and hook strings using
57 a translation framework.
59 U-Boot implements enough of its features to be able to run the UEFI
60 Shell, but not more than that.
62 config EFI_UNICODE_COLLATION_PROTOCOL2
63 bool "Unicode collation protocol"
66 The Unicode collation protocol is used for lexical comparisons. It is
67 required to run the UEFI shell.
69 if EFI_UNICODE_COLLATION_PROTOCOL2
71 config EFI_UNICODE_CAPITALIZATION
72 bool "Support Unicode capitalization"
75 Select this option to enable correct handling of the capitalization of
76 Unicode codepoints in the range 0x0000-0xffff. If this option is not
77 set, only the the correct handling of the letters of the codepage
78 used by the FAT file system is ensured.
80 config EFI_UNICODE_COLLATION_PROTOCOL
81 bool "Deprecated version of the Unicode collation protocol"
84 In EFI 1.10 a version of the Unicode collation protocol using ISO
85 639-2 language codes existed. This protocol is not part of the UEFI
86 specification any longer. Unfortunately it is required to run the
87 UEFI Self Certification Test (SCT) II, version 2.6, 2017.
89 Choose this option for testing only. It is bound to be removed.
93 config EFI_LOADER_BOUNCE_BUFFER
94 bool "EFI Applications use bounce buffers for DMA operations"
98 Some hardware does not support DMA to full 64bit addresses. For this
99 hardware we can create a bounce buffer so that payloads don't have to
100 worry about platform details.
102 config EFI_PLATFORM_LANG_CODES
103 string "Language codes supported by firmware"
106 This value is used to initialize the PlatformLangCodes variable. Its
107 value is a semicolon (;) separated list of language codes in native
108 RFC 4646 format, e.g. "en-US;de-DE". The first language code is used
109 to initialize the PlatformLang variable.
111 config EFI_HAVE_RUNTIME_RESET
112 # bool "Reset runtime service is available"
115 depends on ARCH_BCM283X || FSL_LAYERSCAPE || PSCI_RESET || SYSRESET_X86
117 config EFI_GRUB_ARM32_WORKAROUND
118 bool "Workaround for GRUB on 32bit ARM"
120 depends on ARM && !ARM64
122 GRUB prior to version 2.04 requires U-Boot to disable caches. This
123 workaround currently is also needed on systems with caches that
124 cannot be managed via CP15.
126 config EFI_RNG_PROTOCOL
127 bool "EFI_RNG_PROTOCOL support"
131 Provide a EFI_RNG_PROTOCOL implementation using the hardware random
132 number generator of the platform.
134 config EFI_LOAD_FILE2_INITRD
135 bool "EFI_FILE_LOAD2_PROTOCOL for Linux initial ramdisk"
138 Expose a EFI_FILE_LOAD2_PROTOCOL that the Linux UEFI stub can
139 use to load the initial ramdisk. Once this is enabled using
140 initrd=<ramdisk> will stop working.
142 config EFI_INITRD_FILESPEC
143 string "initramfs path"
144 default "host 0:1 initrd"
145 depends on EFI_LOAD_FILE2_INITRD
147 Full path of the initramfs file, e.g. mmc 0:2 initramfs.cpio.gz.
149 config EFI_SECURE_BOOT
150 bool "Enable EFI secure boot support"
151 depends on EFI_LOADER
154 select RSA_VERIFY_WITH_PKEY
155 select IMAGE_SIGN_INFO
156 select ASYMMETRIC_KEY_TYPE
157 select ASYMMETRIC_PUBLIC_KEY_SUBTYPE
158 select X509_CERTIFICATE_PARSER
159 select PKCS7_MESSAGE_PARSER
162 Select this option to enable EFI secure boot support.
163 Once SecureBoot mode is enforced, any EFI binary can run only if
164 it is signed with a trusted key. To do that, you need to install,
165 at least, PK, KEK and db.