Am 15. Juni 2021 23:10:28 MESZ schrieb Icenowy Zheng <[email protected]>: >Sometimes EFI GOP support may be not wanted (e.g. because the operating >system cannot operate well with it) even if video support in U-Boot is >needed.
Which OS has which problem? Why don't you fix the OS? Best regards Heinrich > >Allow to disable EFI GOP support with a Kconfig option. > >Signed-off-by: Icenowy Zheng <[email protected]> >--- > lib/efi_loader/Kconfig | 8 ++++++++ > lib/efi_loader/Makefile | 3 +-- > lib/efi_loader/efi_setup.c | 11 ++++++----- > 3 files changed, 15 insertions(+), 7 deletions(-) > >diff --git a/lib/efi_loader/Kconfig b/lib/efi_loader/Kconfig >index 6242caceb7..5ba0ce6a44 100644 >--- a/lib/efi_loader/Kconfig >+++ b/lib/efi_loader/Kconfig >@@ -282,6 +282,14 @@ config EFI_HAVE_RUNTIME_RESET > depends on ARCH_BCM283X || FSL_LAYERSCAPE || PSCI_RESET || \ > SANDBOX || SYSRESET_X86 > >+config EFI_GOP_PROTOCOL >+ bool "EFI_GOP_PROTOCOL support" >+ default y >+ depends on DM_VIDEO || LCD >+ help >+ Provide a EFI_GOP_PROTOCOL implementation using the graphics >+ hardware initialized by U-Boot. >+ > config EFI_GRUB_ARM32_WORKAROUND > bool "Workaround for GRUB on 32bit ARM" > default n if ARCH_BCM283X || ARCH_SUNXI || ARCH_QEMU >diff --git a/lib/efi_loader/Makefile b/lib/efi_loader/Makefile >index fd344cea29..826563d9a7 100644 >--- a/lib/efi_loader/Makefile >+++ b/lib/efi_loader/Makefile >@@ -54,8 +54,7 @@ obj-$(CONFIG_EFI_VARIABLES_PRESEED) += efi_var_seed.o > endif > obj-y += efi_watchdog.o > obj-$(CONFIG_EFI_ESRT) += efi_esrt.o >-obj-$(CONFIG_LCD) += efi_gop.o >-obj-$(CONFIG_DM_VIDEO) += efi_gop.o >+obj-$(CONFIG_EFI_GOP_PROTOCOL) += efi_gop.o > obj-$(CONFIG_PARTITIONS) += efi_disk.o > obj-$(CONFIG_NET) += efi_net.o > obj-$(CONFIG_GENERATE_ACPI_TABLE) += efi_acpi.o >diff --git a/lib/efi_loader/efi_setup.c b/lib/efi_loader/efi_setup.c >index 3c5cf9a435..98deb63777 100644 >--- a/lib/efi_loader/efi_setup.c >+++ b/lib/efi_loader/efi_setup.c >@@ -254,11 +254,12 @@ efi_status_t efi_init_obj_list(void) > if (ret != EFI_SUCCESS) > goto out; > >-#if defined(CONFIG_LCD) || defined(CONFIG_DM_VIDEO) >- ret = efi_gop_register(); >- if (ret != EFI_SUCCESS) >- goto out; >-#endif >+ if (IS_ENABLED(CONFIG_EFI_GOP_PROTOCOL)) { >+ ret = efi_gop_register(); >+ if (ret != EFI_SUCCESS) >+ goto out; >+ } >+ > #ifdef CONFIG_NET > ret = efi_net_register(); > if (ret != EFI_SUCCESS)

