Allocate single stacks for BL1 and BL2
The BL images share common stack management code which provides
one coherent and one cacheable stack for every CPU. BL1 and BL2
just execute on the primary CPU during boot and do not require
the additional CPU stacks. This patch provides separate stack
support code for UP and MP images, substantially reducing the
RAM usage for BL1 and BL2 for the FVP platform.

This patch also provides macros for declaring stacks and
calculating stack base addresses to improve consistency where
this has to be done in the firmware.

The stack allocation source files are now included via
platform.mk rather than the common BLx makefiles. This allows
each platform to select the appropriate MP/UP stack support
for each BL image.

Each platform makefile must be updated when including this
commit.

Fixes ARM-software/tf-issues#76

Change-Id: Ia251f61b8148ffa73eae3f3711f57b1ffebfa632
1 parent 9c2c763 commit 2bf28e620a6f05700753a2b45a888c6623e20723
@Andrew Thoelke Andrew Thoelke authored on 20 Mar 2014
Showing 10 changed files
View
bl31/aarch64/runtime_exceptions.S
View
bl32/tsp/tsp-fvp.mk
View
docs/porting-guide.md
View
include/asm_macros.S
View
plat/common/aarch64/platform_helpers.S
View
plat/common/aarch64/platform_mp_stack.S 0 → 100644
View
plat/common/aarch64/platform_up_stack.S 0 → 100644
View
plat/fvp/aarch64/plat_common.c
View
plat/fvp/platform.h
View
plat/fvp/platform.mk