aboutsummaryrefslogtreecommitdiffstats
path: root/docs
diff options
context:
space:
mode:
authorYann Gautier <yann.gautier@st.com>2018-07-16 14:49:34 +0200
committerYann Gautier <yann.gautier@st.com>2018-07-24 17:18:45 +0200
commitf0958d84442bdcb49136b4c7627a0be6e985d055 (patch)
tree1db1171cec242c226b16c1539b31f907cb3e48cb /docs
parentf74cbc93a8cccb7b556a7d80bc274bcb280e8a9a (diff)
downloadplatform_external_arm-trusted-firmware-f0958d84442bdcb49136b4c7627a0be6e985d055.tar.gz
platform_external_arm-trusted-firmware-f0958d84442bdcb49136b4c7627a0be6e985d055.tar.bz2
platform_external_arm-trusted-firmware-f0958d84442bdcb49136b4c7627a0be6e985d055.zip
stm32mp1: Add platform documentation
Signed-off-by: Yann Gautier <yann.gautier@st.com>
Diffstat (limited to 'docs')
-rw-r--r--docs/plat/stm32mp1.rst82
1 files changed, 82 insertions, 0 deletions
diff --git a/docs/plat/stm32mp1.rst b/docs/plat/stm32mp1.rst
new file mode 100644
index 000000000..9e731a419
--- /dev/null
+++ b/docs/plat/stm32mp1.rst
@@ -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.