Kconfig 8.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271
  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. if EFI_LOADER
  28. config EFI_SETUP_EARLY
  29. bool
  30. default n
  31. choice
  32. prompt "Store for non-volatile UEFI variables"
  33. default EFI_VARIABLE_FILE_STORE
  34. help
  35. Select where non-volatile UEFI variables shall be stored.
  36. config EFI_VARIABLE_FILE_STORE
  37. bool "Store non-volatile UEFI variables as file"
  38. depends on FAT_WRITE
  39. help
  40. Select this option if you want non-volatile UEFI variables to be
  41. stored as file /ubootefi.var on the EFI system partition.
  42. config EFI_MM_COMM_TEE
  43. bool "UEFI variables storage service via OP-TEE"
  44. depends on OPTEE
  45. help
  46. If OP-TEE is present and running StandAloneMM, dispatch all UEFI
  47. variable related operations to that. The application will verify,
  48. authenticate and store the variables on an RPMB.
  49. endchoice
  50. config EFI_VARIABLES_PRESEED
  51. bool "Initial values for UEFI variables"
  52. depends on EFI_VARIABLE_FILE_STORE
  53. help
  54. Include a file with the initial values for non-volatile UEFI variables
  55. into the U-Boot binary. If this configuration option is set, changes
  56. to authentication related variables (PK, KEK, db, dbx) are not
  57. allowed.
  58. if EFI_VARIABLES_PRESEED
  59. config EFI_VAR_SEED_FILE
  60. string "File with initial values of non-volatile UEFI variables"
  61. default ubootefi.var
  62. help
  63. File with initial values of non-volatile UEFI variables. The file must
  64. be in the same format as the storage in the EFI system partition. The
  65. easiest way to create it is by setting the non-volatile variables in
  66. U-Boot. If a relative file path is used, it is relative to the source
  67. directory.
  68. endif
  69. config EFI_GET_TIME
  70. bool "GetTime() runtime service"
  71. depends on DM_RTC
  72. default y
  73. help
  74. Provide the GetTime() runtime service at boottime. This service
  75. can be used by an EFI application to read the real time clock.
  76. config EFI_SET_TIME
  77. bool "SetTime() runtime service"
  78. depends on EFI_GET_TIME
  79. default y if ARCH_QEMU || SANDBOX
  80. default n
  81. help
  82. Provide the SetTime() runtime service at boottime. This service
  83. can be used by an EFI application to adjust the real time clock.
  84. config EFI_HAVE_CAPSULE_SUPPORT
  85. bool
  86. config EFI_RUNTIME_UPDATE_CAPSULE
  87. bool "UpdateCapsule() runtime service"
  88. default n
  89. select EFI_HAVE_CAPSULE_SUPPORT
  90. help
  91. Select this option if you want to use UpdateCapsule and
  92. QueryCapsuleCapabilities API's.
  93. config EFI_CAPSULE_ON_DISK
  94. bool "Enable capsule-on-disk support"
  95. select EFI_HAVE_CAPSULE_SUPPORT
  96. default n
  97. help
  98. Select this option if you want to use capsule-on-disk feature,
  99. that is, capsules can be fetched and executed from files
  100. under a specific directory on UEFI system partition instead of
  101. via UpdateCapsule API.
  102. config EFI_CAPSULE_ON_DISK_EARLY
  103. bool "Initiate capsule-on-disk at U-Boot boottime"
  104. depends on EFI_CAPSULE_ON_DISK
  105. default n
  106. select EFI_SETUP_EARLY
  107. help
  108. Normally, without this option enabled, capsules will be
  109. executed only at the first time of invoking one of efi command.
  110. If this option is enabled, capsules will be enforced to be
  111. executed as part of U-Boot initialisation so that they will
  112. surely take place whatever is set to distro_bootcmd.
  113. config EFI_DEVICE_PATH_TO_TEXT
  114. bool "Device path to text protocol"
  115. default y
  116. help
  117. The device path to text protocol converts device nodes and paths to
  118. human readable strings.
  119. config EFI_LOADER_HII
  120. bool "HII protocols"
  121. default y
  122. help
  123. The Human Interface Infrastructure is a complicated framework that
  124. allows UEFI applications to draw fancy menus and hook strings using
  125. a translation framework.
  126. U-Boot implements enough of its features to be able to run the UEFI
  127. Shell, but not more than that.
  128. config EFI_UNICODE_COLLATION_PROTOCOL2
  129. bool "Unicode collation protocol"
  130. default y
  131. help
  132. The Unicode collation protocol is used for lexical comparisons. It is
  133. required to run the UEFI shell.
  134. if EFI_UNICODE_COLLATION_PROTOCOL2
  135. config EFI_UNICODE_CAPITALIZATION
  136. bool "Support Unicode capitalization"
  137. default y
  138. help
  139. Select this option to enable correct handling of the capitalization of
  140. Unicode codepoints in the range 0x0000-0xffff. If this option is not
  141. set, only the the correct handling of the letters of the codepage
  142. used by the FAT file system is ensured.
  143. config EFI_UNICODE_COLLATION_PROTOCOL
  144. bool "Deprecated version of the Unicode collation protocol"
  145. default n
  146. help
  147. In EFI 1.10 a version of the Unicode collation protocol using ISO
  148. 639-2 language codes existed. This protocol is not part of the UEFI
  149. specification any longer. Unfortunately it is required to run the
  150. UEFI Self Certification Test (SCT) II, version 2.6, 2017.
  151. Choose this option for testing only. It is bound to be removed.
  152. endif
  153. config EFI_LOADER_BOUNCE_BUFFER
  154. bool "EFI Applications use bounce buffers for DMA operations"
  155. depends on ARM64
  156. default n
  157. help
  158. Some hardware does not support DMA to full 64bit addresses. For this
  159. hardware we can create a bounce buffer so that payloads don't have to
  160. worry about platform details.
  161. config EFI_PLATFORM_LANG_CODES
  162. string "Language codes supported by firmware"
  163. default "en-US"
  164. help
  165. This value is used to initialize the PlatformLangCodes variable. Its
  166. value is a semicolon (;) separated list of language codes in native
  167. RFC 4646 format, e.g. "en-US;de-DE". The first language code is used
  168. to initialize the PlatformLang variable.
  169. config EFI_HAVE_RUNTIME_RESET
  170. # bool "Reset runtime service is available"
  171. bool
  172. default y
  173. depends on ARCH_BCM283X || FSL_LAYERSCAPE || PSCI_RESET || SYSRESET_X86
  174. config EFI_GRUB_ARM32_WORKAROUND
  175. bool "Workaround for GRUB on 32bit ARM"
  176. default n if ARCH_QEMU
  177. default y
  178. depends on ARM && !ARM64
  179. help
  180. GRUB prior to version 2.04 requires U-Boot to disable caches. This
  181. workaround currently is also needed on systems with caches that
  182. cannot be managed via CP15.
  183. config EFI_RNG_PROTOCOL
  184. bool "EFI_RNG_PROTOCOL support"
  185. depends on DM_RNG
  186. default y
  187. help
  188. Provide a EFI_RNG_PROTOCOL implementation using the hardware random
  189. number generator of the platform.
  190. config EFI_TCG2_PROTOCOL
  191. bool "EFI_TCG2_PROTOCOL support"
  192. depends on TPM_V2
  193. help
  194. Provide a EFI_TCG2_PROTOCOL implementation using the TPM hardware
  195. of the platform.
  196. config EFI_TCG2_PROTOCOL_EVENTLOG_SIZE
  197. int "EFI_TCG2_PROTOCOL EventLog size"
  198. depends on EFI_TCG2_PROTOCOL
  199. default 4096
  200. help
  201. Define the size of the EventLog for EFI_TCG2_PROTOCOL. Note that
  202. this is going to be allocated twice. One for the eventlog it self
  203. and one for the configuration table that is required from the spec
  204. config EFI_LOAD_FILE2_INITRD
  205. bool "EFI_FILE_LOAD2_PROTOCOL for Linux initial ramdisk"
  206. default n
  207. help
  208. Expose a EFI_FILE_LOAD2_PROTOCOL that the Linux UEFI stub can
  209. use to load the initial ramdisk. Once this is enabled using
  210. initrd=<ramdisk> will stop working.
  211. config EFI_INITRD_FILESPEC
  212. string "initramfs path"
  213. default "host 0:1 initrd"
  214. depends on EFI_LOAD_FILE2_INITRD
  215. help
  216. Full path of the initramfs file, e.g. mmc 0:2 initramfs.cpio.gz.
  217. config EFI_SECURE_BOOT
  218. bool "Enable EFI secure boot support"
  219. depends on EFI_LOADER
  220. select SHA256
  221. select RSA
  222. select RSA_VERIFY_WITH_PKEY
  223. select IMAGE_SIGN_INFO
  224. select ASYMMETRIC_KEY_TYPE
  225. select ASYMMETRIC_PUBLIC_KEY_SUBTYPE
  226. select X509_CERTIFICATE_PARSER
  227. select PKCS7_MESSAGE_PARSER
  228. select PKCS7_VERIFY
  229. default n
  230. help
  231. Select this option to enable EFI secure boot support.
  232. Once SecureBoot mode is enforced, any EFI binary can run only if
  233. it is signed with a trusted key. To do that, you need to install,
  234. at least, PK, KEK and db.
  235. endif