spl: Use SYS_MALLOC_F instead of SYS_MALLOC_F_LEN

Use the new SPL/TPL/VPL_SYS_MALLOC_F symbols to determine whether the
malloc pool exists.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Sean Anderson <sean.anderson@seco.com>
This commit is contained in:
Simon Glass 2023-09-26 08:14:27 -06:00 committed by Tom Rini
parent a572041807
commit 3d6d507514
16 changed files with 31 additions and 36 deletions

View file

@ -307,8 +307,7 @@ config SPL_SYS_MALLOC_F
config SPL_SYS_MALLOC_F_LEN config SPL_SYS_MALLOC_F_LEN
hex "Size of malloc() pool in SPL" hex "Size of malloc() pool in SPL"
depends on SYS_MALLOC_F && SPL depends on SPL_SYS_MALLOC_F
default 0x0 if !SPL_FRAMEWORK
default 0x2800 if RCAR_GEN3 default 0x2800 if RCAR_GEN3
default 0x2000 if IMX8MQ default 0x2000 if IMX8MQ
default SYS_MALLOC_F_LEN default SYS_MALLOC_F_LEN
@ -332,7 +331,7 @@ config TPL_SYS_MALLOC_F
config TPL_SYS_MALLOC_F_LEN config TPL_SYS_MALLOC_F_LEN
hex "Size of malloc() pool in TPL" hex "Size of malloc() pool in TPL"
depends on SYS_MALLOC_F && TPL depends on TPL_SYS_MALLOC_F
default SPL_SYS_MALLOC_F_LEN default SPL_SYS_MALLOC_F_LEN
help help
Sets the size of the malloc() pool in TPL. This is used for Sets the size of the malloc() pool in TPL. This is used for
@ -366,8 +365,8 @@ config VPL_SYS_MALLOC_F
config VPL_SYS_MALLOC_F_LEN config VPL_SYS_MALLOC_F_LEN
hex "Size of malloc() pool in VPL before relocation" hex "Size of malloc() pool in VPL before relocation"
depends on SYS_MALLOC_F && VPL depends on VPL_SYS_MALLOC_F
default SYS_MALLOC_F_LEN default SPL_SYS_MALLOC_F_LEN
help help
Sets the size of the malloc() pool in VPL. This is used for Sets the size of the malloc() pool in VPL. This is used for
driver model and other features, which must allocate memory for driver model and other features, which must allocate memory for

View file

@ -57,7 +57,7 @@ void arch_print_bdinfo(void)
#ifdef CONFIG_BOARD_TYPES #ifdef CONFIG_BOARD_TYPES
printf("Board Type = %ld\n", gd->board_type); printf("Board Type = %ld\n", gd->board_type);
#endif #endif
#if CONFIG_VAL(SYS_MALLOC_F_LEN) #if CONFIG_IS_ENABLED(SYS_MALLOC_F)
printf("Early malloc usage: %lx / %x\n", gd->malloc_ptr, printf("Early malloc usage: %lx / %x\n", gd->malloc_ptr,
CONFIG_VAL(SYS_MALLOC_F_LEN)); CONFIG_VAL(SYS_MALLOC_F_LEN));
#endif #endif

View file

@ -46,7 +46,7 @@
sp, sp, GD_SIZE # reserve space for gd sp, sp, GD_SIZE # reserve space for gd
and sp, sp, t0 # force 16 byte alignment and sp, sp, t0 # force 16 byte alignment
move k0, sp # save gd pointer move k0, sp # save gd pointer
#if CONFIG_VAL(SYS_MALLOC_F_LEN) && \ #if CONFIG_IS_ENABLED(SYS_MALLOC_F) && \
!CONFIG_IS_ENABLED(INIT_STACK_WITHOUT_MALLOC_F) !CONFIG_IS_ENABLED(INIT_STACK_WITHOUT_MALLOC_F)
li t2, CONFIG_VAL(SYS_MALLOC_F_LEN) li t2, CONFIG_VAL(SYS_MALLOC_F_LEN)
PTR_SUBU \ PTR_SUBU \
@ -63,7 +63,7 @@
blt t0, t1, 1b blt t0, t1, 1b
nop nop
#if CONFIG_VAL(SYS_MALLOC_F_LEN) && \ #if CONFIG_IS_ENABLED(SYS_MALLOC_F) && \
!CONFIG_IS_ENABLED(INIT_STACK_WITHOUT_MALLOC_F) !CONFIG_IS_ENABLED(INIT_STACK_WITHOUT_MALLOC_F)
PTR_S sp, GD_MALLOC_BASE(k0) # gd->malloc_base offset PTR_S sp, GD_MALLOC_BASE(k0) # gd->malloc_base offset
#endif #endif

