
On boards with size restrictions, 1-2k can be a significant fraction of the binary size. Add a new SPL version of SYS_MALLOC_RUNTIME_INIT. As this trades text size for BSS size, enable it by default only for boards with at least 16k of BSS.
Signed-off-by: Sean Anderson sean.anderson@seco.com ---
Changes in v3: - Don't enable SPL_SYS_MALLOC_RUNTIME_INIT if we are short on BSS
Kconfig | 11 +++++++++++ 1 file changed, 11 insertions(+)
diff --git a/Kconfig b/Kconfig index 3967613b232..da5986e2fe8 100644 --- a/Kconfig +++ b/Kconfig @@ -414,6 +414,17 @@ config SYS_MALLOC_RUNTIME_INIT reduce the size of U-Boot by letting malloc's data reside in .bss instead of .data.
+config SPL_SYS_MALLOC_RUNTIME_INIT + bool "Initialize malloc's internal data at runtime in SPL" + default y if !SPL_BSS_LIMIT || SPL_BSS_MAX_SIZE >= 0x1000 + depends on SPL + help + Initialize malloc's internal data structures at SPL runtime, rather + than at compile-time. This is necessary if relocating the malloc arena + from a smaller static memory to a large DDR memory. It can also reduce + the size of U-Boot by letting malloc's data reside in .bss instead of + .data. + config TOOLS_DEBUG bool "Enable debug information for tools" help