On Thu, Jun 30, 2022 at 04:06:22AM -0600, Simon Glass wrote: > Hi Marek, > > On Sat, 25 Jun 2022 at 11:58, Marek Vasut <ma...@denx.de> wrote: > > > > In case the MALLOC_F_ADDR is set to non-zero value, the early malloc area is > > not going to be placed just below stack top, but elsewhere. Do not reserve > > MALLOC_F bytes in this case, as that wastes stack space and may even cause > > insufficient stack space in SPL. > > > > This functionality is particularly useful on i.MX8M, where the insufficient > > stack space can be triggered. > > > > Signed-off-by: Marek Vasut <ma...@denx.de> > > Cc: Albert ARIBAUD <albert.u.b...@aribaud.net> > > Cc: Fabio Estevam <feste...@denx.de> > > Cc: Peng Fan <peng....@nxp.com> > > Cc: Simon Glass <s...@chromium.org> > > Cc: Stefano Babic <sba...@denx.de> > > Cc: Thomas Chou <tho...@wytron.com.tw> > > Cc: Tom Rini <tr...@konsulko.com> > > --- > > common/init/board_init.c | 2 ++ > > 1 file changed, 2 insertions(+) > > Please can you migrate the option to Kconfig first? I suspect that > will simplify the logic and avoid the #ifndef
That was my first reaction as well. But, I'm not so sure after looking at things more. An issue is that CONFIG_MALLOC_F_ADDR should probably be CONFIG_SPL_MALLOC_F_ADDR as it's only used in SPL. But it's also not an either/or around CONFIG_SPL_SYS_MALLOC_F_LEN. It would be good to move to Kconfig (but I also don't see a common default for the handful of SoCs using it), and maybe a !CONFIG_VAL() test instead of ifndef. > > > > > diff --git a/common/init/board_init.c b/common/init/board_init.c > > index eab5ee13953..6a550261778 100644 > > --- a/common/init/board_init.c > > +++ b/common/init/board_init.c > > @@ -78,8 +78,10 @@ __weak void board_init_f_init_stack_protection(void) > > ulong board_init_f_alloc_reserve(ulong top) > > { > > /* Reserve early malloc arena */ > > +#ifndef CONFIG_MALLOC_F_ADDR > > #if CONFIG_VAL(SYS_MALLOC_F_LEN) > > top -= CONFIG_VAL(SYS_MALLOC_F_LEN); > > +#endif > > #endif > > /* LAST : reserve GD (rounded up to a multiple of 16 bytes) */ > > top = rounddown(top-sizeof(struct global_data), 16); > > -- > > 2.35.1 > > > > Regards, > Simon -- Tom
signature.asc
Description: PGP signature