MIPS: add possibility to setup initial stack and global data in SRAM
This adds a new Kconfig option CONFIG_MIPS_INIT_STACK_IN_SRAM which a SoC can select if it supports some kind of SRAM. Together with CONFIG_SYS_INIT_SP_ADDR the initial stack and global data can be set up in that SRAM. This can be used to provide a C environment also for lowlevel_init(). Signed-off-by: Daniel Schwierzeck <daniel.schwierzeck@gmail.com>
This commit is contained in:
parent
c3e72ab801
commit
924ad86638
|
@ -302,6 +302,17 @@ config SWAP_IO_SPACE
|
||||||
config SYS_MIPS_CACHE_INIT_RAM_LOAD
|
config SYS_MIPS_CACHE_INIT_RAM_LOAD
|
||||||
bool
|
bool
|
||||||
|
|
||||||
|
config MIPS_INIT_STACK_IN_SRAM
|
||||||
|
bool
|
||||||
|
default n
|
||||||
|
help
|
||||||
|
Select this if the initial stack frame could be setup in SRAM.
|
||||||
|
Normally the initial stack frame is set up in DRAM which is often
|
||||||
|
only available after lowlevel_init. With this option the initial
|
||||||
|
stack frame and the early C environment is set up before
|
||||||
|
lowlevel_init. Thus lowlevel_init does not need to be implemented
|
||||||
|
in assembler.
|
||||||
|
|
||||||
config SYS_DCACHE_SIZE
|
config SYS_DCACHE_SIZE
|
||||||
int
|
int
|
||||||
default 0
|
default 0
|
||||||
|
|
|
@ -234,6 +234,11 @@ wr_done:
|
||||||
nop
|
nop
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef CONFIG_MIPS_INIT_STACK_IN_SRAM
|
||||||
|
/* Set up initial stack and global data */
|
||||||
|
setup_stack_gd
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifndef CONFIG_SKIP_LOWLEVEL_INIT
|
#ifndef CONFIG_SKIP_LOWLEVEL_INIT
|
||||||
# ifdef CONFIG_SYS_MIPS_CACHE_INIT_RAM_LOAD
|
# ifdef CONFIG_SYS_MIPS_CACHE_INIT_RAM_LOAD
|
||||||
/* Initialize any external memory */
|
/* Initialize any external memory */
|
||||||
|
@ -255,8 +260,10 @@ wr_done:
|
||||||
# endif
|
# endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifndef CONFIG_MIPS_INIT_STACK_IN_SRAM
|
||||||
/* Set up initial stack and global data */
|
/* Set up initial stack and global data */
|
||||||
setup_stack_gd
|
setup_stack_gd
|
||||||
|
#endif
|
||||||
|
|
||||||
move a0, zero # a0 <-- boot_flags = 0
|
move a0, zero # a0 <-- boot_flags = 0
|
||||||
PTR_LA t9, board_init_f
|
PTR_LA t9, board_init_f
|
||||||
|
|
Loading…
Reference in New Issue