View file

@ -37,7 +37,7 @@
sp, sp, GD_SIZE # reserve space for gd sp, sp, GD_SIZE # reserve space for gd
and sp, sp, t0 # force 16 byte alignment and sp, sp, t0 # force 16 byte alignment
move k0, sp # save gd pointer move k0, sp # save gd pointer
#if CONFIG_VAL(SYS_MALLOC_F_LEN) && \ #if CONFIG_IS_ENABLED(SYS_MALLOC_F) && \
!CONFIG_IS_ENABLED(INIT_STACK_WITHOUT_MALLOC_F) !CONFIG_IS_ENABLED(INIT_STACK_WITHOUT_MALLOC_F)
li t2, CONFIG_VAL(SYS_MALLOC_F_LEN) li t2, CONFIG_VAL(SYS_MALLOC_F_LEN)
PTR_SUBU \ PTR_SUBU \
@ -54,7 +54,7 @@
blt t0, t1, 1b blt t0, t1, 1b
nop nop
#if CONFIG_VAL(SYS_MALLOC_F_LEN) && \ #if CONFIG_IS_ENABLED(SYS_MALLOC_F) && \
!CONFIG_IS_ENABLED(INIT_STACK_WITHOUT_MALLOC_F) !CONFIG_IS_ENABLED(INIT_STACK_WITHOUT_MALLOC_F)
PTR_S sp, GD_MALLOC_BASE(k0) # gd->malloc_base offset PTR_S sp, GD_MALLOC_BASE(k0) # gd->malloc_base offset
#endif #endif

View file

@ -244,7 +244,7 @@ in_flash:
cmplw r3, r4 cmplw r3, r4
bne 1b bne 1b
#if CONFIG_VAL(SYS_MALLOC_F_LEN) #if CONFIG_IS_ENABLED(SYS_MALLOC_F)
#if CONFIG_VAL(SYS_MALLOC_F_LEN) + GENERATED_GBL_DATA_SIZE > CFG_SYS_INIT_RAM_SIZE #if CONFIG_VAL(SYS_MALLOC_F_LEN) + GENERATED_GBL_DATA_SIZE > CFG_SYS_INIT_RAM_SIZE
#error "SYS_MALLOC_F_LEN too large to fit into initial RAM." #error "SYS_MALLOC_F_LEN too large to fit into initial RAM."

View file

@ -1233,7 +1233,7 @@ _start_cont:
lis r3,(CFG_SYS_INIT_RAM_ADDR)@h lis r3,(CFG_SYS_INIT_RAM_ADDR)@h
ori r3,r3,((CFG_SYS_INIT_SP_OFFSET-16)&~0xf)@l /* Align to 16 */ ori r3,r3,((CFG_SYS_INIT_SP_OFFSET-16)&~0xf)@l /* Align to 16 */
#if CONFIG_VAL(SYS_MALLOC_F_LEN) #if CONFIG_IS_ENABLED(SYS_MALLOC_F)
#if CONFIG_VAL(SYS_MALLOC_F_LEN) + GENERATED_GBL_DATA_SIZE > CFG_SYS_INIT_RAM_SIZE #if CONFIG_VAL(SYS_MALLOC_F_LEN) + GENERATED_GBL_DATA_SIZE > CFG_SYS_INIT_RAM_SIZE
#error "SYS_MALLOC_F_LEN too large to fit into initial RAM." #error "SYS_MALLOC_F_LEN too large to fit into initial RAM."
#endif #endif
@ -1253,7 +1253,7 @@ _start_cont:
cmplw r4,r3 cmplw r4,r3
bne 1b bne 1b
#if CONFIG_VAL(SYS_MALLOC_F_LEN) #if CONFIG_IS_ENABLED(SYS_MALLOC_F)
lis r4,SYS_INIT_SP_ADDR@h lis r4,SYS_INIT_SP_ADDR@h
ori r4,r4,SYS_INIT_SP_ADDR@l ori r4,r4,SYS_INIT_SP_ADDR@l

View file

