Kconfig 5.8 KB

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