summaryrefslogtreecommitdiff
path: root/boot
diff options
context:
space:
mode:
authorJohn Keeping <john@metanate.com>2022-07-28 13:19:15 +0300
committerSimon Glass <sjg@chromium.org>2022-08-10 22:42:56 +0300
commitbe43a35bff17550fa707795a06eaed6114eb1742 (patch)
tree8ebd680644e7351e8bca6c78618109926aef3533 /boot
parent5d1637a40cd1c30f62ebee6e1e1611d5f5613003 (diff)
downloadu-boot-be43a35bff17550fa707795a06eaed6114eb1742.tar.xz
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>
Diffstat (limited to 'boot')
-rw-r--r--boot/Kconfig8
-rw-r--r--boot/Makefile3
-rw-r--r--boot/pxe_utils.c3
3 files changed, 10 insertions, 4 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))