spl: make SPL and normal u-boot stage use independent SYS_MALLOC_F_LEN
Some platforms have very limited SRAM to run SPL code, so there may not be the same amount space for a malloc pool before relocation in the SPL stage as the normal U-Boot stage. Make SPL and (the full) U-Boot stage use independent SYS_MALLOC_F_LEN, so the size of pre-relocation malloc pool can be configured memory space independently. Signed-off-by: Andy Yan <andy.yan@rock-chips.com> Reviewed-by: Tom Rini <trini@konsulko.com> Acked-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com> Reviewed-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com> [fixed up commit-message:] Signed-off-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
This commit is contained in:
committed by
Philipp Tomsich
parent
a1903c18db
commit
f1896c45cb
@@ -46,8 +46,8 @@ __weak void arch_setup_gd(struct global_data *gd_ptr)
|
||||
ulong board_init_f_alloc_reserve(ulong top)
|
||||
{
|
||||
/* Reserve early malloc arena */
|
||||
#if defined(CONFIG_SYS_MALLOC_F)
|
||||
top -= CONFIG_SYS_MALLOC_F_LEN;
|
||||
#if CONFIG_VAL(SYS_MALLOC_F_LEN)
|
||||
top -= CONFIG_VAL(SYS_MALLOC_F_LEN);
|
||||
#endif
|
||||
/* LAST : reserve GD (rounded up to a multiple of 16 bytes) */
|
||||
top = rounddown(top-sizeof(struct global_data), 16);
|
||||
@@ -121,11 +121,11 @@ void board_init_f_init_reserve(ulong base)
|
||||
* Use gd as it is now properly set for all architectures.
|
||||
*/
|
||||
|
||||
#if defined(CONFIG_SYS_MALLOC_F)
|
||||
#if CONFIG_VAL(SYS_MALLOC_F_LEN)
|
||||
/* go down one 'early malloc arena' */
|
||||
gd->malloc_base = base;
|
||||
/* next alloc will be higher by one 'early malloc arena' size */
|
||||
base += CONFIG_SYS_MALLOC_F_LEN;
|
||||
base += CONFIG_VAL(SYS_MALLOC_F_LEN);
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user