Hi Simon, On 2025-02-09 22:14, Simon Glass wrote: > The most common word for features that make a platform work is to use > 'HAVE_xxx'. Rename this option to match.
We already have HAS_CUSTOM_SYS_INIT_SP_ADDR related to the init stack pointer address, maybe the new symbol should be named something similar to that? e.g. HAS_xPL_INIT_SP_ADDR > > Update the help to use the word 'phase' rather than 'stage', since > that is the current terminology. Also clarify that, absent this setting, > the stack pointer generally comes from the value used by U-Boot proper, > rather than SPL. The last statement is not fully correct, see below. > > Move the option just above TPL_STACK which depends on it. > > Signed-off-by: Simon Glass <s...@chromium.org> > --- > > Changes in v2: > - Add new patch to rename TPL_NEEDS_SEPARATE_STACK > > arch/arm/lib/crt0.S | 2 +- > arch/arm/lib/crt0_64.S | 2 +- > arch/arm/mach-rockchip/Kconfig | 14 +++++++------- > common/spl/Kconfig.tpl | 19 ++++++++++--------- > configs/mk808_defconfig | 2 +- > 5 files changed, 20 insertions(+), 19 deletions(-) > > diff --git a/arch/arm/lib/crt0.S b/arch/arm/lib/crt0.S > index a691d844847..a7e6f50d39a 100644 > --- a/arch/arm/lib/crt0.S > +++ b/arch/arm/lib/crt0.S > @@ -100,7 +100,7 @@ ENTRY(_main) > * Set up initial C runtime environment and call board_init_f(0). > */ > > -#if defined(CONFIG_TPL_BUILD) && defined(CONFIG_TPL_NEEDS_SEPARATE_STACK) > +#if defined(CONFIG_TPL_BUILD) && defined(CONFIG_TPL_HAVE_INIT_STACK) > ldr r0, =(CONFIG_TPL_STACK) > #elif defined(CONFIG_XPL_BUILD) && defined(CONFIG_SPL_STACK) > ldr r0, =(CONFIG_SPL_STACK) Here we can see that SPL_STACK is used as the first fallback for XPL_BUILD's. > diff --git a/arch/arm/lib/crt0_64.S b/arch/arm/lib/crt0_64.S > index 32401f544a7..62a0abe1fed 100644 > --- a/arch/arm/lib/crt0_64.S > +++ b/arch/arm/lib/crt0_64.S > @@ -69,7 +69,7 @@ ENTRY(_main) > /* > * Set up initial C runtime environment and call board_init_f(0). > */ > -#if defined(CONFIG_TPL_BUILD) && defined(CONFIG_TPL_NEEDS_SEPARATE_STACK) > +#if defined(CONFIG_TPL_BUILD) && defined(CONFIG_TPL_HAVE_INIT_STACK) > ldr x0, =(CONFIG_TPL_STACK) > #elif defined(CONFIG_XPL_BUILD) && defined(CONFIG_SPL_STACK) > ldr x0, =(CONFIG_SPL_STACK) > diff --git a/arch/arm/mach-rockchip/Kconfig b/arch/arm/mach-rockchip/Kconfig > index 4d3157b2edd..4c515593718 100644 > --- a/arch/arm/mach-rockchip/Kconfig > +++ b/arch/arm/mach-rockchip/Kconfig > @@ -9,7 +9,7 @@ config ROCKCHIP_PX30 > select SPL > select TPL > select TPL_TINY_FRAMEWORK if TPL > - select TPL_NEEDS_SEPARATE_STACK if TPL > + select TPL_HAVE_INIT_STACK if TPL > imply SPL_SEPARATE_BSS > select SPL_SERIAL > select TPL_SERIAL > @@ -106,7 +106,7 @@ config ROCKCHIP_RK322X > select TPL > select TPL_DM > select TPL_OF_LIBFDT > - select TPL_NEEDS_SEPARATE_STACK if TPL > + select TPL_HAVE_INIT_STACK if TPL > select SPL_DRIVERS_MISC > imply ROCKCHIP_COMMON_BOARD > imply SPL_SERIAL > @@ -139,7 +139,7 @@ config ROCKCHIP_RK3288 > imply TPL_DRIVERS_MISC > imply TPL_LIBCOMMON_SUPPORT > imply TPL_LIBGENERIC_SUPPORT > - imply TPL_NEEDS_SEPARATE_STACK > + imply TPL_HAVE_INIT_STACK > imply TPL_OF_CONTROL > imply TPL_OF_PLATDATA > imply TPL_RAM > @@ -197,7 +197,7 @@ config ROCKCHIP_RK3328 > select SPL > select SUPPORT_TPL > select TPL > - select TPL_NEEDS_SEPARATE_STACK if TPL > + select TPL_HAVE_INIT_STACK if TPL > imply ARMV8_CRYPTO > imply ARMV8_SET_SMPEN > imply MISC > @@ -225,7 +225,7 @@ config ROCKCHIP_RK3368 > select ARM64 > select SUPPORT_SPL > select SUPPORT_TPL > - select TPL_NEEDS_SEPARATE_STACK if TPL > + select TPL_HAVE_INIT_STACK if TPL > imply ROCKCHIP_COMMON_BOARD > imply SPL_ROCKCHIP_COMMON_BOARD > imply SPL_SEPARATE_BSS > @@ -257,7 +257,7 @@ config ROCKCHIP_RK3399 > select SPL_RAM if SPL > select SPL_REGMAP if SPL > select SPL_SYSCON if SPL > - select TPL_NEEDS_SEPARATE_STACK if TPL > + select TPL_HAVE_INIT_STACK if TPL > select SPL_SEPARATE_BSS > select CLK > select FIT > @@ -392,7 +392,7 @@ config ROCKCHIP_RV1126 > select SKIP_LOWLEVEL_INIT_ONLY > select TPL > select SUPPORT_TPL > - select TPL_NEEDS_SEPARATE_STACK > + select TPL_HAVE_INIT_STACK > select TPL_ROCKCHIP_BACK_TO_BROM > select SPL > select SUPPORT_SPL > diff --git a/common/spl/Kconfig.tpl b/common/spl/Kconfig.tpl > index 22ca7016453..980d6da202a 100644 > --- a/common/spl/Kconfig.tpl > +++ b/common/spl/Kconfig.tpl > @@ -106,12 +106,6 @@ config TPL_LDSCRIPT > May be left empty to trigger the Makefile infrastructure to > fall back to the linker-script used for the SPL stage. > > -config TPL_NEEDS_SEPARATE_STACK > - bool "TPL needs a separate initial stack-pointer" > - help > - Enable, if the TPL stage should not inherit its initial > - stack-pointer from the settings for the SPL stage. > - > config TPL_POWER > bool "Support power drivers" > help > @@ -140,11 +134,18 @@ config TPL_MAX_SIZE > help > The maximum size (in bytes) of the TPL stage. > > +config TPL_HAVE_INIT_STACK > + bool "TPL requires a initial, fixed, stack-pointer location" > + help > + Enable if the TPL phase should not use inherit its initial "should not use inherit its initial" does not sound correct. > + stack-pointer from the settings for U-Boot proper, but should set Here you are changing from SPL to proper, however the SPL address will be used as the fallback (if it is defined) and then SYS_INIT_SP_ADDR. > + its own value. > + > config TPL_STACK > - hex "Address of the initial stack-pointer for the TPL stage" > - depends on TPL_NEEDS_SEPARATE_STACK > + hex "Address of the initial stack-pointer for the TPL phase" > + depends on TPL_HAVE_INIT_STACK > help > - The address of the initial stack-pointer for the TPL stage. > + The address of the initial stack-pointer for the TPL phase Did you remove the . (period) on purpose? Regards, Jonas > Usually this will be the (aligned) top-of-stack. > > config TPL_READ_ONLY > diff --git a/configs/mk808_defconfig b/configs/mk808_defconfig > index e47d0b594f3..a1f089a23ea 100644 > --- a/configs/mk808_defconfig > +++ b/configs/mk808_defconfig > @@ -48,7 +48,7 @@ CONFIG_SPL_NO_BSS_LIMIT=y > CONFIG_SPL_SEPARATE_BSS=y > CONFIG_SPL_FS_EXT4=y > CONFIG_SYS_MMCSD_FS_BOOT_PARTITION=2 > -CONFIG_TPL_NEEDS_SEPARATE_STACK=y > +CONFIG_TPL_HAVE_INIT_STACK=y > # CONFIG_BOOTM_PLAN9 is not set > # CONFIG_BOOTM_RTEMS is not set > # CONFIG_BOOTM_VXWORKS is not set