xref: /arm-trusted-firmware/docs/plat/arm/morello/index.rst (revision 91f16700b400a8c0651d24a598fc48ee2997a0d7)
1*91f16700SchasingluluMorello Platform
2*91f16700Schasinglulu================
3*91f16700Schasinglulu
4*91f16700SchasingluluMorello is an ARMv8-A platform that implements the capability architecture extension.
5*91f16700SchasingluluThe platform port present at `site <https://git.trustedfirmware.org/TF-A/trusted-firmware-a.git>`_
6*91f16700Schasingluluprovides ARMv8-A architecture enablement.
7*91f16700Schasinglulu
8*91f16700SchasingluluCapability architecture specific changes will be added `here <https://git.morello-project.org/morello>`_
9*91f16700Schasinglulu
10*91f16700SchasingluluFurther information on Morello Platform is available at `info <https://developer.arm.com/architectures/cpu-architecture/a-profile/morello>`_
11*91f16700Schasinglulu
12*91f16700SchasingluluBoot Sequence
13*91f16700Schasinglulu-------------
14*91f16700Schasinglulu
15*91f16700SchasingluluThe SCP initializes the RVBAR registers to point to the AP_BL1. Once RVBAR is
16*91f16700Schasingluluinitialized, the primary core is powered on. The primary core boots the AP_BL1.
17*91f16700SchasingluluIt performs minimum initialization necessary to load and authenticate the AP
18*91f16700Schasinglulufirmware image (the FIP image) from the AP QSPI NOR Flash Memory into the
19*91f16700SchasingluluTrusted SRAM.
20*91f16700Schasinglulu
21*91f16700SchasingluluAP_BL1 authenticates and loads the AP_BL2 image. AP_BL2 performs additional
22*91f16700Schasingluluinitializations, and then authenticates and loads the AP_BL31 and AP_BL33.
23*91f16700SchasingluluAP_BL2 then transfers execution control to AP_BL31, which is the EL3 runtime
24*91f16700Schasinglulufirmware. Execution is finally handed off to AP_BL33, which is the non-secure
25*91f16700Schasingluluworld (UEFI).
26*91f16700Schasinglulu
27*91f16700SchasingluluSCP -> AP_BL1 -> AP_BL2 -> AP_BL31 -> AP_BL33
28*91f16700Schasinglulu
29*91f16700SchasingluluBuild Procedure (TF-A only)
30*91f16700Schasinglulu~~~~~~~~~~~~~~~~~~~~~~~~~~~
31*91f16700Schasinglulu
32*91f16700Schasinglulu-  Obtain arm `toolchain <https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-a/downloads>`_.
33*91f16700Schasinglulu   Set the CROSS_COMPILE environment variable to point to the toolchain folder.
34*91f16700Schasinglulu
35*91f16700Schasinglulu-  Build TF-A:
36*91f16700Schasinglulu
37*91f16700Schasinglulu   .. code:: shell
38*91f16700Schasinglulu
39*91f16700Schasinglulu      export CROSS_COMPILE=<path-to-aarch64-gcc>/bin/aarch64-none-elf-
40*91f16700Schasinglulu
41*91f16700Schasinglulu      make PLAT=morello all
42*91f16700Schasinglulu
43*91f16700Schasinglulu*Copyright (c) 2020-2023, Arm Limited. All rights reserved.*
44