efi_loader: make device path to text protocol customizable
authorHeinrich Schuchardt <xypron.glpk@gmx.de>
Sat, 11 May 2019 07:53:33 +0000 (09:53 +0200)
committerHeinrich Schuchardt <xypron.glpk@gmx.de>
Sun, 12 May 2019 18:54:22 +0000 (20:54 +0200)
The device path to text protocol is not needed for EBBR compliance. So
let's make it a customizable option.

Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
cmd/Kconfig
lib/efi_loader/Kconfig
lib/efi_loader/Makefile
lib/efi_loader/efi_root_node.c
lib/efi_selftest/Makefile
lib/vsprintf.c

index fd1beb0684961d300e97c9cb571a2db154f64fb3..0d36da2a5c43fe39e85e8b5370e7cb17697d053a 100644 (file)
@@ -1436,6 +1436,7 @@ config CMD_DISPLAY
 config CMD_EFIDEBUG
        bool "efidebug - display/configure UEFI environment"
        depends on EFI_LOADER
+       select EFI_DEVICE_PATH_TO_TEXT
        default n
        help
          Enable the 'efidebug' command which provides a subset of UEFI
index 3feb04a5ede2f0835f94daf135364d63a7328dc0..6501ee56aaf110ea152e7e7bbf97a6e827aa168f 100644 (file)
@@ -18,6 +18,13 @@ config EFI_LOADER
 
 if EFI_LOADER
 
+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
index 2b1ae61a3d9cf8802c6d9d7225c262b68eb9cc23..f3d6773bf6b1fa633d5feabf9c435124c60b9257 100644 (file)
@@ -21,7 +21,7 @@ obj-y += efi_bootmgr.o
 obj-y += efi_boottime.o
 obj-y += efi_console.o
 obj-y += efi_device_path.o
-obj-y += efi_device_path_to_text.o
+obj-$(CONFIG_EFI_DEVICE_PATH_TO_TEXT) += efi_device_path_to_text.o
 obj-y += efi_device_path_utilities.o
 obj-y += efi_file.o
 obj-$(CONFIG_EFI_LOADER_HII) += efi_hii.o efi_hii_config.o
index f36ca3456e29a7644d9a396e92185ae383b1ccd3..d8496cc3c279abf35bd513dcbfdced1c1ba5f2d3 100644 (file)
@@ -52,9 +52,11 @@ efi_status_t efi_root_node_register(void)
                        (&efi_root,
                         /* Device path protocol */
                         &efi_guid_device_path, dp,
+#if CONFIG_IS_ENABLED(EFI_DEVICE_PATH_TO_TEXT)
                         /* Device path to text protocol */
                         &efi_guid_device_path_to_text_protocol,
                         (void *)&efi_device_path_to_text,
+#endif
                         /* Device path utilities protocol */
                         &efi_guid_device_path_utilities_protocol,
                         (void *)&efi_device_path_utilities,
index 7fdf189c5c3bb9a829472621d18aa6e886f5c1c0..d0bebc7d0c4f37d70b895d07223fafd389931e61 100644 (file)
@@ -17,7 +17,6 @@ efi_selftest_config_table.o \
 efi_selftest_controllers.o \
 efi_selftest_console.o \
 efi_selftest_crc32.o \
-efi_selftest_devicepath.o \
 efi_selftest_devicepath_util.o \
 efi_selftest_events.o \
 efi_selftest_event_groups.o \
@@ -38,6 +37,7 @@ efi_selftest_util.o \
 efi_selftest_variables.o \
 efi_selftest_watchdog.o
 
+obj-$(CONFIG_EFI_DEVICE_PATH_TO_TEXT) += efi_selftest_devicepath.o
 obj-$(CONFIG_EFI_UNICODE_COLLATION_PROTOCOL) += efi_selftest_unicode_collation.o
 
 obj-$(CONFIG_CPU_V7) += efi_selftest_unaligned.o
index 3502b8088ff127e8fad7f9b16d4066925ef1039d..8bbbd48c54b8af52b75d3904ae5bec6023d8d40d 100644 (file)
@@ -296,6 +296,7 @@ static char *string16(char *buf, char *end, u16 *s, int field_width,
        return buf;
 }
 
+#if CONFIG_IS_ENABLED(EFI_DEVICE_PATH_TO_TEXT)
 static char *device_path_string(char *buf, char *end, void *dp, int field_width,
                                int precision, int flags)
 {
@@ -314,6 +315,7 @@ static char *device_path_string(char *buf, char *end, void *dp, int field_width,
        return buf;
 }
 #endif
+#endif
 
 #ifdef CONFIG_CMD_NET
 static char *mac_address_string(char *buf, char *end, u8 *addr, int field_width,
@@ -451,7 +453,7 @@ static char *pointer(const char *fmt, char *buf, char *end, void *ptr,
 
        switch (*fmt) {
 /* Device paths only exist in the EFI context. */
-#if CONFIG_IS_ENABLED(EFI_LOADER) && !defined(API_BUILD)
+#if CONFIG_IS_ENABLED(EFI_DEVICE_PATH_TO_TEXT) && !defined(API_BUILD)
        case 'D':
                return device_path_string(buf, end, ptr, field_width,
                                          precision, flags);