]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
boot: Introduce BOOTSTD_MENU to control bootflow menu build
authorMarek Vasut <marek.vasut+renesas@mailbox.org>
Sun, 20 Oct 2024 15:43:12 +0000 (17:43 +0200)
committerTom Rini <trini@konsulko.com>
Thu, 24 Oct 2024 17:19:55 +0000 (11:19 -0600)
The bootflow_menu.c code depends on e.g. scene_txt_set_font(),
which is only built when CONFIG_EXPO is enabled. Introduce new
Kconfig symbol BOOTSTD_MENU which depends on EXPO to prevent
triggering errors like these in case e.g. CONFIG_VIDEO=n :

"
boot/bootflow_menu.c:158:(.text+0x8851): undefined reference to `scene_txt_set_font'
"

Make the symbol depend on BOOTSTD_FULL as well to get rid of
the Makefile dependency workaround. Since BOOTSTD_FULL is not
available in SPL, do not define SPL variant of BOOTSTD_MENU.

Fix up bootflow test accordingly.

Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
Reviewed-by: Simon Glass <sjg@chromium.org>
boot/Kconfig
boot/Makefile
test/boot/bootflow.c

index fe2919f18c4568170d8fb126223bbd565c8b41b1..b168b6bbcc2aac9b01b5405d97f5b9f30052ec00 100644 (file)
@@ -469,6 +469,13 @@ config BOOTSTD_BOOTCOMMAND
          standard boot does not support all of the features of distro boot
          yet.
 
+config BOOTSTD_MENU
+       bool "Provide a menu of available bootflows for standard boot"
+       depends on BOOTSTD_FULL && EXPO
+       default y
+       help
+         Provide a menu of available bootflows and related options.
+
 config BOOTSTD_PROG
        bool "Use programmatic boot"
        depends on !CMDLINE
index b24f806d5bf8623bf515869f126610282ec47d94..0e0afad68d1749f0aefd7ece837c8a084ed49d41 100644 (file)
@@ -24,6 +24,7 @@ obj-$(CONFIG_$(PHASE_)BOOTSTD) += bootflow.o
 obj-$(CONFIG_$(PHASE_)BOOTSTD) += bootmeth-uclass.o
 obj-$(CONFIG_$(PHASE_)BOOTSTD) += bootstd-uclass.o
 
+obj-$(CONFIG_$(PHASE_)BOOTSTD_MENU) += bootflow_menu.o
 obj-$(CONFIG_$(PHASE_)BOOTSTD_PROG) += prog_boot.o
 
 obj-$(CONFIG_$(PHASE_)BOOTMETH_EXTLINUX) += bootmeth_extlinux.o
@@ -35,10 +36,6 @@ obj-$(CONFIG_$(PHASE_)BOOTMETH_SANDBOX) += bootmeth_sandbox.o
 obj-$(CONFIG_$(PHASE_)BOOTMETH_SCRIPT) += bootmeth_script.o
 obj-$(CONFIG_$(PHASE_)CEDIT) += cedit.o
 obj-$(CONFIG_$(PHASE_)BOOTMETH_EFI_BOOTMGR) += bootmeth_efi_mgr.o
-ifdef CONFIG_$(PHASE_)BOOTSTD_FULL
-obj-$(CONFIG_$(PHASE_)EXPO) += bootflow_menu.o
-obj-$(CONFIG_$(PHASE_)BOOTSTD) += bootflow_menu.o
-endif
 
 obj-$(CONFIG_$(PHASE_)OF_LIBFDT) += fdt_support.o
 obj-$(CONFIG_$(PHASE_)FDT_SIMPLEFB) += fdt_simplefb.o
index 154dea70a59cc3466312eb2b4f0493e454c800ea..0d4e966892efdf0ee87f7d4d3e2e29b9b1a753d1 100644 (file)
@@ -857,6 +857,9 @@ static int bootflow_menu_theme(struct unit_test_state *uts)
        ofnode node;
        int i;
 
+       if (!CONFIG_IS_ENABLED(BOOTSTD_MENU))
+               return -EAGAIN;
+
        ut_assertok(scan_mmc4_bootdev(uts));
 
        ut_assertok(bootflow_menu_new(&exp));