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:
@@ -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
|
||||
|
@@ -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
|
||||
|
@@ -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
|
||||
|
@@ -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 */
|
||||
|
@@ -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
|
||||
|
@@ -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"
|
||||
|
Reference in New Issue
Block a user