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. * Setup a temporary stack. Global data is not available yet.
*/ */
#if defined(CONFIG_XPL_BUILD) && defined(CONFIG_SPL_HAVE_INIT_STACK) #if CONFIG_IS_ENABLED(HAVE_INIT_STACK)
ldr sp, =CONFIG_SPL_STACK ldr sp, =CONFIG_VAL(STACK)
#else #else
ldr sp, =SYS_INIT_SP_ADDR ldr sp, =SYS_INIT_SP_ADDR
#endif #endif

View File

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

View File

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

View File

@@ -69,10 +69,8 @@ ENTRY(_main)
/* /*
* Set up initial C runtime environment and call board_init_f(0). * Set up initial C runtime environment and call board_init_f(0).
*/ */
#if defined(CONFIG_TPL_BUILD) && defined(CONFIG_TPL_HAVE_INIT_STACK) #if CONFIG_IS_ENABLED(HAVE_INIT_STACK)
ldr x0, =(CONFIG_TPL_STACK) ldr x0, =CONFIG_VAL(STACK)
#elif defined(CONFIG_XPL_BUILD) && defined(CONFIG_SPL_HAVE_INIT_STACK)
ldr x0, =(CONFIG_SPL_STACK)
#elif defined(CONFIG_INIT_SP_RELATIVE) #elif defined(CONFIG_INIT_SP_RELATIVE)
#if CONFIG_POSITION_INDEPENDENT #if CONFIG_POSITION_INDEPENDENT
adrp x0, __bss_start /* x0 <- Runtime &__bss_start */ 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 * Set stackpointer in internal/ex RAM to call board_init_f
*/ */
call_board_init_f: call_board_init_f:
#if defined(CONFIG_XPL_BUILD) && defined(CONFIG_SPL_HAVE_INIT_STACK) #if CONFIG_IS_ENABLED(HAVE_INIT_STACK)
li t0, CONFIG_SPL_STACK li t0, CONFIG_VAL(STACK)
#else #else
li t0, SYS_INIT_SP_ADDR li t0, SYS_INIT_SP_ADDR
#endif #endif

View File

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