summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon Glass <sjg@chromium.org>2023-01-28 15:00:18 -0700
committerTom Rini <trini@konsulko.com>2023-02-06 13:04:53 -0500
commit0041b1c09a6bae62df36116315b49f3dea7e118b (patch)
treed01a643e50f088528de42d3c1dddd11898be5c63
parentd472e93ab4d0e037990f2db33f014ac8fcbeac9d (diff)
bootstd: Allow enabling BOOTSTD_FULL without needing EXPO
It is sometimes useful to have one without the other, e.g. on a device without a display, since at present the expo feature requires CONFIG_VIDEO to be enabled. Update the Makefile and bootflow command to support this, as well as the EXPO dependency. Signed-off-by: Simon Glass <sjg@chromium.org>
-rw-r--r--boot/Kconfig1
-rw-r--r--boot/Makefile4
-rw-r--r--cmd/bootflow.c21
3 files changed, 16 insertions, 10 deletions
diff --git a/boot/Kconfig b/boot/Kconfig
index fdcfbae7b2..98e194fc2b 100644
--- a/boot/Kconfig
+++ b/boot/Kconfig
@@ -561,6 +561,7 @@ endif # BOOTMETH_VBE
config EXPO
bool "Support for expos - groups of scenes displaying a UI"
+ depends on VIDEO
default y if BOOTMETH_VBE
help
An expo is a way of presenting and collecting information from the
diff --git a/boot/Makefile b/boot/Makefile
index f990e66f52..43baf2b89b 100644
--- a/boot/Makefile
+++ b/boot/Makefile
@@ -30,7 +30,7 @@ obj-$(CONFIG_$(SPL_TPL_)BOOTMETH_SANDBOX) += bootmeth_sandbox.o
obj-$(CONFIG_$(SPL_TPL_)BOOTMETH_SCRIPT) += bootmeth_script.o
ifdef CONFIG_$(SPL_TPL_)BOOTSTD_FULL
obj-$(CONFIG_$(SPL_TPL_)CMD_BOOTEFI_BOOTMGR) += bootmeth_efi_mgr.o
-obj-$(CONFIG_$(SPL_TPL_)BOOTSTD) += bootflow_menu.o
+obj-$(CONFIG_$(SPL_TPL_)EXPO) += bootflow_menu.o
endif
obj-$(CONFIG_$(SPL_TPL_)OF_LIBFDT) += image-fdt.o
@@ -48,7 +48,7 @@ ifdef CONFIG_SPL_BUILD
obj-$(CONFIG_SPL_LOAD_FIT) += common_fit.o
endif
-obj-$(CONFIG_$(SPL_TPL_)BOOTMETH_VBE) += expo.o scene.o scene_menu.o
+obj-$(CONFIG_$(SPL_TPL_)EXPO) += expo.o scene.o scene_menu.o
obj-$(CONFIG_$(SPL_TPL_)BOOTMETH_VBE) += vbe.o vbe_request.o
obj-$(CONFIG_$(SPL_TPL_)BOOTMETH_VBE_SIMPLE) += vbe_simple.o
diff --git a/cmd/bootflow.c b/cmd/bootflow.c
index 692bc6d117..3548bbb683 100644
--- a/cmd/bootflow.c
+++ b/cmd/bootflow.c
@@ -394,15 +394,20 @@ static int do_bootflow_menu(struct cmd_tbl *cmdtp, int flag, int argc,
if (ret)
return CMD_RET_FAILURE;
- ret = bootflow_menu_run(std, text_mode, &bflow);
- if (ret) {
- if (ret == -EAGAIN)
- printf("Nothing chosen\n");
- else
- printf("Menu failed (err=%d)\n", ret);
-
- return CMD_RET_FAILURE;
+ if (IS_ENABLED(CONFIG_EXPO)) {
+ ret = bootflow_menu_run(std, text_mode, &bflow);
+ if (ret) {
+ if (ret == -EAGAIN)
+ printf("Nothing chosen\n");
+ else
+ printf("Menu failed (err=%d)\n", ret);
+ }
+ } else {
+ printf("Menu not supported\n");
+ ret = -ENOSYS;
}
+ if (ret)
+ return CMD_RET_FAILURE;
printf("Selected: %s\n", bflow->os_name ? bflow->os_name : bflow->name);
std->cur_bootflow = bflow;