Platform: Adjust GNUARM linker script to support multi-core topology
Adjust the secure data layout in GNUARM linker script to support
build in multi-core topology.
- Armv6-M/Armv7-M MPU requires MPU region base address to align
with MPU region size. Multi-core platforms may have to use
multiple MPU regions to cover a data section which doesn't
satisfy the alignment. The interleaved unprivileged/privileged
data sections layout will run out of Armv6-M/Armv7-M MPU regions.
To save both MPU regions and memory resource, separate the
unprivileged and privileged secure data sections and group them
into unprivileged/privileged data area respectively.
Thus multi-core platform can just cover a whole unprivileged data
area and a whole privileged data area, with much fewer MPU regions
cost.
- Put privileged data sections at the bottom of secure data area to
make sure TFM_DATA and TFM_BSS sections are at the end.
Otherwise, the two sections will collect data/bss from other
sections.
- Move BL2 shared data section and Main Stack to privileged data
area in multi-core topology.
- Move Process Stack to privileged data area in multi-core
topology.
Change-Id: I544769542e5e65ca90b8bfb1af81f59e536fd006
Signed-off-by:
David Hu <david.hu@arm.com>
Loading
Please register or sign in to comment