[U-Boot] rockchip: rk3288: init malloc_base, limit, ptr before spl_init

Eddie Cai eddie.cai.linux at gmail.com
Tue Feb 21 08:15:03 UTC 2017


Andrew F. Davis's below patch broke rk3288 based board. that is because we call
spl_init in board_init_f which is at very early stage. What Andrew want to fix
is calling spl_init very late. That patch will make malloc_base, limit, ptr not
initualized in spl_init when we call spl_init in board_init_f.  It seems
impossible to meet two requirement in spl_init. So i simply init malloc_base,
limit, ptr before spl_init.

commit b3d2861eb20a795b99292b823c923935df26dfc6
Author: Andrew F. Davis <afd at ti.com>
Date:   Fri Jan 27 10:39:19 2017 -0600

    spl: Remove overwrite of relocated malloc limit

Signed-off-by: Eddie Cai <eddie.cai.linux at gmail.com>
---
 arch/arm/mach-rockchip/rk3288-board-spl.c | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/arch/arm/mach-rockchip/rk3288-board-spl.c b/arch/arm/mach-rockchip/rk3288-board-spl.c
index 930939a..1f3170d 100644
--- a/arch/arm/mach-rockchip/rk3288-board-spl.c
+++ b/arch/arm/mach-rockchip/rk3288-board-spl.c
@@ -184,6 +184,16 @@ void board_init_f(ulong dummy)
 	debug_uart_init();
 #endif
 
+#if defined(CONFIG_SYS_MALLOC_F_LEN)
+#ifdef CONFIG_MALLOC_F_ADDR
+	gd->malloc_base = CONFIG_MALLOC_F_ADDR;
+#endif
+#ifdef CONFIG_SPL_STACK_R_MALLOC_SIMPLE_LEN
+	gd->malloc_limit = CONFIG_SYS_MALLOC_F_LEN;
+#endif
+	gd->malloc_ptr = 0;
+#endif
+
 	ret = spl_init();
 	if (ret) {
 		debug("spl_init() failed: %d\n", ret);
-- 
2.7.4



More information about the U-Boot mailing list