]> git.ipfire.org Git - thirdparty/u-boot.git/commitdiff
spl: remove usage of CMD_BOOTx from image parsing
authorAnshul Dalal <anshuld@ti.com>
Mon, 27 Oct 2025 14:17:02 +0000 (19:47 +0530)
committerTom Rini <trini@konsulko.com>
Mon, 3 Nov 2025 17:52:05 +0000 (11:52 -0600)
Using CMD_* configs from spl doesn't make logical sense. Therefore
this patch replaces the checks for CMD_BOOTx with newly added library
symbols LIB_BOOT[IMZ] and SPL_LIB_BOOT[IMZ] which are enabled by their
respective CMD_* or SPL_* counterparts.

On platforms with non-secure falcon mode, SPL_BOOTZ is enabled by
default for 32-bit ARM systems and SPL_BOOTI is enabled by default for
64-bit ARM and RISCV.

The respective C files (image.c/zimage.c) are compiled based on library
symbols $(PHASE_)LIB_BOOTx instead which are in turn selected by both
CMD_BOOTx and SPL_BOOTx as required.

Signed-off-by: Anshul Dalal <anshuld@ti.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
arch/arm/lib/Makefile
arch/riscv/lib/Makefile
boot/Kconfig
cmd/Kconfig
common/spl/Kconfig
common/spl/spl.c

index ade42d0ca4370b7df3aec59615f12e28a96874cd..05263eadad05179c6aaa7f5d5dca50a57f9d7396 100644 (file)
@@ -7,6 +7,10 @@ lib-$(CONFIG_USE_PRIVATE_LIBGCC) += ashldi3.o ashrdi3.o lshrdi3.o \
                                    lib1funcs.o uldivmod.o div0.o \
                                    div64.o muldi3.o
 
+obj-$(CONFIG_$(PHASE_)LIB_BOOTI) += image.o
+obj-$(CONFIG_$(PHASE_)LIB_BOOTZ) += zimage.o
+obj-$(CONFIG_$(PHASE_)LIB_BOOTM) += bootm.o
+
 ifdef CONFIG_CPU_V7M
 obj-y  += vectors_m.o crt0.o
 else ifdef CONFIG_ARM64
@@ -30,15 +34,9 @@ endif
 
 obj-$(CONFIG_CPU_V7M) += cmd_boot.o
 obj-$(CONFIG_OF_LIBFDT) += bootm-fdt.o
-obj-$(CONFIG_CMD_BOOTI) += bootm.o image.o
 obj-$(CONFIG_CMD_BOOTM) += bootm.o
-obj-$(CONFIG_CMD_BOOTZ) += bootm.o zimage.o
 else
 obj-$(CONFIG_$(PHASE_)FRAMEWORK) += spl.o
-ifdef CONFIG_SPL_FRAMEWORK
-obj-$(CONFIG_CMD_BOOTI) += image.o
-obj-$(CONFIG_CMD_BOOTZ) += zimage.o
-endif
 obj-$(CONFIG_OF_LIBFDT) += bootm-fdt.o
 endif
 ifdef CONFIG_ARM64
index db8d235c6993a8fd78b09acf50f14776615d5269..f1f50918effb45f8281d0d1b315523e42919f706 100644 (file)
@@ -6,8 +6,8 @@
 # Copyright (C) 2017 Andes Technology Corporation
 # Rick Chen, Andes Technology Corporation <rick@andestech.com>
 
-obj-$(CONFIG_CMD_BOOTM) += bootm.o
-obj-$(CONFIG_CMD_BOOTI) += bootm.o image.o
+obj-$(CONFIG_$(PHASE_)LIB_BOOTM) += bootm.o
+obj-$(CONFIG_$(PHASE_)LIB_BOOTI) += image.o
 obj-$(CONFIG_CMD_GO) += boot.o
 obj-y  += cache.o
 obj-$(CONFIG_SIFIVE_CACHE) += sifive_cache.o
index 9adb051400f3659566721fff6531e25990266806..6fd182d1ae4f9e02c2ef02e149d1a17b4f931131 100644 (file)
@@ -33,6 +33,24 @@ config TIMESTAMP
          loaded that does not, the message 'Wrong FIT format: no timestamp'
          is shown.
 
