On Sun, 24 Nov 2024 at 20:38, Caleb Connolly <caleb.conno...@linaro.org> wrote: > > Currently the early malloc initialisation is done partially in > board_init_f_init_reserve() (on arm64 at least), which configures > gd->malloc_base. But it isn't actually usable until initf_malloc() is > called which doesn't happen until after fdtdec_setup(). > > This causes problems in a few scenarios: > > 1. when using MULTI_DTB_FIT as this needs a working malloc (especially > for compressed FIT). > 2. Some platforms may need to allocate memory as part of memory map > initialisation (e.g. Qualcomm will need this to parse the memory map > from SMEM). > > Move the initf_malloc() call earlier so that malloc is available during > fdtdec_setup(). > > Signed-off-by: Caleb Connolly <caleb.conno...@linaro.org> > --- > common/board_f.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/common/board_f.c b/common/board_f.c > index 98dc2591e1d0..bddfa6b992b9 100644 > --- a/common/board_f.c > +++ b/common/board_f.c > @@ -867,15 +867,15 @@ static int initf_upl(void) > } > > static const init_fnc_t init_sequence_f[] = { > setup_mon_len, > + initf_malloc, > #ifdef CONFIG_OF_CONTROL > fdtdec_setup, > #endif > #ifdef CONFIG_TRACE_EARLY > trace_early_init, > #endif > - initf_malloc, > initf_upl, > log_init, > initf_bootstage, /* uses its own timer, so does not need DM */ > event_init, > -- > 2.47.0 >
Reviewed-by: Ilias Apalodimas <ilias.apalodi...@linaro.org>