spl: Use CONFIG_VAL() to obtain the SPL stack

Now that we have the same option for SPL and TPL, simplify the logic for
determining the initial stack.

Note that this changes behaviour as current SPL_STACK is a fallback for
TPL. However, that was likely unintended and can be handled with Kconfig
defaults if needed.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Tom Rini <trini@konsulko.com>
Suggested-by: Tom Rini <trini@konsulko.com>
This commit is contained in:
Simon Glass
2025-02-28 05:20:25 -07:00
committed by Tom Rini
parent d6a53f523a
commit ffa98c08e8
6 changed files with 12 additions and 16 deletions

View File

@@ -26,8 +26,8 @@ WEAK(lowlevel_init)
/*
* Setup a temporary stack. Global data is not available yet.
*/
#if defined(CONFIG_XPL_BUILD) && defined(CONFIG_SPL_HAVE_INIT_STACK)
ldr sp, =CONFIG_SPL_STACK
#if CONFIG_IS_ENABLED(HAVE_INIT_STACK)
ldr sp, =CONFIG_VAL(STACK)
#else
ldr sp, =SYS_INIT_SP_ADDR
#endif

View File

@@ -279,8 +279,8 @@ ENTRY(cpu_init_cp15)
orr r2, r4, r2 @ r2 has combined CPU variant + revision
/* Early stack for ERRATA that needs into call C code */
#if defined(CONFIG_XPL_BUILD) && defined(CONFIG_SPL_HAVE_INIT_STACK)
ldr r0, =(CONFIG_SPL_STACK)
#if CONFIG_IS_ENABLED(HAVE_INIT_STACK)
ldr r0, =CONFIG_VAL(STACK)
#else
ldr r0, =(SYS_INIT_SP_ADDR)
#endif

View File

@@ -100,10 +100,8 @@ ENTRY(_main)
* Set up initial C runtime environment and call board_init_f(0).
*/
#if defined(CONFIG_TPL_BUILD) && defined(CONFIG_TPL_HAVE_INIT_STACK)
ldr r0, =(CONFIG_TPL_STACK)
#elif defined(CONFIG_XPL_BUILD) && defined(CONFIG_SPL_HAVE_INIT_STACK)
ldr r0, =(CONFIG_SPL_STACK)
#if CONFIG_IS_ENABLED(HAVE_INIT_STACK)
ldr r0, =CONFIG_VAL(STACK)
#else
ldr r0, =(SYS_INIT_SP_ADDR)
#endif

View File

@@ -69,10 +69,8 @@ ENTRY(_main)
/*
* Set up initial C runtime environment and call board_init_f(0).
*/
#if defined(CONFIG_TPL_BUILD) && defined(CONFIG_TPL_HAVE_INIT_STACK)
ldr x0, =(CONFIG_TPL_STACK)
#elif defined(CONFIG_XPL_BUILD) && defined(CONFIG_SPL_HAVE_INIT_STACK)
ldr x0, =(CONFIG_SPL_STACK)
#if CONFIG_IS_ENABLED(HAVE_INIT_STACK)
ldr x0, =CONFIG_VAL(STACK)
#elif defined(CONFIG_INIT_SP_RELATIVE)
#if CONFIG_POSITION_INDEPENDENT
adrp x0, __bss_start /* x0 <- Runtime &__bss_start */

View File

@@ -90,8 +90,8 @@ _start:
* Set stackpointer in internal/ex RAM to call board_init_f
*/
call_board_init_f:
#if defined(CONFIG_XPL_BUILD) && defined(CONFIG_SPL_HAVE_INIT_STACK)
li t0, CONFIG_SPL_STACK
#if CONFIG_IS_ENABLED(HAVE_INIT_STACK)
li t0, CONFIG_VAL(STACK)
#else
li t0, SYS_INIT_SP_ADDR
#endif

View File

@@ -138,8 +138,8 @@ config TPL_HAVE_INIT_STACK
bool "TPL requires a initial, fixed, stack-pointer location"
help
Enable if the TPL phase should not inherit its initial
stack-pointer from the settings for U-Boot proper (or SPL if
SPL_STACK is defined), but should set its own value.
stack-pointer from the settings for U-Boot proper, but should set its
own value.
config TPL_STACK
hex "Address of the initial stack-pointer for the TPL phase"