mirror of
https://github.com/ARM-software/arm-trusted-firmware.git
synced 2025-04-19 02:54:24 +00:00
stm32mp1: Add platform documentation
Signed-off-by: Yann Gautier <yann.gautier@st.com>
This commit is contained in:
parent
f74cbc93a8
commit
f0958d8444
1 changed files with 82 additions and 0 deletions
82
docs/plat/stm32mp1.rst
Normal file
82
docs/plat/stm32mp1.rst
Normal file
|
@ -0,0 +1,82 @@
|
|||
Trusted Firmware-A for STM32MP1
|
||||
===============================
|
||||
|
||||
STM32MP1 is a microprocessor designed by STMicroelectronics
|
||||
based on a dual Arm Cortex-A7.
|
||||
It is an Armv7-A platform, using dedicated code from TF-A.
|
||||
|
||||
|
||||
Design
|
||||
------
|
||||
The STM32MP1 resets in the ROM code of the Cortex-A7.
|
||||
The primary boot core (core 0) executes the boot sequence while
|
||||
secondary boot core (core 1) is kept in a holding pen loop.
|
||||
The ROM code boot sequence loads the TF-A binary image from boot device
|
||||
to embedded SRAM.
|
||||
|
||||
The TF-A image must be properly formatted with a STM32 header structure
|
||||
for ROM code is able to load this image.
|
||||
Tool stm32image can be used to prepend this header to the generated TF-A binary.
|
||||
|
||||
At compilation step, BL2, BL32 and DTB file are linked together in a single
|
||||
binary. The stm32image tool is also generated and the header is added to TF-A
|
||||
binary. This binary file with header is named tf-a-stm32mp157c-ev1.stm32.
|
||||
It can then be copied in the first partition of the boot device.
|
||||
|
||||
|
||||
Memory mapping
|
||||
~~~~~~~~~~~~~~
|
||||
|
||||
::
|
||||
|
||||
0x00000000 +-----------------+
|
||||
| | ROM
|
||||
0x00020000 +-----------------+
|
||||
| |
|
||||
| ... |
|
||||
| |
|
||||
0x2FFC0000 +-----------------+ \
|
||||
| | |
|
||||
| ... | |
|
||||
| | |
|
||||
0x2FFD8000 +-----------------+ |
|
||||
| TF-A DTB | | Embedded SRAM
|
||||
0x2FFDC000 +-----------------+ |
|
||||
| BL2 | |
|
||||
0x2FFEF000 +-----------------+ |
|
||||
| BL32 | |
|
||||
0x30000000 +-----------------+ /
|
||||
| |
|
||||
| ... |
|
||||
| |
|
||||
0x40000000 +-----------------+
|
||||
| |
|
||||
| | Devices
|
||||
| |
|
||||
0xC0000000 +-----------------+ \
|
||||
| | |
|
||||
0xC0100000 +-----------------+ |
|
||||
| BL33 | | Non-secure RAM (DDR)
|
||||
| ... | |
|
||||
| | |
|
||||
0xFFFFFFFF +-----------------+ /
|
||||
|
||||
|
||||
Boot sequence
|
||||
~~~~~~~~~~~~~
|
||||
|
||||
ROM code -> BL2 (compiled with BL2_AT_EL3) -> BL32 (SP_min) -> BL33 (U-Boot)
|
||||
|
||||
|
||||
Build Instructions
|
||||
------------------
|
||||
|
||||
To build:
|
||||
|
||||
.. code:: bash
|
||||
|
||||
make CROSS_COMPILE=arm-linux-gnueabihf- PLAT=stm32mp1 ARCH=aarch32 ARM_ARCH_MAJOR=7 AARCH32_SP=sp_min
|
||||
|
||||
The following build options are supported:
|
||||
|
||||
- ``ENABLE_STACK_PROTECTOR``: To enable the stack protection.
|
Loading…
Add table
Reference in a new issue