+config LIB_BOOTI
+       bool
+
+config LIB_BOOTM
+       bool
+
+config LIB_BOOTZ
+       bool
+
+config SPL_LIB_BOOTI
+       bool
+
+config SPL_LIB_BOOTM
+       bool
+
+config SPL_LIB_BOOTZ
+       bool
+
 config BUTTON_CMD
        bool "Support for running a command if a button is held during boot"
        depends on CMDLINE
index 9929087a8bb8b525ea43a1d9d35dc49d4223e13a..f8d60161152b5a97f5995b6c499d3efb1872acf1 100644 (file)
@@ -284,6 +284,7 @@ config CMD_BOOTD
 config CMD_BOOTM
        bool "bootm"
        default y
+       select LIB_BOOTM
        help
          Boot an application image from the memory.
 
@@ -360,6 +361,8 @@ config BOOTM_ELF
 
 config CMD_BOOTZ
        bool "bootz"
+       select LIB_BOOTZ
+       select LIB_BOOTM
        help
          Boot the Linux zImage
 
@@ -367,6 +370,8 @@ config CMD_BOOTI
        bool "booti"
        depends on ARM64 || RISCV || SANDBOX
        default y
+       select LIB_BOOTI
+       select LIB_BOOTM
        help
          Boot an AArch64 Linux Kernel image from memory.
 
index 24d6ce5d7399b06799a930911f93665a10531469..6027f24b1fee2dcf9806e5bb07083f9bf9dc01fe 100644 (file)
@@ -1216,6 +1216,22 @@ config SPL_OS_BOOT_SECURE
          to use falcon mode by disabling certain inherently non-securable options
          in the SPL boot flow.
 
+config SPL_BOOTZ
+       bool "Allow booting a zImage style Linux kernel from SPL"
+       depends on SPL_OS_BOOT && !SPL_OS_BOOT_SECURE
+       default y if ARM && !ARM64
+       select SPL_LIB_BOOTZ
+       help
+         Boot a linux zimage from memory in falcon boot.
+
+config SPL_BOOTI
+       bool "Allow booting an Image style Linux kernel from SPL"
+       depends on SPL_OS_BOOT && !SPL_OS_BOOT_SECURE
+       default y if ARM64 || RISCV
+       select SPL_LIB_BOOTI
+       help
+         Boot an uncompressed linux kernel image from memory in falcon boot.
+
 config SPL_OS_BOOT_ARGS
        bool "Allow SPL to load args for kernel in falcon mode"
        depends on (SPL_OS_BOOT || SPL_LOAD_FIT_OPENSBI_OS_BOOT) && !SPL_OS_BOOT_SECURE
index 64313cb8dfe1a401078882564b69890480c9894d..4dae3d0940d02b59e97f89bea6f803e0ade94332 100644 (file)
@@ -340,7 +340,7 @@ int spl_parse_image_header(struct spl_image_info *spl_image,
                panic("** no mkimage signature but raw image not supported");
        }
 
-       if (CONFIG_IS_ENABLED(OS_BOOT) && IS_ENABLED(CONFIG_CMD_BOOTI)) {
+       if (IS_ENABLED(CONFIG_SPL_OS_BOOT) && IS_ENABLED(CONFIG_SPL_BOOTI)) {
                ulong start, size;
 
                if (!booti_setup((ulong)header, &start, &size, 0)) {
@@ -354,7 +354,8 @@ int spl_parse_image_header(struct spl_image_info *spl_image,
                              spl_image->load_addr, spl_image->size);
                        return 0;
                }
-       } else if (CONFIG_IS_ENABLED(OS_BOOT) && IS_ENABLED(CONFIG_CMD_BOOTZ)) {
+       } else if (IS_ENABLED(CONFIG_SPL_OS_BOOT) &&
+                  IS_ENABLED(CONFIG_SPL_BOOTZ)) {
                ulong start, end;
 
                if (!bootz_setup((ulong)header, &start, &end)) {