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