Allocate single stacks for BL1 and BL2
authorAndrew Thoelke <andrew.thoelke@arm.com>
Thu, 20 Mar 2014 10:48:23 +0000 (10:48 +0000)
committerAndrew Thoelke <andrew.thoelke@arm.com>
Tue, 15 Apr 2014 14:49:29 +0000 (15:49 +0100)
commit2bf28e620a6f05700753a2b45a888c6623e20723
treec35374e36508ddf0c10324e9b511c983655213e4
parent9c2c763d22469b0f73d76469442b474c08497e7a
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
bl31/aarch64/runtime_exceptions.S
bl32/tsp/tsp-fvp.mk
docs/porting-guide.md
include/asm_macros.S
plat/common/aarch64/platform_helpers.S
plat/common/aarch64/platform_mp_stack.S [new file with mode: 0644]
plat/common/aarch64/platform_up_stack.S [new file with mode: 0644]
plat/fvp/aarch64/plat_common.c
plat/fvp/platform.h
plat/fvp/platform.mk