[U-Boot] [PATCH] ARM: crt0: Pass malloc base address

Albert ARIBAUD albert.u.boot at aribaud.net
Wed Nov 11 21:33:28 CET 2015


Hello Fabio,

On Wed, 11 Nov 2015 18:23:17 -0200, Fabio Estevam <festevam at gmail.com>
wrote:
> From: Fabio Estevam <fabio.estevam at freescale.com>
> 
> Commit 5ba534d247d418 ("arm: Switch 32-bit ARM to using generic global_data
> setup") causes malloc() to fail in SPL.
> 
> The reason is that the GD_MALLOC_BASE is not passed anymore.

This is the explanation of the SPL fail, but not the /cause/ of it.
IOW, why is GD_MALLOC_BASE not passed any more, and what function or
routine is it not passed any more to?

> Restore the code that passes malloc base so that we can have
> malloc working in SPL code again.
> 
> [...]

> +#if defined(CONFIG_SYS_MALLOC_F_LEN)
> +	sub	sp, sp, #CONFIG_SYS_MALLOC_F_LEN
> +	str	sp, [r9, #GD_MALLOC_BASE]
> +#endif

NAK, as this only papers over the actual issue. Board_init_f_mem should
have set the malloc base in GD. Therefore, rather than doing it again
later, we must determine why it was not properly done earlier.11111

Can you give me the toolchain version, board name and commit ID that I
could use to reproduce the *faulty* build and check the generated code?

Amicalement,
-- 
Albert.


More information about the U-Boot mailing list