summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorAlexander Graf <agraf@suse.de>2019-02-11 15:24:00 +0100
committerAlexander Graf <agraf@suse.de>2019-02-13 09:40:06 +0100
commit5fbb28958becc2e725d2ee14a35c3b2f0918c62f (patch)
treeedc809c6cc066bd4b8bb4e6f762f577f449b59bb /lib
parent2f8ab1218f74dbaeffffb0a53094ead58bee41c5 (diff)
efi_loader: Make HII a config option
Heinrich ran into issues with HII and iPXE which lead to #SErrors on his Odroid-C2 system. We definitely do not want to regress just yet, so let's not expose the HII protocols by default. Instead, let's make it a config option that people can play with This way, we can stabilize the code in tree without breaking any users. Once someone figures out, why this breaks iPXE (probably a NULL dereference), we can enable it by default. Reported-by: Heinrich Schuchardt <xypron.glpk@gmx.de> Signed-off-by: Alexander Graf <agraf@suse.de> --- v1 -> v2: - Remove HII selftest as well v2 -> v3: - Make config option
Diffstat (limited to 'lib')
-rw-r--r--lib/efi_loader/Kconfig15
-rw-r--r--lib/efi_loader/efi_boottime.c2
-rw-r--r--lib/efi_selftest/Makefile2
3 files changed, 18 insertions, 1 deletions
diff --git a/lib/efi_loader/Kconfig b/lib/efi_loader/Kconfig
index f5de005ff8..23487b8130 100644
--- a/lib/efi_loader/Kconfig
+++ b/lib/efi_loader/Kconfig
@@ -34,3 +34,18 @@ config EFI_LOADER_BOUNCE_BUFFER
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 n
+ 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. The code is experimental still, so
+ beware that your system might break with HII enabled.
+
+ If unsure, say n.
diff --git a/lib/efi_loader/efi_boottime.c b/lib/efi_loader/efi_boottime.c
index fc26d6adc1..f74f989e0a 100644
--- a/lib/efi_loader/efi_boottime.c
+++ b/lib/efi_loader/efi_boottime.c
@@ -1558,6 +1558,7 @@ efi_status_t efi_setup_loaded_image(struct efi_device_path *device_path,
if (ret != EFI_SUCCESS)
goto failure;
+#if CONFIG_IS_ENABLED(EFI_LOADER_HII)
ret = efi_add_protocol(&obj->header,
&efi_guid_hii_string_protocol,
(void *)&efi_hii_string);
@@ -1575,6 +1576,7 @@ efi_status_t efi_setup_loaded_image(struct efi_device_path *device_path,
(void *)&efi_hii_config_routing);
if (ret != EFI_SUCCESS)
goto failure;
+#endif
return ret;
failure:
diff --git a/lib/efi_selftest/Makefile b/lib/efi_selftest/Makefile
index 779f549940..7f4eafb2fe 100644
--- a/lib/efi_selftest/Makefile
+++ b/lib/efi_selftest/Makefile
@@ -25,7 +25,6 @@ efi_selftest_exception.o \
efi_selftest_exitbootservices.o \
efi_selftest_fdt.o \
efi_selftest_gop.o \
-efi_selftest_hii.o \
efi_selftest_loaded_image.o \
efi_selftest_manageprotocols.o \
efi_selftest_memory.o \
@@ -41,6 +40,7 @@ efi_selftest_variables.o \
efi_selftest_watchdog.o
obj-$(CONFIG_CPU_V7) += efi_selftest_unaligned.o
+obj-$(CONFIG_EFI_LOADER_HII) += efi_selftest_hii.o
ifeq ($(CONFIG_BLK)$(CONFIG_PARTITIONS),yy)
obj-y += efi_selftest_block_device.o