Kconfig 5.7 KB

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