mirror of
https://github.com/Fishwaldo/u-boot.git
synced 2025-03-31 11:31:32 +00:00
mips: add a option to support not reserving malloc space on initial stack
The initial stack on some platforms is too small to hold a large malloc space. This patch adds a option to allow these platforms not reserving the malloc space on initial stack. These platforms should set the malloc base after DRAM is usable. Reviewed-by: Stefan Roese <sr@denx.de> Signed-off-by: Weijie Gao <weijie.gao@mediatek.com>
This commit is contained in:
parent
2434f58c78
commit
c95c3ec025
2 changed files with 22 additions and 2 deletions
|
@ -317,6 +317,24 @@ config NEW_EXCEPTION_VECTOR_BASE
|
||||||
help
|
help
|
||||||
The exception vector base to be restored before booting linux kernel
|
The exception vector base to be restored before booting linux kernel
|
||||||
|
|
||||||
|
config INIT_STACK_WITHOUT_MALLOC_F
|
||||||
|
bool "Do not reserve malloc space on initial stack"
|
||||||
|
default n
|
||||||
|
help
|
||||||
|
Enable this option if you don't want to reserve malloc space on
|
||||||
|
initial stack. This is useful if the initial stack can't hold large
|
||||||
|
malloc space. Platform should set the malloc_base later when DRAM is
|
||||||
|
ready to use.
|
||||||
|
|
||||||
|
config SPL_INIT_STACK_WITHOUT_MALLOC_F
|
||||||
|
bool "Do not reserve malloc space on initial stack in SPL"
|
||||||
|
default n
|
||||||
|
help
|
||||||
|
Enable this option if you don't want to reserve malloc space on
|
||||||
|
initial stack. This is useful if the initial stack can't hold large
|
||||||
|
malloc space. Platform should set the malloc_base later when DRAM is
|
||||||
|
ready to use.
|
||||||
|
|
||||||
config SPL_LOADER_SUPPORT
|
config SPL_LOADER_SUPPORT
|
||||||
bool
|
bool
|
||||||
default n
|
default n
|
||||||
|
|
|
@ -59,7 +59,8 @@
|
||||||
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_VAL(SYS_MALLOC_F_LEN) && \
|
||||||
|
!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 \
|
||||||
sp, sp, t2 # reserve space for early malloc
|
sp, sp, t2 # reserve space for early malloc
|
||||||
|
@ -75,7 +76,8 @@
|
||||||
blt t0, t1, 1b
|
blt t0, t1, 1b
|
||||||
nop
|
nop
|
||||||
|
|
||||||
#if CONFIG_VAL(SYS_MALLOC_F_LEN)
|
#if CONFIG_VAL(SYS_MALLOC_F_LEN) && \
|
||||||
|
!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
|
||||||
.endm
|
.endm
|
||||||
|
|
Loading…
Add table
Reference in a new issue