@ -529,7 +529,7 @@ int sandbox_main(int argc, char *argv[])
goto err; goto err;
} }
#if CONFIG_VAL(SYS_MALLOC_F_LEN) #if CONFIG_IS_ENABLED(SYS_MALLOC_F)
gd->malloc_base = CFG_MALLOC_F_ADDR; gd->malloc_base = CFG_MALLOC_F_ADDR;
#endif #endif
#if CONFIG_IS_ENABLED(LOG) #if CONFIG_IS_ENABLED(LOG)

View file

@ -53,7 +53,7 @@ _start:
mov.l ._gd_init, r13 /* global data */ mov.l ._gd_init, r13 /* global data */
mov.l ._stack_init, r15 /* stack */ mov.l ._stack_init, r15 /* stack */
#if CONFIG_VAL(SYS_MALLOC_F_LEN) #if CONFIG_IS_ENABLED(SYS_MALLOC_F)
mov.l ._gd_malloc_base, r14 mov.l ._gd_malloc_base, r14
mov.l r15, @r14 mov.l r15, @r14
#endif #endif
@ -73,7 +73,7 @@ loop:
._bss_start: .long bss_start ._bss_start: .long bss_start
._bss_end: .long bss_end ._bss_end: .long bss_end
._gd_init: .long (_start - GENERATED_GBL_DATA_SIZE) ._gd_init: .long (_start - GENERATED_GBL_DATA_SIZE)
#if CONFIG_VAL(SYS_MALLOC_F_LEN) #if CONFIG_IS_ENABLED(SYS_MALLOC_F)
._gd_malloc_base: .long (_start - GENERATED_GBL_DATA_SIZE + GD_MALLOC_BASE) ._gd_malloc_base: .long (_start - GENERATED_GBL_DATA_SIZE + GD_MALLOC_BASE)
#endif #endif
._stack_init: .long (_start - GENERATED_GBL_DATA_SIZE - CONFIG_SYS_MALLOC_LEN - 16) ._stack_init: .long (_start - GENERATED_GBL_DATA_SIZE - CONFIG_SYS_MALLOC_LEN - 16)

View file

@ -74,11 +74,7 @@ endif # CONFIG_SPL_BUILD
obj-$(CONFIG_CROS_EC) += cros_ec.o obj-$(CONFIG_CROS_EC) += cros_ec.o
obj-y += dlmalloc.o obj-y += dlmalloc.o
ifdef CONFIG_SYS_MALLOC_F obj-$(CONFIG_$(SPL_TPL_)SYS_MALLOC_F) += malloc_simple.o
ifneq ($(CONFIG_$(SPL_TPL_)SYS_MALLOC_F_LEN),0x0)
obj-y += malloc_simple.o
endif
endif
obj-$(CONFIG_CYCLIC) += cyclic.o obj-$(CONFIG_CYCLIC) += cyclic.o
obj-$(CONFIG_$(SPL_TPL_)EVENT) += event.o obj-$(CONFIG_$(SPL_TPL_)EVENT) += event.o

View file

