瀏覽代碼

efi_loader: make Unicode collation protocol customizable

The Unicode collation protocol is not needed for EBBR compliance. So let's
make it a customizable option.

The Unicode capitalization table is only needed by this protocol. So let it
depend on the Unicode collation protocol.

Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Heinrich Schuchardt 5 年之前
父節點
當前提交
334997356e
共有 4 個文件被更改,包括 16 次插入2 次删除
  1. 11 0
      lib/efi_loader/Kconfig
  2. 1 1
      lib/efi_loader/Makefile
  3. 2 0
      lib/efi_loader/efi_root_node.c
  4. 2 1
      lib/efi_selftest/Makefile

+ 11 - 0
lib/efi_loader/Kconfig

@@ -29,6 +29,15 @@ config EFI_LOADER_HII
 	  U-Boot implements enough of its features to be able to run the UEFI
 	  Shell, but not more than that.
 
+config EFI_UNICODE_COLLATION_PROTOCOL
+	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_PROTOCOL
+
 config EFI_UNICODE_CAPITALIZATION
 	bool "Support Unicode capitalization"
 	default y
@@ -38,6 +47,8 @@ config EFI_UNICODE_CAPITALIZATION
 	  set, only the the correct handling of the letters of the codepage
 	  used by the FAT file system is ensured.
 
+endif
+
 config EFI_LOADER_BOUNCE_BUFFER
 	bool "EFI Applications use bounce buffers for DMA operations"
 	depends on ARM64

+ 1 - 1
lib/efi_loader/Makefile

@@ -30,7 +30,7 @@ obj-y += efi_memory.o
 obj-y += efi_root_node.o
 obj-y += efi_runtime.o
 obj-y += efi_setup.o
-obj-y += efi_unicode_collation.o
+obj-$(CONFIG_EFI_UNICODE_COLLATION_PROTOCOL) += efi_unicode_collation.o
 obj-y += efi_variable.o
 obj-y += efi_watchdog.o
 obj-$(CONFIG_LCD) += efi_gop.o

+ 2 - 0
lib/efi_loader/efi_root_node.c

@@ -58,9 +58,11 @@ efi_status_t efi_root_node_register(void)
 			 /* Device path utilities protocol */
 			 &efi_guid_device_path_utilities_protocol,
 			 (void *)&efi_device_path_utilities,
+#if CONFIG_IS_ENABLED(EFI_UNICODE_COLLATION_PROTOCOL)
 			 /* Unicode collation protocol */
 			 &efi_guid_unicode_collation_protocol,
 			 (void *)&efi_unicode_collation_protocol,
+#endif
 #if CONFIG_IS_ENABLED(EFI_LOADER_HII)
 			 /* HII string protocol */
 			 &efi_guid_hii_string_protocol,

+ 2 - 1
lib/efi_selftest/Makefile

@@ -34,11 +34,12 @@ efi_selftest_textinput.o \
 efi_selftest_textinputex.o \
 efi_selftest_textoutput.o \
 efi_selftest_tpl.o \
-efi_selftest_unicode_collation.o \
 efi_selftest_util.o \
 efi_selftest_variables.o \
 efi_selftest_watchdog.o
 
+obj-$(CONFIG_EFI_UNICODE_COLLATION_PROTOCOL) += efi_selftest_unicode_collation.o
+
 obj-$(CONFIG_CPU_V7) += efi_selftest_unaligned.o
 obj-$(CONFIG_EFI_LOADER_HII) += efi_selftest_hii.o