mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-24 13:43:28 +00:00
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:
parent
a572041807
commit
3d6d507514
16 changed files with 31 additions and 36 deletions
9
Kconfig
9
Kconfig
|
@ -307,8 +307,7 @@ config SPL_SYS_MALLOC_F
|
|||
|
||||
config SPL_SYS_MALLOC_F_LEN
|
||||
hex "Size of malloc() pool in SPL"
|
||||
depends on SYS_MALLOC_F && SPL
|
||||
default 0x0 if !SPL_FRAMEWORK
|
||||
depends on SPL_SYS_MALLOC_F
|
||||
default 0x2800 if RCAR_GEN3
|
||||
default 0x2000 if IMX8MQ
|
||||
default SYS_MALLOC_F_LEN
|
||||
|
@ -332,7 +331,7 @@ config TPL_SYS_MALLOC_F
|
|||
|
||||
config TPL_SYS_MALLOC_F_LEN
|
||||
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
|
||||
help
|
||||
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
|
||||
hex "Size of malloc() pool in VPL before relocation"
|
||||
depends on SYS_MALLOC_F && VPL
|
||||
default SYS_MALLOC_F_LEN
|
||||
depends on VPL_SYS_MALLOC_F
|
||||
default SPL_SYS_MALLOC_F_LEN
|
||||
help
|
||||
Sets the size of the malloc() pool in VPL. This is used for
|
||||
driver model and other features, which must allocate memory for
|
||||
|
|
|
@ -57,7 +57,7 @@ void arch_print_bdinfo(void)
|
|||
#ifdef CONFIG_BOARD_TYPES
|
||||
printf("Board Type = %ld\n", gd->board_type);
|
||||
#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,
|
||||
CONFIG_VAL(SYS_MALLOC_F_LEN));
|
||||
#endif
|
||||
|
|
|
@ -46,7 +46,7 @@
|
|||
sp, sp, GD_SIZE # reserve space for gd
|
||||
and sp, sp, t0 # force 16 byte alignment
|
||||
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)
|
||||
li t2, CONFIG_VAL(SYS_MALLOC_F_LEN)
|
||||
PTR_SUBU \
|
||||
|
@ -63,7 +63,7 @@
|
|||
blt t0, t1, 1b
|
||||
nop
|
||||
|
||||
#if CONFIG_VAL(SYS_MALLOC_F_LEN) && \
|
||||
#if CONFIG_IS_ENABLED(SYS_MALLOC_F) && \
|
||||
!CONFIG_IS_ENABLED(INIT_STACK_WITHOUT_MALLOC_F)
|
||||
PTR_S sp, GD_MALLOC_BASE(k0) # gd->malloc_base offset
|
||||
#endif
|
||||
|
|
|
@ -37,7 +37,7 @@
|
|||
sp, sp, GD_SIZE # reserve space for gd
|
||||
and sp, sp, t0 # force 16 byte alignment
|
||||
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)
|
||||
li t2, CONFIG_VAL(SYS_MALLOC_F_LEN)
|
||||
PTR_SUBU \
|
||||
|
@ -54,7 +54,7 @@
|
|||
blt t0, t1, 1b
|
||||
nop
|
||||
|
||||
#if CONFIG_VAL(SYS_MALLOC_F_LEN) && \
|
||||
#if CONFIG_IS_ENABLED(SYS_MALLOC_F) && \
|
||||
!CONFIG_IS_ENABLED(INIT_STACK_WITHOUT_MALLOC_F)
|
||||
PTR_S sp, GD_MALLOC_BASE(k0) # gd->malloc_base offset
|
||||
#endif
|
||||
|
|
|
@ -244,7 +244,7 @@ in_flash:
|
|||
cmplw r3, r4
|
||||
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
|
||||
#error "SYS_MALLOC_F_LEN too large to fit into initial RAM."
|
||||
|
|
|
@ -1233,7 +1233,7 @@ _start_cont:
|
|||
lis r3,(CFG_SYS_INIT_RAM_ADDR)@h
|
||||
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
|
||||
#error "SYS_MALLOC_F_LEN too large to fit into initial RAM."
|
||||
#endif
|
||||
|
@ -1253,7 +1253,7 @@ _start_cont:
|
|||
cmplw r4,r3
|
||||
bne 1b
|
||||
|
||||
#if CONFIG_VAL(SYS_MALLOC_F_LEN)
|
||||
#if CONFIG_IS_ENABLED(SYS_MALLOC_F)
|
||||
lis r4,SYS_INIT_SP_ADDR@h
|
||||
ori r4,r4,SYS_INIT_SP_ADDR@l
|
||||
|
||||
|
|
|
@ -529,7 +529,7 @@ int sandbox_main(int argc, char *argv[])
|
|||
goto err;
|
||||
}
|
||||
|
||||
#if CONFIG_VAL(SYS_MALLOC_F_LEN)
|
||||
#if CONFIG_IS_ENABLED(SYS_MALLOC_F)
|
||||
gd->malloc_base = CFG_MALLOC_F_ADDR;
|
||||
#endif
|
||||
#if CONFIG_IS_ENABLED(LOG)
|
||||
|
|
|
@ -53,7 +53,7 @@ _start:
|
|||
|
||||
mov.l ._gd_init, r13 /* global data */
|
||||
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 r15, @r14
|
||||
#endif
|
||||
|
@ -73,7 +73,7 @@ loop:
|
|||
._bss_start: .long bss_start
|
||||
._bss_end: .long bss_end
|
||||
._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)
|
||||
#endif
|
||||
._stack_init: .long (_start - GENERATED_GBL_DATA_SIZE - CONFIG_SYS_MALLOC_LEN - 16)
|
||||
|
|
|
@ -74,11 +74,7 @@ endif # CONFIG_SPL_BUILD
|
|||
|
||||
obj-$(CONFIG_CROS_EC) += cros_ec.o
|
||||
obj-y += dlmalloc.o
|
||||
ifdef CONFIG_SYS_MALLOC_F
|
||||
ifneq ($(CONFIG_$(SPL_TPL_)SYS_MALLOC_F_LEN),0x0)
|
||||
obj-y += malloc_simple.o
|
||||
endif
|
||||
endif
|
||||
obj-$(CONFIG_$(SPL_TPL_)SYS_MALLOC_F) += malloc_simple.o
|
||||
|
||||
obj-$(CONFIG_CYCLIC) += cyclic.o
|
||||
obj-$(CONFIG_$(SPL_TPL_)EVENT) += event.o
|
||||
|
|
|
@ -794,7 +794,7 @@ static int initf_bootstage(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;
|
||||
|
||||
bootstage_start(BOOTSTAGE_ID_ACCUM_DM_F, "dm_f");
|
||||
|
|
|
@ -191,7 +191,7 @@ static int initr_malloc(void)
|
|||
{
|
||||
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,
|
||||
gd->malloc_ptr / 1024);
|
||||
#endif
|
||||
|
|
|
@ -1291,7 +1291,7 @@ Void_t* mALLOc(bytes) size_t bytes;
|
|||
|
||||
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))
|
||||
return malloc_simple(bytes);
|
||||
#endif
|
||||
|
@ -1572,7 +1572,7 @@ void fREe(mem) Void_t* mem;
|
|||
mchunkptr fwd; /* misc temp for linking */
|
||||
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 */
|
||||
if (!(gd->flags & GD_FLG_FULL_MALLOC_INIT)) {
|
||||
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 */
|
||||
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)) {
|
||||
/* This is harder to support and should not be needed */
|
||||
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 CONFIG_VAL(SYS_MALLOC_F_LEN)
|
||||
#if CONFIG_IS_ENABLED(SYS_MALLOC_F)
|
||||
if (!(gd->flags & GD_FLG_FULL_MALLOC_INIT)) {
|
||||
return memalign_simple(alignment, bytes);
|
||||
}
|
||||
|
@ -2153,7 +2153,7 @@ Void_t* cALLOc(n, elem_size) size_t n; size_t elem_size;
|
|||
return NULL;
|
||||
else
|
||||
{
|
||||
#if CONFIG_VAL(SYS_MALLOC_F_LEN)
|
||||
#if CONFIG_IS_ENABLED(SYS_MALLOC_F)
|
||||
if (!(gd->flags & GD_FLG_FULL_MALLOC_INIT)) {
|
||||
memset(mem, 0, sz);
|
||||
return mem;
|
||||
|
@ -2455,7 +2455,7 @@ int mALLOPt(param_number, value) int param_number; int value;
|
|||
|
||||
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 */
|
||||
gd->malloc_limit = CONFIG_VAL(SYS_MALLOC_F_LEN);
|
||||
gd->malloc_ptr = 0;
|
||||
|
|
|
@ -79,7 +79,7 @@ ulong board_init_f_alloc_reserve(ulong top)
|
|||
{
|
||||
/* Reserve early malloc arena */
|
||||
#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);
|
||||
#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.
|
||||
*/
|
||||
|
||||
#if CONFIG_VAL(SYS_MALLOC_F_LEN)
|
||||
#if CONFIG_IS_ENABLED(SYS_MALLOC_F)
|
||||
/* go down one 'early malloc arena' */
|
||||
gd->malloc_base = base;
|
||||
#if CONFIG_IS_ENABLED(ZERO_MEM_BEFORE_USE)
|
||||
|
|
|
@ -523,7 +523,7 @@ static int spl_common_init(bool setup_malloc)
|
|||
{
|
||||
int ret;
|
||||
|
||||
#if CONFIG_VAL(SYS_MALLOC_F_LEN)
|
||||
#if CONFIG_IS_ENABLED(SYS_MALLOC_F)
|
||||
if (setup_malloc) {
|
||||
#ifdef 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 {
|
||||
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,
|
||||
gd->malloc_ptr / 1024);
|
||||
#endif
|
||||
|
@ -961,7 +961,7 @@ ulong spl_relocate_stack_gd(void)
|
|||
if (CONFIG_IS_ENABLED(SYS_REPORT_STACK_F_USAGE))
|
||||
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) {
|
||||
debug("SPL malloc() before relocation used 0x%lx bytes (%ld KB)\n",
|
||||
gd->malloc_ptr, gd->malloc_ptr / 1024);
|
||||
|
|
|
@ -307,7 +307,7 @@ struct global_data {
|
|||
#if CONFIG_IS_ENABLED(CMD_BDINFO_EXTRA)
|
||||
unsigned long malloc_start;
|
||||
#endif
|
||||
#if CONFIG_VAL(SYS_MALLOC_F_LEN)
|
||||
#if CONFIG_IS_ENABLED(SYS_MALLOC_F)
|
||||
/**
|
||||
* @malloc_base: base address of early malloc()
|
||||
*/
|
||||
|
|
|
@ -32,7 +32,7 @@ int main(void)
|
|||
|
||||
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));
|
||||
#endif
|
||||
|
||||
|
|
Loading…
Reference in a new issue