Kconfig 6.7 KB

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