path: root/docs/firmware-design.rst
diff options
authorEtienne Carriere <etienne.carriere@linaro.org>2017-11-08 13:48:40 +0100
committerEtienne Carriere <etienne.carriere@linaro.org>2017-11-08 13:48:40 +0100
commit26e63c4450b1e4dcef3f9256663f36253e6b62d2 (patch)
tree04db13d5c69d3566680f8bc005078470473273be /docs/firmware-design.rst
parent2904f84e3c8bdd9f3df0415b5a02ab6bcc0ab05b (diff)
ARMv7 target is driven by ARM_ARCH_MAJOR==7
External build environment shall sets directive ARM_ARCH_MAJOR to 7 to specify a target ARMv7-A core. As ARM-TF expects AARCH to be set, ARM_ARCH_MAJOR==7 mandates AARCH=aarch32. The toolchain target architecture/cpu is delegated after the platform configuration is parsed. Platform shall define target core through ARM_CORTEX_A<x>=yes, <x> being 5, 7, 9, 12, 15 and/or 17. Platform can bypass ARM_CORTEX_A<x>=yes directive and provide straight the toolchain target directive through MARCH32_DIRECTIVE. Signed-off-by: Etienne Carriere <etienne.carriere@linaro.org>
Diffstat (limited to 'docs/firmware-design.rst')
1 files changed, 29 insertions, 0 deletions
diff --git a/docs/firmware-design.rst b/docs/firmware-design.rst
index 7cc197096b..93c13d250c 100644
--- a/docs/firmware-design.rst
+++ b/docs/firmware-design.rst
@@ -2520,6 +2520,35 @@ This Architecture Extension is targeted when ``ARM_ARCH_MAJOR`` == 8 and
table entries for a given stage of translation for a particular translation
+This Architecture Extension is targeted when ``ARM_ARCH_MAJOR`` == 7.
+There are several ARMv7 extensions available. Obviously the TrustZone
+extension is mandatory to support the ARM Trusted Firmware bootloader
+and runtime services.
+Platform implementing an ARMv7 system can to define from its target
+Cortex-A architecture through ``ARM_CORTEX_A<X> = yes`` in their
+``plaform.mk`` script. For example ``ARM_CORTEX_A15=yes`` for a
+Cortex-A15 target.
+Platform can also set ``ARM_WITH_NEON=yes`` to enable neon support.
+Note that using neon at runtime has constraints on non secure wolrd context.
+The trusted firmware does not yet provide VFP context management.
+Directive ``ARM_CORTEX_A<x>`` and ``ARM_WITH_NEON`` are used to set
+the toolchain target architecture directive.
+Platform may choose to not define straight the toolchain target architecture
+directive by defining ``MARCH32_DIRECTIVE``.
+ MARCH32_DIRECTIVE := -mach=armv7-a
Code Structure