
Some platforms cannot use simple malloc even in very early stages, e.g. when using FAT before DRAM is available. Such platforms currently often use non-Kconfig defines to initialize full malloc and rely on simple heap before that.
This series makes some adjustments to ensure SPL behaves the same with simple or full malloc: when CONFIG_SPL_SYS_MALLOC_F_LEN is != 0, both heap types can be used (by changing CONFIG_SPL_SYS_MALLOC_SIMPLE), without manually supplying an address range for the full heap.
Changes in v3: - improve commit message to show why CONFIG_CLEAR_BSS_F is needed - fixed summary ("stack" -> "heap") - enable CONFIG_SPL_CLEAR_BSS_F for socfpga_arria10 using full malloc early in SPL - rebased
Changes in v2: - make CONFIG_SPL_CLEAR_BSS_F depend on ARM for now - add CONFIG_SPL_CLEAR_BSS_F implementation for arm64 also - use if() instead of #if - adapt documentation to using CONFIG_SPL_SYS_MALLOC_F_LEN for full-featured heap as well - ensure SPL_CLEAR_BSS_F is set when using SYS_MALLOC_F_LEN for full featured heap (or else, the heap status stored in bss will be overwritten between board_init_f and board_init_r)
Simon Goldschmidt (6): spl: add Kconfig option to clear bss early spl: arm: implement SPL_CLEAR_BSS_F dlmalloc: fix malloc range at end of ram dlmalloc: be compatible to tiny printf spl: support using full malloc with SYS_MALLOC_F_LEN arm: socfpga: a10: move SPL heap size to Kconfig
Kconfig | 24 ++++++++++++++-------- README | 15 ++++++++++---- arch/arm/lib/crt0.S | 22 +++++++++++++++++++++ arch/arm/lib/crt0_64.S | 14 +++++++++++++ common/dlmalloc.c | 6 +++++- common/spl/Kconfig | 12 +++++++++++ common/spl/spl.c | 10 ++++++++-- configs/socfpga_arria10_defconfig | 2 ++ drivers/core/Kconfig | 33 +++++++++++++++---------------- include/configs/socfpga_common.h | 14 ------------- 10 files changed, 106 insertions(+), 46 deletions(-)