Kconfig 5.4 KB

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