@ -794,7 +794,7 @@ static int initf_bootstage(void)
static int initf_dm(void) static int initf_dm(void)
{ {
#if defined(CONFIG_DM) && CONFIG_VAL(SYS_MALLOC_F_LEN) #if defined(CONFIG_DM) && CONFIG_IS_ENABLED(SYS_MALLOC_F)
int ret; int ret;
bootstage_start(BOOTSTAGE_ID_ACCUM_DM_F, "dm_f"); bootstage_start(BOOTSTAGE_ID_ACCUM_DM_F, "dm_f");

View file

@ -191,7 +191,7 @@ static int initr_malloc(void)
{ {
ulong start; ulong start;
#if CONFIG_VAL(SYS_MALLOC_F_LEN) #if CONFIG_IS_ENABLED(SYS_MALLOC_F)
debug("Pre-reloc malloc() used %#lx bytes (%ld KB)\n", gd->malloc_ptr, debug("Pre-reloc malloc() used %#lx bytes (%ld KB)\n", gd->malloc_ptr,
gd->malloc_ptr / 1024); gd->malloc_ptr / 1024);
#endif #endif

View file

@ -1291,7 +1291,7 @@ Void_t* mALLOc(bytes) size_t bytes;
INTERNAL_SIZE_T nb; INTERNAL_SIZE_T nb;
#if CONFIG_VAL(SYS_MALLOC_F_LEN) #if CONFIG_IS_ENABLED(SYS_MALLOC_F)
if (!(gd->flags & GD_FLG_FULL_MALLOC_INIT)) if (!(gd->flags & GD_FLG_FULL_MALLOC_INIT))
return malloc_simple(bytes); return malloc_simple(bytes);
#endif #endif
@ -1572,7 +1572,7 @@ void fREe(mem) Void_t* mem;
mchunkptr fwd; /* misc temp for linking */ mchunkptr fwd; /* misc temp for linking */
int islr; /* track whether merging with last_remainder */ int islr; /* track whether merging with last_remainder */
#if CONFIG_VAL(SYS_MALLOC_F_LEN) #if CONFIG_IS_ENABLED(SYS_MALLOC_F)
/* free() is a no-op - all the memory will be freed on relocation */ /* free() is a no-op - all the memory will be freed on relocation */
if (!(gd->flags & GD_FLG_FULL_MALLOC_INIT)) { if (!(gd->flags & GD_FLG_FULL_MALLOC_INIT)) {
VALGRIND_FREELIKE_BLOCK(mem, SIZE_SZ); VALGRIND_FREELIKE_BLOCK(mem, SIZE_SZ);
@ -1735,7 +1735,7 @@ Void_t* rEALLOc(oldmem, bytes) Void_t* oldmem; size_t bytes;
/* realloc of null is supposed to be same as malloc */ /* realloc of null is supposed to be same as malloc */
if (oldmem == NULL) return mALLOc(bytes); if (oldmem == NULL) return mALLOc(bytes);
#if CONFIG_VAL(SYS_MALLOC_F_LEN) #if CONFIG_IS_ENABLED(SYS_MALLOC_F)
if (!(gd->flags & GD_FLG_FULL_MALLOC_INIT)) { if (!(gd->flags & GD_FLG_FULL_MALLOC_INIT)) {
/* This is harder to support and should not be needed */ /* This is harder to support and should not be needed */
panic("pre-reloc realloc() is not supported"); panic("pre-reloc realloc() is not supported");
@ -1957,7 +1957,7 @@ Void_t* mEMALIGn(alignment, bytes) size_t alignment; size_t bytes;
if ((long)bytes < 0) return NULL; if ((long)bytes < 0) return NULL;
#if CONFIG_VAL(SYS_MALLOC_F_LEN) #if CONFIG_IS_ENABLED(SYS_MALLOC_F)
if (!(gd->flags & GD_FLG_FULL_MALLOC_INIT)) { if (!(gd->flags & GD_FLG_FULL_MALLOC_INIT)) {
return memalign_simple(alignment, bytes); return memalign_simple(alignment, bytes);
} }
@ -2153,7 +2153,7 @@ Void_t* cALLOc(n, elem_size) size_t n; size_t elem_size;
return NULL; return NULL;
else else
{ {
#if CONFIG_VAL(SYS_MALLOC_F_LEN) #if CONFIG_IS_ENABLED(SYS_MALLOC_F)
if (!(gd->flags & GD_FLG_FULL_MALLOC_INIT)) { if (!(gd->flags & GD_FLG_FULL_MALLOC_INIT)) {
memset(mem, 0, sz); memset(mem, 0, sz);
return mem; return mem;
@ -2455,7 +2455,7 @@ int mALLOPt(param_number, value) int param_number; int value;
int initf_malloc(void) int initf_malloc(void)
{ {
#if CONFIG_VAL(SYS_MALLOC_F_LEN) #if CONFIG_IS_ENABLED(SYS_MALLOC_F)
assert(gd->malloc_base); /* Set up by crt0.S */ assert(gd->malloc_base); /* Set up by crt0.S */
gd->malloc_limit = CONFIG_VAL(SYS_MALLOC_F_LEN); gd->malloc_limit = CONFIG_VAL(SYS_MALLOC_F_LEN);
gd->malloc_ptr = 0; gd->malloc_ptr = 0;

View file

@ -79,7 +79,7 @@ ulong board_init_f_alloc_reserve(ulong top)
{ {
/* Reserve early malloc arena */ /* Reserve early malloc arena */
#ifndef CFG_MALLOC_F_ADDR #ifndef CFG_MALLOC_F_ADDR
#if CONFIG_VAL(SYS_MALLOC_F_LEN) #if CONFIG_IS_ENABLED(SYS_MALLOC_F)
top -= CONFIG_VAL(SYS_MALLOC_F_LEN); top -= CONFIG_VAL(SYS_MALLOC_F_LEN);
#endif #endif
#endif #endif
@ -159,7 +159,7 @@ void board_init_f_init_reserve(ulong base)
* Use gd as it is now properly set for all architectures. * Use gd as it is now properly set for all architectures.
*/ */
#if CONFIG_VAL(SYS_MALLOC_F_LEN) #if CONFIG_IS_ENABLED(SYS_MALLOC_F)
/* go down one 'early malloc arena' */ /* go down one 'early malloc arena' */
gd->malloc_base = base; gd->malloc_base = base;
#if CONFIG_IS_ENABLED(ZERO_MEM_BEFORE_USE) #if CONFIG_IS_ENABLED(ZERO_MEM_BEFORE_USE)

View file

@ -523,7 +523,7 @@ static int spl_common_init(bool setup_malloc)
{ {
int ret; int ret;
#if CONFIG_VAL(SYS_MALLOC_F_LEN) #if CONFIG_IS_ENABLED(SYS_MALLOC_F)
if (setup_malloc) { if (setup_malloc) {
#ifdef CFG_MALLOC_F_ADDR #ifdef CFG_MALLOC_F_ADDR
gd->malloc_base = CFG_MALLOC_F_ADDR; gd->malloc_base = CFG_MALLOC_F_ADDR;
@ -860,7 +860,7 @@ void board_init_r(gd_t *dummy1, ulong dummy2)
} else { } else {
debug("Unsupported OS image.. Jumping nevertheless..\n"); debug("Unsupported OS image.. Jumping nevertheless..\n");
} }
#if CONFIG_VAL(SYS_MALLOC_F_LEN) && !defined(CONFIG_SPL_SYS_MALLOC_SIZE) #if CONFIG_IS_ENABLED(SYS_MALLOC_F) && !defined(CONFIG_SPL_SYS_MALLOC_SIZE)
debug("SPL malloc() used 0x%lx bytes (%ld KB)\n", gd->malloc_ptr, debug("SPL malloc() used 0x%lx bytes (%ld KB)\n", gd->malloc_ptr,
gd->malloc_ptr / 1024); gd->malloc_ptr / 1024);
#endif #endif
@ -961,7 +961,7 @@ ulong spl_relocate_stack_gd(void)
if (CONFIG_IS_ENABLED(SYS_REPORT_STACK_F_USAGE)) if (CONFIG_IS_ENABLED(SYS_REPORT_STACK_F_USAGE))
spl_relocate_stack_check(); spl_relocate_stack_check();
#if defined(CONFIG_SPL_SYS_MALLOC_SIMPLE) && CONFIG_VAL(SYS_MALLOC_F_LEN) #if defined(CONFIG_SPL_SYS_MALLOC_SIMPLE) && CONFIG_IS_ENABLED(SYS_MALLOC_F)
if (CONFIG_SPL_STACK_R_MALLOC_SIMPLE_LEN) { if (CONFIG_SPL_STACK_R_MALLOC_SIMPLE_LEN) {
debug("SPL malloc() before relocation used 0x%lx bytes (%ld KB)\n", debug("SPL malloc() before relocation used 0x%lx bytes (%ld KB)\n",
gd->malloc_ptr, gd->malloc_ptr / 1024); gd->malloc_ptr, gd->malloc_ptr / 1024);

View file

@ -307,7 +307,7 @@ struct global_data {
#if CONFIG_IS_ENABLED(CMD_BDINFO_EXTRA) #if CONFIG_IS_ENABLED(CMD_BDINFO_EXTRA)
unsigned long malloc_start; unsigned long malloc_start;
#endif #endif
#if CONFIG_VAL(SYS_MALLOC_F_LEN) #if CONFIG_IS_ENABLED(SYS_MALLOC_F)
/** /**
* @malloc_base: base address of early malloc() * @malloc_base: base address of early malloc()
*/ */

View file

@ -32,7 +32,7 @@ int main(void)
DEFINE(GD_FLAGS, offsetof(struct global_data, flags)); DEFINE(GD_FLAGS, offsetof(struct global_data, flags));
#if CONFIG_VAL(SYS_MALLOC_F_LEN) #if CONFIG_IS_ENABLED(SYS_MALLOC_F)
DEFINE(GD_MALLOC_BASE, offsetof(struct global_data, malloc_base)); DEFINE(GD_MALLOC_BASE, offsetof(struct global_data, malloc_base));
#endif #endif