summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorHeinrich Schuchardt <xypron.glpk@gmx.de>2019-05-11 09:53:33 +0200
committerHeinrich Schuchardt <xypron.glpk@gmx.de>2019-05-12 20:54:22 +0200
commit64b5ba4d293ac9b5416c286aa2d0051b6a9594d6 (patch)
treee8c43613de924c06cbbfc500df1e471b5187519a /lib
parent334997356e6c394d0898bdb746e7794f4b226ef3 (diff)
efi_loader: make device path to text protocol customizable
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>
Diffstat (limited to 'lib')
-rw-r--r--lib/efi_loader/Kconfig7
-rw-r--r--lib/efi_loader/Makefile2
-rw-r--r--lib/efi_loader/efi_root_node.c2
-rw-r--r--lib/efi_selftest/Makefile2
-rw-r--r--lib/vsprintf.c4
5 files changed, 14 insertions, 3 deletions
diff --git a/lib/efi_loader/Kconfig b/lib/efi_loader/Kconfig
index 3feb04a5ed..6501ee56aa 100644
--- a/lib/efi_loader/Kconfig
+++ b/lib/efi_loader/Kconfig
@@ -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
diff --git a/lib/efi_loader/Makefile b/lib/efi_loader/Makefile
index 2b1ae61a3d..f3d6773bf6 100644
--- a/lib/efi_loader/Makefile
+++ b/lib/efi_loader/Makefile
@@ -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
diff --git a/lib/efi_loader/efi_root_node.c b/lib/efi_loader/efi_root_node.c
index f36ca3456e..d8496cc3c2 100644
--- a/lib/efi_loader/efi_root_node.c
+++ b/lib/efi_loader/efi_root_node.c
@@ -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,
diff --git a/lib/efi_selftest/Makefile b/lib/efi_selftest/Makefile
index 7fdf189c5c..d0bebc7d0c 100644
--- a/lib/efi_selftest/Makefile
+++ b/lib/efi_selftest/Makefile
@@ -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
diff --git a/lib/vsprintf.c b/lib/vsprintf.c
index 3502b8088f..8bbbd48c54 100644
--- a/lib/vsprintf.c
+++ b/lib/vsprintf.c
@@ -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);