u-boot/arch/arm/lib
Simon Glass db910353a1 arm: spl: Allow board_init_r() to run with a larger stack
At present SPL uses a single stack, either CONFIG_SPL_STACK or
CONFIG_SYS_INIT_SP_ADDR. Since some SPL features (such as MMC and
environment) require a lot of stack, some boards set CONFIG_SPL_STACK to
point into SDRAM. They then set up SDRAM very early, before board_init_f(),
so that the larger stack can be used.

This is an abuse of lowlevel_init(). That function should only be used for
essential start-up code which cannot be delayed. An example of a valid use is
when only part of the SPL code is visible/executable, and the SoC must be set
up so that board_init_f() can be reached. It should not be used for SDRAM
init, console init, etc.

Add a CONFIG_SPL_STACK_R option, which allows the stack to be moved to a new
address before board_init_r() is called in SPL.

The expected SPL flow (for CONFIG_SPL_FRAMEWORK) is documented in the README.

Signed-off-by: Simon Glass <sjg@chromium.org>
For version 1:
Acked-by: Albert ARIBAUD <albert.u.boot@aribaud.net>
Reviewed-by: Stefan Roese <sr@denx.de>
Tested-by: Bo Shen <voice.shen@atmel.com>
Acked-by: Bo Shen <voice.shen@atmel.com>
Acked-by: Heiko Schocher <hs@denx.de>
Tested-by: Heiko Schocher <hs@denx.de>

Signed-off-by: Tom Rini <trini@konsulko.com>
2015-03-04 14:55:04 -05:00
..
Makefile common/board_f: factor out reserve_stacks 2015-02-17 22:52:42 +01:00
_ashldi3.S Add GPL-2.0+ SPDX-License-Identifier to source files 2013-07-24 09:44:38 -04:00
_ashrdi3.S Add GPL-2.0+ SPDX-License-Identifier to source files 2013-07-24 09:44:38 -04:00
_divsi3.S cosmetic: remove empty lines at the top of file 2013-11-08 09:41:37 -05:00
_lshrdi3.S Add GPL-2.0+ SPDX-License-Identifier to source files 2013-07-24 09:44:38 -04:00
_modsi3.S cosmetic: remove empty lines at the top of file 2013-11-08 09:41:37 -05:00
_udivsi3.S Move lib_$ARCH directories to arch/$ARCH/lib 2010-04-13 09:13:03 +02:00
_umodsi3.S Move lib_$ARCH directories to arch/$ARCH/lib 2010-04-13 09:13:03 +02:00
asm-offsets.c ARM: remove jadecpu board support 2015-02-24 17:06:51 -05:00
board.c leds: missing include 2014-10-25 15:27:35 -04:00
bootm-fdt.c ARM: HYP/non-sec/PSCI: emit DT nodes 2014-07-28 17:19:52 +02:00
bootm.c armv8/fsl-lsch3: Convert flushing L3 to assembly to avoid using stack 2015-02-24 13:08:46 -08:00
cache-cp15.c ARM: cache-cp15: Use more accurate types 2014-11-12 07:25:42 +01:00
cache-pl310.c Add GPL-2.0+ SPDX-License-Identifier to source files 2013-07-24 09:44:38 -04:00
cache.c arm, arm926ejs: make thumb mode compileable 2015-01-19 12:49:26 +01:00
crt0.S arm: spl: Allow board_init_r() to run with a larger stack 2015-03-04 14:55:04 -05:00
crt0_64.S arm64: core support 2014-01-09 16:08:44 +01:00
debug.S arm: debug: adjust for U-Boot 2014-10-26 22:23:40 +01:00
div0.c Add GPL-2.0+ SPDX-License-Identifier to source files 2013-07-24 09:44:38 -04:00
eabi_compat.c eabi_compat: add __aeabi_memcpy __aeabi_memset 2014-09-09 13:51:11 +02:00
gic_64.S armv8/fsl-lsch3: Release secondary cores from boot hold off with Boot Page 2014-09-25 08:36:19 -07:00
interrupts.c arm: interrupt_init: set sp in IRQ/FIQ modes 2014-10-29 09:03:28 -04:00
interrupts_64.c arm64: core support 2014-01-09 16:08:44 +01:00
memcpy.S arm: build arch memset/memcpy in Thumb2 mode 2015-01-09 10:20:22 -05:00
memset.S arm: build arch memset/memcpy in Thumb2 mode 2015-01-09 10:20:22 -05:00
relocate.S imx: fix exception vectors relocation in imx27 2014-11-20 10:13:54 +01:00
relocate_64.S armv8/cache: Flush D-cache, invalidate I-cache for relocation 2014-04-07 17:43:36 +02:00
reset.c arm:reset: call the reset_misc() before the cpu reset 2014-09-05 13:58:49 +09:00
sections.c ARM: HYP/non-sec: add separate section for secure code 2014-07-28 17:07:23 +02:00
semihosting.c arm: semihosting: get rid of forward declarations 2014-12-29 07:44:06 -05:00
spl.c arm: spl: Avoid setting up a duplicate global data structure 2015-03-04 14:55:04 -05:00
stack.c common/board_f: factor out reserve_stacks 2015-02-17 22:52:42 +01:00
vectors.S arm: make .vectors section allocatable 2014-10-29 09:02:17 -04:00