diff options
author | John Keeping <john@metanate.com> | 2022-07-28 11:19:15 +0100 |
---|---|---|
committer | Simon Glass <sjg@chromium.org> | 2022-08-10 13:42:56 -0600 |
commit | be43a35bff17550fa707795a06eaed6114eb1742 (patch) | |
tree | 8ebd680644e7351e8bca6c78618109926aef3533 | |
parent | 5d1637a40cd1c30f62ebee6e1e1611d5f5613003 (diff) |
boot: allow bootmeth-distro without CONFIG_NET
Remove the dependency on CMD_PXE from BOOTMETH_DISTRO by introducing a
new hidden kconfig symbol to control whether pxe_utils is compiled,
allowing bootstd's distro method to be compiled without needing
networking support enabled.
Signed-off-by: John Keeping <john@metanate.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Correct build errors when CMD_BOOTM is not enabled:
Signed-off-by: Simon Glass <sjg@chromium.org>
-rw-r--r-- | boot/Kconfig | 8 | ||||
-rw-r--r-- | boot/Makefile | 3 | ||||
-rw-r--r-- | boot/pxe_utils.c | 3 | ||||
-rw-r--r-- | cmd/Kconfig | 4 | ||||
-rw-r--r-- | include/command.h | 2 |
5 files changed, 13 insertions, 7 deletions
diff --git a/boot/Kconfig b/boot/Kconfig index eddb0c6b31..a294ad769e 100644 --- a/boot/Kconfig +++ b/boot/Kconfig @@ -294,6 +294,12 @@ endif # SPL endif # FIT +config PXE_UTILS + bool + select MENU + help + Utilities for parsing PXE file formats. + config BOOTSTD bool "Standard boot support" default y @@ -345,7 +351,7 @@ config BOOTSTD_BOOTCOMMAND config BOOTMETH_DISTRO bool "Bootdev support for distro boot" - depends on CMD_PXE + select PXE_UTILS default y help Enables support for distro boot using bootdevs. This makes the diff --git a/boot/Makefile b/boot/Makefile index a70674259c..124065a03f 100644 --- a/boot/Makefile +++ b/boot/Makefile @@ -10,8 +10,7 @@ obj-$(CONFIG_CMD_BOOTM) += bootm.o bootm_os.o obj-$(CONFIG_CMD_BOOTZ) += bootm.o bootm_os.o obj-$(CONFIG_CMD_BOOTI) += bootm.o bootm_os.o -obj-$(CONFIG_CMD_PXE) += pxe_utils.o -obj-$(CONFIG_CMD_SYSBOOT) += pxe_utils.o +obj-$(CONFIG_PXE_UTILS) += pxe_utils.o endif diff --git a/boot/pxe_utils.c b/boot/pxe_utils.c index defbe465e4..a364fa8bb5 100644 --- a/boot/pxe_utils.c +++ b/boot/pxe_utils.c @@ -736,7 +736,8 @@ static int label_boot(struct pxe_context *ctx, struct pxe_label *label) kernel_addr_r = genimg_get_kernel_addr(kernel_addr); buf = map_sysmem(kernel_addr_r, 0); /* Try bootm for legacy and FIT format image */ - if (genimg_get_format(buf) != IMAGE_FORMAT_INVALID) + if (genimg_get_format(buf) != IMAGE_FORMAT_INVALID && + IS_ENABLED(CONFIG_CMD_BOOTM)) do_bootm(ctx->cmdtp, 0, bootm_argc, bootm_argv); /* Try booting an AArch64 Linux kernel image */ else if (IS_ENABLED(CONFIG_CMD_BOOTI)) diff --git a/cmd/Kconfig b/cmd/Kconfig index 3625ff2a50..7d19706a8e 100644 --- a/cmd/Kconfig +++ b/cmd/Kconfig @@ -1825,7 +1825,7 @@ config CMD_ETHSW config CMD_PXE bool "pxe" - select MENU + select PXE_UTILS help Boot image via network using PXE protocol @@ -2007,7 +2007,7 @@ config CMD_SOUND config CMD_SYSBOOT bool "sysboot" - select MENU + select PXE_UTILS help Boot image via local extlinux.conf file diff --git a/include/command.h b/include/command.h index 44c91f655d..7fac7e02d4 100644 --- a/include/command.h +++ b/include/command.h @@ -148,9 +148,9 @@ int cmd_get_data_size(char *arg, int default_size); int do_bootd(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[]); #endif -#ifdef CONFIG_CMD_BOOTM int do_bootm(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[]); +#ifdef CONFIG_CMD_BOOTM int bootm_maybe_autostart(struct cmd_tbl *cmdtp, const char *cmd); #else static inline int bootm_maybe_autostart(struct cmd_tbl *cmdtp, const char *cmd) |