mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-29 08:01:08 +00:00
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
2 changed files with 18 additions and 0 deletions
|
@ -302,6 +302,17 @@ config SWAP_IO_SPACE
|
|||
config SYS_MIPS_CACHE_INIT_RAM_LOAD
|
||||
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
|
||||
int
|
||||
default 0
|
||||
|
|
|
@ -234,6 +234,11 @@ wr_done:
|
|||
nop
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_MIPS_INIT_STACK_IN_SRAM
|
||||
/* Set up initial stack and global data */
|
||||
setup_stack_gd
|
||||
#endif
|
||||
|
||||
#ifndef CONFIG_SKIP_LOWLEVEL_INIT
|
||||
# ifdef CONFIG_SYS_MIPS_CACHE_INIT_RAM_LOAD
|
||||
/* Initialize any external memory */
|
||||
|
@ -255,8 +260,10 @@ wr_done:
|
|||
# endif
|
||||
#endif
|
||||
|
||||
#ifndef CONFIG_MIPS_INIT_STACK_IN_SRAM
|
||||
/* Set up initial stack and global data */
|
||||
setup_stack_gd
|
||||
#endif
|
||||
|
||||
move a0, zero # a0 <-- boot_flags = 0
|
||||
PTR_LA t9, board_init_f
|
||||
|
|
Loading…
Reference in a new issue