spl: Use binman suffix allow symbols of any SPL etype
authorSimon Glass <sjg@chromium.org>
Fri, 21 Oct 2022 00:22:41 +0000 (18:22 -0600)
committerTom Rini <trini@konsulko.com>
Mon, 31 Oct 2022 15:01:31 +0000 (11:01 -0400)
At present we use symbols for the u-boot-spl entry, but this is not always
what we want. For example, sandbox actually jumps to a u-boot-spl-elf
entry, since sandbox executables are ELF files.

We already handle this with U-Boot by using the '-any' suffix. Add it for
SPL as well.

Signed-off-by: Simon Glass <sjg@chromium.org>
common/spl/spl.c
include/spl.h

index 41594fc..10475cd 100644 (file)
@@ -59,13 +59,13 @@ binman_sym_declare(ulong, u_boot_any, image_pos);
 binman_sym_declare(ulong, u_boot_any, size);
 
 #ifdef CONFIG_TPL
-binman_sym_declare(ulong, u_boot_spl, image_pos);
-binman_sym_declare(ulong, u_boot_spl, size);
+binman_sym_declare(ulong, u_boot_spl_any, image_pos);
+binman_sym_declare(ulong, u_boot_spl_any, size);
 #endif
 
 #ifdef CONFIG_VPL
-binman_sym_declare(ulong, u_boot_vpl, image_pos);
-binman_sym_declare(ulong, u_boot_vpl, size);
+binman_sym_declare(ulong, u_boot_vpl_any, image_pos);
+binman_sym_declare(ulong, u_boot_vpl_any, size);
 #endif
 
 #endif /* BINMAN_UBOOT_SYMBOLS */
@@ -164,10 +164,10 @@ ulong spl_get_image_pos(void)
 
 #ifdef CONFIG_VPL
        if (spl_next_phase() == PHASE_VPL)
-               return binman_sym(ulong, u_boot_vpl, image_pos);
+               return binman_sym(ulong, u_boot_vpl_any, image_pos);
 #endif
        return spl_next_phase() == PHASE_SPL ?
-               binman_sym(ulong, u_boot_spl, image_pos) :
+               binman_sym(ulong, u_boot_spl_any, image_pos) :
                binman_sym(ulong, u_boot_any, image_pos);
 }
 
@@ -178,10 +178,10 @@ ulong spl_get_image_size(void)
 
 #ifdef CONFIG_VPL
        if (spl_next_phase() == PHASE_VPL)
-               return binman_sym(ulong, u_boot_vpl, size);
+               return binman_sym(ulong, u_boot_vpl_any, size);
 #endif
        return spl_next_phase() == PHASE_SPL ?
-               binman_sym(ulong, u_boot_spl, size) :
+               binman_sym(ulong, u_boot_spl_any, size) :
                binman_sym(ulong, u_boot_any, size);
 }
 
index 5d5c60a..09a12f8 100644 (file)
@@ -286,10 +286,10 @@ struct spl_load_info {
  */
 binman_sym_extern(ulong, u_boot_any, image_pos);
 binman_sym_extern(ulong, u_boot_any, size);
-binman_sym_extern(ulong, u_boot_spl, image_pos);
-binman_sym_extern(ulong, u_boot_spl, size);
-binman_sym_extern(ulong, u_boot_vpl, image_pos);
-binman_sym_extern(ulong, u_boot_vpl, size);
+binman_sym_extern(ulong, u_boot_spl_any, image_pos);
+binman_sym_extern(ulong, u_boot_spl_any, size);
+binman_sym_extern(ulong, u_boot_vpl_any, image_pos);
+binman_sym_extern(ulong, u_boot_vpl_any, size);
 
 /**
  * spl_get_image_pos() - get the image position of the next phase