[PATCH v3 01/13] spl: Untagle spl_start_uboot() from spl_mmc.c

Alexandru Gagniuc mr.nuke.me at gmail.com
Fri Oct 8 21:56:43 CEST 2021


The symbol spl_start_uboot() is provided in spl_mmc.c, but it may also
be provided by platform code.

Fireworks can be created with the following combination:

    CONFIG_SPL_OS_BOOT is not set
    CONFIG_SPL_MMC=y
    ARCH provides spl_start_uboot()

A weak implementation of spl_start_uboot() exists in spl/spl.c, so
leverage that one and stop defining the symbol in spl_mmc.c. We need
the symbol because spl_start_uboot() is called in spl_mmc.c
irrespective of the Falcon mode being activated.

Signed-off-by: Alexandru Gagniuc <mr.nuke.me at gmail.com>
---
 common/spl/spl.c     | 10 ++++++----
 common/spl/spl_mmc.c |  4 ----
 2 files changed, 6 insertions(+), 8 deletions(-)

diff --git a/common/spl/spl.c b/common/spl/spl.c
index a9304d4148..6232a23c9e 100644
--- a/common/spl/spl.c
+++ b/common/spl/spl.c
@@ -87,15 +87,17 @@ __weak int dram_init_banksize(void)
  * 0 to not start u-boot
  * positive if u-boot should start
  */
-#ifdef CONFIG_SPL_OS_BOOT
 __weak int spl_start_uboot(void)
 {
-	puts(SPL_TPL_PROMPT
-	     "Please implement spl_start_uboot() for your board\n");
-	puts(SPL_TPL_PROMPT "Direct Linux boot not active!\n");
+	if (IS_ENABLED(CONFIG_SPL_OS_BOOT)){
+		puts(SPL_TPL_PROMPT
+		     "Please implement spl_start_uboot() for your board\n");
+		puts(SPL_TPL_PROMPT "Direct Linux boot not active!\n");
+	}
 	return 1;
 }
 
+#ifdef CONFIG_SPL_OS_BOOT
 /*
  * Weak default function for arch specific zImage check. Return zero
  * and fill start and end address if image is recognized.
diff --git a/common/spl/spl_mmc.c b/common/spl/spl_mmc.c
index d52f8a3eef..a9a588b04f 100644
--- a/common/spl/spl_mmc.c
+++ b/common/spl/spl_mmc.c
@@ -252,10 +252,6 @@ static int mmc_load_image_raw_os(struct spl_image_info *spl_image,
 	return 0;
 }
 #else
-int spl_start_uboot(void)
-{
-	return 1;
-}
 static int mmc_load_image_raw_os(struct spl_image_info *spl_image,
 				 struct mmc *mmc)
 {
-- 
2.31.1



More information about the U-Boot mailing list