
From: Fabio Estevam fabio.estevam@freescale.com
Prior to commit 5ba534d247d418 ("arm: Switch 32-bit ARM to using generic global_data setup") we used to have assembly code that configured the malloc_base address.
After this commit we use the board_init_f_mem() function in C to setup malloc_base address.
However the ifdef logic has a problem that prevents malloc_base to be configured in the SPL case.
This issue has been observed in a Congatec board, where we need to retrieve the manufacturing information from the SPI NOR (the SPI API calls malloc) prior to configuring the DRAM. In this case as malloc_base was not configured we always see malloc to fail.
Adjust the ifdef logic so that malloc_base is always configured when CONFIG_SYS_MALLOC_F is set.
Signed-off-by: Fabio Estevam fabio.estevam@freescale.com --- common/init/board_init.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/common/init/board_init.c b/common/init/board_init.c index e74b63b..1c6126d 100644 --- a/common/init/board_init.c +++ b/common/init/board_init.c @@ -50,8 +50,7 @@ ulong board_init_f_mem(ulong top) #endif arch_setup_gd(gd_ptr);
-#if defined(CONFIG_SYS_MALLOC_F) && \ - (!defined(CONFIG_SPL_BUILD) || !defined(CONFIG_SYS_SPL_MALLOC_START)) +#if defined(CONFIG_SYS_MALLOC_F) top -= CONFIG_SYS_MALLOC_F_LEN; gd->malloc_base = top; #endif