ARM: dts: at91: sama5d2_icp: fix i2c eeprom compatible
[platform/kernel/u-boot.git] / lib / efi_loader / Kconfig
1 config EFI_LOADER
2         bool "Support running UEFI applications"
3         depends on OF_LIBFDT && ( \
4                 ARM && (SYS_CPU = arm1136 || \
5                         SYS_CPU = arm1176 || \
6                         SYS_CPU = armv7   || \
7                         SYS_CPU = armv8)  || \
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
14         select LIB_UUID
15         select HAVE_BLOCK_DEVICE
16         select REGEX
17         imply CFB_CONSOLE_ANSI
18         imply FAT
19         imply FAT_WRITE
20         imply USB_KEYBOARD_FN_KEYS
21         imply VIDEO_ANSI
22         help
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.
27
28 if EFI_LOADER
29
30 config EFI_SETUP_EARLY
31         bool
32         default n
33
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
40 config EFI_VARIABLE_FILE_STORE
41         bool "Store non-volatile UEFI variables as file"
42         depends on FAT_WRITE
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
50         help
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
56
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
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
91         default n
92         help
93           Provide the SetTime() runtime service at boottime. This service
94           can be used by an EFI application to adjust the real time clock.
95
96 config EFI_DEVICE_PATH_TO_TEXT
97         bool "Device path to text protocol"
98         default y
99         help
100           The device path to text protocol converts device nodes and paths to
101           human readable strings.
102
103 config EFI_LOADER_HII
104         bool "HII protocols"
105         default y
106         help
107           The Human Interface Infrastructure is a complicated framework that
108           allows UEFI applications to draw fancy menus and hook strings using
109           a translation framework.
110
111           U-Boot implements enough of its features to be able to run the UEFI
112           Shell, but not more than that.
113
114 config EFI_UNICODE_COLLATION_PROTOCOL2
115         bool "Unicode collation protocol"
116         default y
117         help
118           The Unicode collation protocol is used for lexical comparisons. It is
119           required to run the UEFI shell.
120
121 if EFI_UNICODE_COLLATION_PROTOCOL2
122
123 config EFI_UNICODE_CAPITALIZATION
124         bool "Support Unicode capitalization"
125         default y
126         help
127           Select this option to enable correct handling of the capitalization of
128           Unicode codepoints in the range 0x0000-0xffff. If this option is not
129           set, only the the correct handling of the letters of the codepage
130           used by the FAT file system is ensured.
131
132 config EFI_UNICODE_COLLATION_PROTOCOL
133         bool "Deprecated version of the Unicode collation protocol"
134         default n
135         help
136           In EFI 1.10 a version of the Unicode collation protocol using ISO
137           639-2 language codes existed. This protocol is not part of the UEFI
138           specification any longer. Unfortunately it is required to run the
139           UEFI Self Certification Test (SCT) II, version 2.6, 2017.
140
141           Choose this option for testing only. It is bound to be removed.
142
143 endif
144
145 config EFI_LOADER_BOUNCE_BUFFER
146         bool "EFI Applications use bounce buffers for DMA operations"
147         depends on ARM64
148         default n
149         help
150           Some hardware does not support DMA to full 64bit addresses. For this
151           hardware we can create a bounce buffer so that payloads don't have to
152           worry about platform details.
153
154 config EFI_PLATFORM_LANG_CODES
155         string "Language codes supported by firmware"
156         default "en-US"
157         help
158           This value is used to initialize the PlatformLangCodes variable. Its
159           value is a semicolon (;) separated list of language codes in native
160           RFC 4646 format, e.g. "en-US;de-DE". The first language code is used
161           to initialize the PlatformLang variable.
162
163 config EFI_HAVE_RUNTIME_RESET
164         # bool "Reset runtime service is available"
165         bool
166         default y
167         depends on ARCH_BCM283X || FSL_LAYERSCAPE || PSCI_RESET || SYSRESET_X86
168
169 config EFI_GRUB_ARM32_WORKAROUND
170         bool "Workaround for GRUB on 32bit ARM"
171         default n if ARCH_QEMU
172         default y
173         depends on ARM && !ARM64
174         help
175           GRUB prior to version 2.04 requires U-Boot to disable caches. This
176           workaround currently is also needed on systems with caches that
177           cannot be managed via CP15.
178
179 config EFI_RNG_PROTOCOL
180         bool "EFI_RNG_PROTOCOL support"
181         depends on DM_RNG
182         default y
183         help
184           Provide a EFI_RNG_PROTOCOL implementation using the hardware random
185           number generator of the platform.
186
187 config EFI_LOAD_FILE2_INITRD
188         bool "EFI_FILE_LOAD2_PROTOCOL for Linux initial ramdisk"
189         default n
190         help
191           Expose a EFI_FILE_LOAD2_PROTOCOL that the Linux UEFI stub can
192           use to load the initial ramdisk. Once this is enabled using
193           initrd=<ramdisk> will stop working.
194
195 config EFI_INITRD_FILESPEC
196         string "initramfs path"
197         default "host 0:1 initrd"
198         depends on EFI_LOAD_FILE2_INITRD
199         help
200           Full path of the initramfs file, e.g. mmc 0:2 initramfs.cpio.gz.
201
202 config EFI_SECURE_BOOT
203         bool "Enable EFI secure boot support"
204         depends on EFI_LOADER
205         select SHA256
206         select RSA
207         select RSA_VERIFY_WITH_PKEY
208         select IMAGE_SIGN_INFO
209         select ASYMMETRIC_KEY_TYPE
210         select ASYMMETRIC_PUBLIC_KEY_SUBTYPE
211         select X509_CERTIFICATE_PARSER
212         select PKCS7_MESSAGE_PARSER
213         select PKCS7_VERIFY
214         default n
215         help
216           Select this option to enable EFI secure boot support.
217           Once SecureBoot mode is enforced, any EFI binary can run only if
218           it is signed with a trusted key. To do that, you need to install,
219           at least, PK, KEK and db.
220
221 endif