diff options
author | Alexander Graf <agraf@suse.de> | 2019-02-11 17:24:00 +0300 |
---|---|---|
committer | Alexander Graf <agraf@suse.de> | 2019-02-13 11:40:06 +0300 |
commit | 5fbb28958becc2e725d2ee14a35c3b2f0918c62f (patch) | |
tree | edc809c6cc066bd4b8bb4e6f762f577f449b59bb /lib | |
parent | 2f8ab1218f74dbaeffffb0a53094ead58bee41c5 (diff) | |
download | u-boot-5fbb28958becc2e725d2ee14a35c3b2f0918c62f.tar.xz |
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/Kconfig | 15 | ||||
-rw-r--r-- | lib/efi_loader/efi_boottime.c | 2 | ||||
-rw-r--r-- | lib/efi_selftest/Makefile | 2 |
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 |