[U-Boot] [PATCH 1/2] board_init: Fix the logic to setup malloc_base
Fabio Estevam
festevam at gmail.com
Wed Nov 11 23:15:03 CET 2015
From: Fabio Estevam <fabio.estevam at 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 at 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
--
1.9.1
More information about the U-Boot
mailing list