Migrate CUSTOM_SYS_INIT_SP_ADDR to Kconfig using system-constants.h
- Make all users of CUSTOM_SYS_INIT_SP_ADDR reference SYS_INIT_SP_ADDR
- Introduce HAS_CUSTOM_SYS_INIT_SP_ADDR to allow for setting the stack
pointer directly, otherwise we use the common calculation.
- On some platforms that were using the standard calculation but did not
set CONFIG_SYS_INIT_RAM_SIZE / CONFIG_SYS_INIT_RAM_ADDR, set them.
- On a small number of platforms that were not subtracting
GENERATED_GBL_DATA_SIZE do so now via the standard calculation.
- CONFIG_SYS_INIT_SP_OFFSET is now widely unused, so remove it from most
board config header files.
Signed-off-by: Tom Rini <trini@konsulko.com>
diff --git a/Kconfig b/Kconfig
index f017968..429b5f9 100644
--- a/Kconfig
+++ b/Kconfig
@@ -242,6 +242,24 @@
Enables allocating and saving a kernel copy of the bd_info in
space between "bootm_low" and "bootm_low" + BOOTMAPSZ.
+config HAS_CUSTOM_SYS_INIT_SP_ADDR
+ bool "Use a custom location for the initial stack pointer address"
+ depends on ARC || (ARM && !INIT_SP_RELATIVE) || MIPS || PPC || RISCV
+ default y if TFABOOT
+ help
+ Typically, we use an initial stack pointer address that is calculated
+ by taking the statically defined CONFIG_SYS_INIT_RAM_ADDR, adding the
+ statically defined CONFIG_SYS_INIT_RAM_SIZE and then subtracting the
+ build-time constant of GENERATED_GBL_DATA_SIZE. On MIPS a different
+ but statica calculation is performed. However, some platforms will
+ take a different approach. Say Y here to define the address statically
+ instead.
+
+config CUSTOM_SYS_INIT_SP_ADDR
+ hex "Static location for the initial stack pointer"
+ depends on HAS_CUSTOM_SYS_INIT_SP_ADDR
+ default SYS_TEXT_BASE if TFABOOT
+
config SYS_MALLOC_F
bool "Enable malloc() pool before relocation"
default y if DM