Merge tag 'efi-2019-10-rc2' of https://gitlab.denx.de/u-boot/custodians/u-boot-efi
[platform/kernel/u-boot.git] / lib / efi_loader / Kconfig
index a6489ca..c7027a9 100644 (file)
@@ -1,5 +1,5 @@
 config EFI_LOADER
 config EFI_LOADER
-       bool "Support running EFI Applications in U-Boot"
+       bool "Support running UEFI applications"
        depends on (ARM || X86 || RISCV || SANDBOX) && OF_LIBFDT
        # We need EFI_STUB_64BIT to be set on x86_64 with EFI_STUB
        depends on !EFI_STUB || !X86_64 || EFI_STUB_64BIT
        depends on (ARM || X86 || RISCV || SANDBOX) && OF_LIBFDT
        # We need EFI_STUB_64BIT to be set on x86_64 with EFI_STUB
        depends on !EFI_STUB || !X86_64 || EFI_STUB_64BIT
@@ -11,14 +11,58 @@ config EFI_LOADER
        select REGEX
        imply CFB_CONSOLE_ANSI
        help
        select REGEX
        imply CFB_CONSOLE_ANSI
        help
-         Select this option if you want to run EFI applications (like grub2)
-         on top of U-Boot. If this option is enabled, U-Boot will expose EFI
-         interfaces to a loaded EFI application, enabling it to reuse U-Boot's
-         device drivers.
+         Select this option if you want to run UEFI applications (like GNU
+         GRUB or iPXE) on top of U-Boot. If this option is enabled, U-Boot
+         will expose the UEFI API to a loaded application, enabling it to
+         reuse U-Boot's device drivers.
+
+if EFI_LOADER
+
+config EFI_GET_TIME
+       bool "GetTime() runtime service"
+       depends on DM_RTC
+       default y
+       help
+         Provide the GetTime() runtime service at boottime. This service
+         can be used by an EFI application to read the real time clock.
+
+config EFI_SET_TIME
+       bool "SetTime() runtime service"
+       depends on EFI_GET_TIME
+       default n
+       help
+         Provide the SetTime() runtime service at boottime. This service
+         can be used by an EFI application to adjust the real time clock.
+
+config EFI_DEVICE_PATH_TO_TEXT
+       bool "Device path to text protocol"
+       default y
+       help
+         The device path to text protocol converts device nodes and paths to
+         human readable strings.
+
+config EFI_LOADER_HII
+       bool "HII protocols"
+       default y
+       help
+         The Human Interface Infrastructure is a complicated framework that
+         allows UEFI applications to draw fancy menus and hook strings using
+         a translation framework.
+
+         U-Boot implements enough of its features to be able to run the UEFI
+         Shell, but not more than that.
+
+config EFI_UNICODE_COLLATION_PROTOCOL2
+       bool "Unicode collation protocol"
+       default y
+       help
+         The Unicode collation protocol is used for lexical comparisons. It is
+         required to run the UEFI shell.
+
+if EFI_UNICODE_COLLATION_PROTOCOL2
 
 config EFI_UNICODE_CAPITALIZATION
        bool "Support Unicode capitalization"
 
 config EFI_UNICODE_CAPITALIZATION
        bool "Support Unicode capitalization"
-       depends on EFI_LOADER
        default y
        help
          Select this option to enable correct handling of the capitalization of
        default y
        help
          Select this option to enable correct handling of the capitalization of
@@ -26,23 +70,49 @@ config EFI_UNICODE_CAPITALIZATION
          set, only the the correct handling of the letters of the codepage
          used by the FAT file system is ensured.
 
          set, only the the correct handling of the letters of the codepage
          used by the FAT file system is ensured.
 
+config EFI_UNICODE_COLLATION_PROTOCOL
+       bool "Deprecated version of the Unicode collation protocol"
+       default n
+       help
+         In EFI 1.10 a version of the Unicode collation protocol using ISO
+         639-2 language codes existed. This protocol is not part of the UEFI
+         specification any longer. Unfortunately it is required to run the
+         UEFI Self Certification Test (SCT) II, version 2.6, 2017.
+
+         Choose this option for testing only. It is bound to be removed.
+
+endif
+
 config EFI_LOADER_BOUNCE_BUFFER
        bool "EFI Applications use bounce buffers for DMA operations"
 config EFI_LOADER_BOUNCE_BUFFER
        bool "EFI Applications use bounce buffers for DMA operations"
-       depends on EFI_LOADER && ARM64
+       depends on ARM64
        default n
        help
          Some hardware does not support DMA to full 64bit addresses. For this
          hardware we can create a bounce buffer so that payloads don't have to
          worry about platform details.
 
        default n
        help
          Some hardware does not support DMA to full 64bit addresses. For this
          hardware we can create a bounce buffer so that payloads don't have to
          worry about platform details.
 
-config EFI_LOADER_HII
-       bool "Expose HII protocols to EFI applications"
-       depends on EFI_LOADER
-       default y
+config EFI_PLATFORM_LANG_CODES
+       string "Language codes supported by firmware"
+       default "en-US"
        help
        help
-         The Human Interface Infrastructure is a complicated framework that
-         allows UEFI applications to draw fancy menus and hook strings using
-         a translation framework.
+         This value is used to initialize the PlatformLangCodes variable. Its
+         value is a semicolon (;) separated list of language codes in native
+         RFC 4646 format, e.g. "en-US;de-DE". The first language code is used
+         to initialize the PlatformLang variable.
 
 
-         U-Boot implements enough of its features to be able to run the UEFI
-         Shell, but not more than that.
+config EFI_HAVE_RUNTIME_RESET
+       # bool "Reset runtime service is available"
+       bool
+       default y
+       depends on ARCH_BCM283X || FSL_LAYERSCAPE || PSCI_RESET || SYSRESET_X86
+
+config EFI_GRUB_ARM32_WORKAROUND
+       bool "Workaround for GRUB on 32bit ARM"
+       default y
+       depends on ARM && !ARM64
+       help
+         GRUB prior to version 2.04 requires U-Boot to disable caches. This
+         workaround currently is also needed on systems with caches that
+         cannot be managed via CP15.
+endif