bl31: Split into two separate memory regions
Some platforms are extremely memory constrained and must split BL31
between multiple non-contiguous areas in SRAM. Allow the NOBITS
sections (.bss, stacks, page tables, and coherent memory) to be placed
in a separate region of RAM from the loaded firmware image.

Because the NOBITS region may be at a lower address than the rest of
BL31, __RW_{START,END}__ and __BL31_{START,END}__ cannot include this
region, or el3_entrypoint_common would attempt to invalidate the dcache
for the entire address space. New symbols __NOBITS_{START,END}__ are
added when SEPARATE_NOBITS_REGION is enabled, and the dcached for the
NOBITS region is invalidated separately.

Signed-off-by: Samuel Holland <samuel@sholland.org>
Change-Id: Idedfec5e4dbee77e94f2fdd356e6ae6f4dc79d37
1 parent caa0c85 commit f8578e641b38694a6a2dee84ef7a7b3b0b50bd0f
@Samuel Holland Samuel Holland authored on 17 Oct 2018
Showing 6 changed files
View
Makefile
View
bl31/bl31.ld.S
View
docs/design/firmware-design.rst
View
docs/getting_started/build-options.rst
View
include/arch/aarch64/el3_common_macros.S
View
make_helpers/defaults.mk