From mboxrd@z Thu Jan 1 00:00:00 1970 From: Simon Glass Date: Tue, 21 Feb 2017 21:00:09 -0700 Subject: [U-Boot] rockchip: rk3288: init malloc_base, limit, ptr before spl_init In-Reply-To: <1487664903-14905-1-git-send-email-eddie.cai.linux@gmail.com> References: <1487664903-14905-1-git-send-email-eddie.cai.linux@gmail.com> Message-ID: List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de Hi Eddie, On 21 February 2017 at 01:15, Eddie Cai wrote: > 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 > Date: Fri Jan 27 10:39:19 2017 -0600 > > spl: Remove overwrite of relocated malloc limit > > Signed-off-by: Eddie Cai > --- > 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 > + Yuck we should not repeat this code. Can we instead have two versions of spl_init()? Perhaps call the one that always sets things up spl_early_init() since it is called before board_init_r()? > ret = spl_init(); > if (ret) { > debug("spl_init() failed: %d\n", ret); > -- > 2.7.4 > Regards, Simon