1ca7145c5SPaul BeesleyTrusted Firmware-A - version 2.1 24def07d5SDan Handley================================ 36f625747SDouglas Raillard 4*0668dd71SJohn Tsichritzis.. section-numbering:: 5*0668dd71SJohn Tsichritzis :suffix: . 6*0668dd71SJohn Tsichritzis 7*0668dd71SJohn Tsichritzis.. contents:: 8*0668dd71SJohn Tsichritzis 94def07d5SDan HandleyTrusted Firmware-A (TF-A) provides a reference implementation of secure world 105b0b7276SDan Handleysoftware for `Armv7-A and Armv8-A`_, including a `Secure Monitor`_ executing 115b0b7276SDan Handleyat Exception Level 3 (EL3). It implements various Arm interface standards, 125b0b7276SDan Handleysuch as: 134bf3349bSDan Handley 144bf3349bSDan Handley- The `Power State Coordination Interface (PSCI)`_ 154def07d5SDan Handley- Trusted Board Boot Requirements (TBBR, Arm DEN0006C-1) 164bf3349bSDan Handley- `SMC Calling Convention`_ 173c6261bdSPaul Beesley- `System Control and Management Interface (SCMI)`_ 185b0b7276SDan Handley- `Software Delegated Exception Interface (SDEI)`_ 194bf3349bSDan Handley 205b0b7276SDan HandleyWhere possible, the code is designed for reuse or porting to other Armv7-A and 215b0b7276SDan HandleyArmv8-A model and hardware platforms. 226f625747SDouglas Raillard 23ca7145c5SPaul BeesleyThis release provides a suitable starting point for productization of secure 24ca7145c5SPaul Beesleyworld boot and runtime firmware, in either the AArch32 or AArch64 execution 25ca7145c5SPaul Beesleystates. 26ca7145c5SPaul Beesley 27ca7145c5SPaul BeesleyUsers are encouraged to do their own security validation, including penetration 28ca7145c5SPaul Beesleytesting, on any secure world code derived from TF-A. 29ca7145c5SPaul Beesley 304def07d5SDan HandleyArm will continue development in collaboration with interested parties to 314def07d5SDan Handleyprovide a full reference implementation of Secure Monitor code and Arm standards 325b0b7276SDan Handleyto the benefit of all developers working with Armv7-A and Armv8-A TrustZone 335b0b7276SDan Handleytechnology. 346f625747SDouglas Raillard 35*0668dd71SJohn TsichritzisDocumentation contents 36*0668dd71SJohn Tsichritzis---------------------- 37*0668dd71SJohn Tsichritzis 38*0668dd71SJohn TsichritzisThe `Trusted Firmware-A Documentation Contents`_ page contains an overview of 39*0668dd71SJohn Tsichritzisthe documentation that is available, with links to facilitate easier browsing. 40*0668dd71SJohn Tsichritzis 416f625747SDouglas RaillardLicense 426f625747SDouglas Raillard------- 436f625747SDouglas Raillard 446f625747SDouglas RaillardThe software is provided under a BSD-3-Clause `license`_. Contributions to this 456f625747SDouglas Raillardproject are accepted under the same license with developer sign-off as 466f625747SDouglas Raillarddescribed in the `Contributing Guidelines`_. 476f625747SDouglas Raillard 486f625747SDouglas RaillardThis project contains code from other projects as listed below. The original 496f625747SDouglas Raillardlicense text is included in those source files. 506f625747SDouglas Raillard 5127989a8eSAntonio Nino Diaz- The libc source code is derived from `FreeBSD`_ and `SCC`_. FreeBSD uses 5227989a8eSAntonio Nino Diaz various BSD licenses, including BSD-3-Clause and BSD-2-Clause. The SCC code 5327989a8eSAntonio Nino Diaz is used under the BSD-3-Clause license with the author's permission. 546f625747SDouglas Raillard 55327cfc27SDan Handley- The libfdt source code is disjunctively dual licensed 56327cfc27SDan Handley (GPL-2.0+ OR BSD-2-Clause). It is used by this project under the terms of 57327cfc27SDan Handley the BSD-2-Clause license. Any contributions to this code must be made under 58327cfc27SDan Handley the terms of both licenses. 596f625747SDouglas Raillard 60327cfc27SDan Handley- The LLVM compiler-rt source code is disjunctively dual licensed 61327cfc27SDan Handley (NCSA OR MIT). It is used by this project under the terms of the NCSA 62327cfc27SDan Handley license (also known as the University of Illinois/NCSA Open Source License), 63327cfc27SDan Handley which is a permissive license compatible with BSD-3-Clause. Any 64327cfc27SDan Handley contributions to this code must be made under the terms of both licenses. 654bf3349bSDan Handley 665b0b7276SDan Handley- The zlib source code is licensed under the Zlib license, which is a 675b0b7276SDan Handley permissive license compatible with BSD-3-Clause. 685b0b7276SDan Handley 69327cfc27SDan Handley- Some STMicroelectronics platform source code is disjunctively dual licensed 70327cfc27SDan Handley (GPL-2.0+ OR BSD-3-Clause). It is used by this project under the terms of the 71327cfc27SDan Handley BSD-3-Clause license. Any contributions to this code must be made under the 72327cfc27SDan Handley terms of both licenses. 73327cfc27SDan Handley 746f625747SDouglas RaillardFunctionality 75ca7145c5SPaul Beesley------------- 766f625747SDouglas Raillard 774bf3349bSDan Handley- Initialization of the secure world, for example exception vectors, control 784bf3349bSDan Handley registers and interrupts for the platform. 796f625747SDouglas Raillard 806f625747SDouglas Raillard- Library support for CPU specific reset and power down sequences. This 814def07d5SDan Handley includes support for errata workarounds and the latest Arm DynamIQ CPUs. 826f625747SDouglas Raillard 834def07d5SDan Handley- Drivers to enable standard initialization of Arm System IP, for example 844bf3349bSDan Handley Generic Interrupt Controller (GIC), Cache Coherent Interconnect (CCI), 854bf3349bSDan Handley Cache Coherent Network (CCN), Network Interconnect (NIC) and TrustZone 864bf3349bSDan Handley Controller (TZC). 876f625747SDouglas Raillard 884bf3349bSDan Handley- A generic `SCMI`_ driver to interface with conforming power controllers, for 894def07d5SDan Handley example the Arm System Control Processor (SCP). 906f625747SDouglas Raillard 914bf3349bSDan Handley- SMC (Secure Monitor Call) handling, conforming to the `SMC Calling 924bf3349bSDan Handley Convention`_ using an EL3 runtime services framework. 936f625747SDouglas Raillard 944bf3349bSDan Handley- `PSCI`_ library support for CPU, cluster and system power management 954bf3349bSDan Handley use-cases. 964bf3349bSDan Handley This library is pre-integrated with the AArch64 EL3 Runtime Software, and 974bf3349bSDan Handley is also suitable for integration with other AArch32 EL3 Runtime Software, 984bf3349bSDan Handley for example an AArch32 Secure OS. 994bf3349bSDan Handley 1004bf3349bSDan Handley- A minimal AArch32 Secure Payload (SP\_MIN) to demonstrate `PSCI`_ library 1014bf3349bSDan Handley integration with AArch32 EL3 Runtime Software. 1026f625747SDouglas Raillard 1036f625747SDouglas Raillard- Secure Monitor library code such as world switching, EL1 context management 1046f625747SDouglas Raillard and interrupt routing. 1054bf3349bSDan Handley When a Secure-EL1 Payload (SP) is present, for example a Secure OS, the 106d1ce4469SPaul Beesley AArch64 EL3 Runtime Software must be integrated with a Secure Payload 107d1ce4469SPaul Beesley Dispatcher (SPD) component to customize the interaction with the SP. 1086f625747SDouglas Raillard 109d1ce4469SPaul Beesley- A Test SP and SPD to demonstrate AArch64 Secure Monitor functionality and SP 1104bf3349bSDan Handley interaction with PSCI. 1116f625747SDouglas Raillard 112be8b4d19SPaul Beesley- SPDs for the `OP-TEE Secure OS`_, `NVIDIA Trusted Little Kernel`_ 1134bf3349bSDan Handley and `Trusty Secure OS`_. 1146f625747SDouglas Raillard 1156f625747SDouglas Raillard- A Trusted Board Boot implementation, conforming to all mandatory TBBR 1164bf3349bSDan Handley requirements. This includes image authentication, Firmware Update (or 1174bf3349bSDan Handley recovery mode), and packaging of the various firmware images into a 1184bf3349bSDan Handley Firmware Image Package (FIP). 1196f625747SDouglas Raillard 1205b0b7276SDan Handley- Pre-integration of TBB with the Arm CryptoCell product, to take advantage of 1215b0b7276SDan Handley its hardware Root of Trust and crypto acceleration services. 1225b0b7276SDan Handley 1235b0b7276SDan Handley- Reliability, Availability, and Serviceability (RAS) functionality, including 1245b0b7276SDan Handley 1255b0b7276SDan Handley - A Secure Partition Manager (SPM) to manage Secure Partitions in 1265b0b7276SDan Handley Secure-EL0, which can be used to implement simple management and 1275b0b7276SDan Handley security services. 1285b0b7276SDan Handley 1295b0b7276SDan Handley - An SDEI dispatcher to route interrupt-based SDEI events. 1305b0b7276SDan Handley 1315b0b7276SDan Handley - An Exception Handling Framework (EHF) that allows dispatching of EL3 1325b0b7276SDan Handley interrupts to their registered handlers, to facilitate firmware-first 1335b0b7276SDan Handley error handling. 1345b0b7276SDan Handley 1355b0b7276SDan Handley- A dynamic configuration framework that enables each of the firmware images 1365b0b7276SDan Handley to be configured at runtime if required by the platform. It also enables 1375b0b7276SDan Handley loading of a hardware configuration (for example, a kernel device tree) 1385b0b7276SDan Handley as part of the FIP, to be passed through the firmware stages. 1394bf3349bSDan Handley 1404bf3349bSDan Handley- Support for alternative boot flows, for example to support platforms where 1414bf3349bSDan Handley the EL3 Runtime Software is loaded using other firmware or a separate 1425b0b7276SDan Handley secure system processor, or where a non-TF-A ROM expects BL2 to be loaded 1435b0b7276SDan Handley at EL3. 1444bf3349bSDan Handley 1454def07d5SDan Handley- Support for the GCC, LLVM and Arm Compiler 6 toolchains. 1466f625747SDouglas Raillard 147ca7145c5SPaul Beesley- Support for combining several libraries into a "romlib" image that may be 148ca7145c5SPaul Beesley shared across images to reduce memory footprint. The romlib image is stored 149ca7145c5SPaul Beesley in ROM but is accessed through a jump-table that may be stored 150d83bf0bcSJoanna Farley in read-write memory, allowing for the library code to be patched. 151d83bf0bcSJoanna Farley 152ca7145c5SPaul Beesley- A prototype implementation of a Secure Partition Manager (SPM) that is based 153bf32bc9cSPaul Beesley on the SPCI Alpha 1 and SPRT draft specifications. 154ca7145c5SPaul Beesley 155ca7145c5SPaul Beesley- Support for ARMv8.3 pointer authentication in the normal and secure worlds. 156ca7145c5SPaul Beesley The use of pointer authentication in the normal world is enabled whenever 157ca7145c5SPaul Beesley architectural support is available, without the need for additional build 158ca7145c5SPaul Beesley flags. Use of pointer authentication in the secure world remains an 159ca7145c5SPaul Beesley experimental configuration at this time and requires the ``ENABLE_PAUTH`` 160ca7145c5SPaul Beesley build flag to be set. 161ca7145c5SPaul Beesley 162ca7145c5SPaul Beesley- Position-Independent Executable (PIE) support. Initially for BL31 only, with 163ca7145c5SPaul Beesley further support to be added in a future release. 164ca7145c5SPaul Beesley 1656f625747SDouglas RaillardFor a full description of functionality and implementation details, please 1666f625747SDouglas Raillardsee the `Firmware Design`_ and supporting documentation. The `Change Log`_ 1676f625747SDouglas Raillardprovides details of changes made since the last release. 1686f625747SDouglas Raillard 1696f625747SDouglas RaillardPlatforms 170ca7145c5SPaul Beesley--------- 1716f625747SDouglas Raillard 172d1ce4469SPaul BeesleyVarious AArch32 and AArch64 builds of this release have been tested on r0, r1 173d1ce4469SPaul Beesleyand r2 variants of the `Juno Arm Development Platform`_. 1746f625747SDouglas Raillard 1756192448aSAmbroise VincentThe latest version of the AArch64 build of TF-A has been tested on the following 1766192448aSAmbroise VincentArm FVPs without shifted affinities, and that do not support threaded CPU cores 1776192448aSAmbroise Vincent(64-bit host machine only). 1786f625747SDouglas Raillard 1796192448aSAmbroise VincentThe FVP models used are Version 11.5 Build 33, unless otherwise stated. 1806f625747SDouglas Raillard 181d83bf0bcSJoanna Farley- ``FVP_Base_AEMv8A-AEMv8A`` 182d83bf0bcSJoanna Farley- ``FVP_Base_AEMv8A-AEMv8A-AEMv8A-AEMv8A-CCN502`` 183d83bf0bcSJoanna Farley- ``FVP_Base_RevC-2xAEMv8A`` 184d83bf0bcSJoanna Farley- ``FVP_Base_Cortex-A32x4`` 1854bf3349bSDan Handley- ``FVP_Base_Cortex-A35x4`` 1864bf3349bSDan Handley- ``FVP_Base_Cortex-A53x4`` 187d83bf0bcSJoanna Farley- ``FVP_Base_Cortex-A55x4+Cortex-A75x4`` 188d83bf0bcSJoanna Farley- ``FVP_Base_Cortex-A55x4`` 1896192448aSAmbroise Vincent- ``FVP_Base_Cortex-A57x1-A53x1`` 1906192448aSAmbroise Vincent- ``FVP_Base_Cortex-A57x2-A53x4`` 1914bf3349bSDan Handley- ``FVP_Base_Cortex-A57x4-A53x4`` 1924bf3349bSDan Handley- ``FVP_Base_Cortex-A57x4`` 1934bf3349bSDan Handley- ``FVP_Base_Cortex-A72x4-A53x4`` 1944bf3349bSDan Handley- ``FVP_Base_Cortex-A72x4`` 1954bf3349bSDan Handley- ``FVP_Base_Cortex-A73x4-A53x4`` 1964bf3349bSDan Handley- ``FVP_Base_Cortex-A73x4`` 197d83bf0bcSJoanna Farley- ``FVP_Base_Cortex-A75x4`` 198d83bf0bcSJoanna Farley- ``FVP_Base_Cortex-A76x4`` 1999ccc5a57SAlexei Fedorov- ``FVP_Base_Cortex-A76AEx4`` (Tested with internal model) 2009ccc5a57SAlexei Fedorov- ``FVP_Base_Cortex-A76AEx8`` (Tested with internal model) 2016192448aSAmbroise Vincent- ``FVP_Base_Neoverse-N1x4`` (Tested with internal model) 2026192448aSAmbroise Vincent- ``FVP_Base_Deimos`` 2036192448aSAmbroise Vincent- ``FVP_CSS_SGI-575`` (Version 11.3 build 42) 2046192448aSAmbroise Vincent- ``FVP_CSS_SGM-775`` (Version 11.3 build 42) 2056192448aSAmbroise Vincent- ``FVP_RD_E1Edge`` (Version 11.3 build 42) 2066192448aSAmbroise Vincent- ``FVP_RD_N1Edge`` (Version 11.3 build 42) 207d83bf0bcSJoanna Farley- ``Foundation_Platform`` 2085b0b7276SDan Handley 209d83bf0bcSJoanna FarleyThe latest version of the AArch32 build of TF-A has been tested on the following 2106192448aSAmbroise VincentArm FVPs without shifted affinities, and that do not support threaded CPU cores 211d83bf0bcSJoanna Farley(64-bit host machine only). 2124bf3349bSDan Handley 2135b0b7276SDan Handley- ``FVP_Base_AEMv8A-AEMv8A`` 2144bf3349bSDan Handley- ``FVP_Base_Cortex-A32x4`` 2156f625747SDouglas Raillard 2166192448aSAmbroise VincentNOTE: The ``FVP_Base_RevC-2xAEMv8A`` FVP only supports shifted affinities. 2176192448aSAmbroise Vincent 2186f625747SDouglas RaillardThe Foundation FVP can be downloaded free of charge. The Base FVPs can be 2194def07d5SDan Handleylicensed from Arm. See the `Arm FVP website`_. 2204bf3349bSDan Handley 221d83bf0bcSJoanna FarleyAll the above platforms have been tested with `Linaro Release 18.04`_. 2226f625747SDouglas Raillard 2236f625747SDouglas RaillardThis release also contains the following platform support: 2246f625747SDouglas Raillard 225ca7145c5SPaul Beesley- Allwinner sun50i_a64 and sun50i_h6 22637f647a4SAntonio Nino Diaz- Amlogic Meson S905 (GXBB) 2279b5a8aa5SRemi Pommarel- Amlogic Meson S905x (GXL) 228ca7145c5SPaul Beesley- Arm Juno Software Development Platform 229ca7145c5SPaul Beesley- Arm Neoverse N1 System Development Platform (N1SDP) 230ca7145c5SPaul Beesley- Arm Neoverse Reference Design N1 Edge (RD-N1-Edge) FVP 231ca7145c5SPaul Beesley- Arm Neoverse Reference Design E1 Edge (RD-E1-Edge) FVP 232ca7145c5SPaul Beesley- Arm SGI-575 and SGM-775 233ca7145c5SPaul Beesley- Arm Versatile Express FVP 2345b0b7276SDan Handley- HiKey, HiKey960 and Poplar boards 235ca7145c5SPaul Beesley- Intel Stratix 10 SoC FPGA 23691ce07b1SAntonio Nino Diaz- Marvell Armada 3700 and 8K 2376f625747SDouglas Raillard- MediaTek MT6795 and MT8173 SoCs 23891ce07b1SAntonio Nino Diaz- NVIDIA T132, T186 and T210 SoCs 239ca7145c5SPaul Beesley- NXP QorIQ LS1043A, i.MX8MM, i.MX8MQ, i.MX8QX, i.MX8QM and i.MX7Solo WaRP7 24091ce07b1SAntonio Nino Diaz- QEMU 24191ce07b1SAntonio Nino Diaz- Raspberry Pi 3 242ca7145c5SPaul Beesley- Renesas R-Car Generation 3 2434bf3349bSDan Handley- RockChip RK3328, RK3368 and RK3399 SoCs 244150c38e8SSumit Garg- Socionext UniPhier SoC family and SynQuacer SC2A11 SoCs 245d83bf0bcSJoanna Farley- STMicroelectronics STM32MP1 2461841c533SNishanth Menon- Texas Instruments K3 SoCs 24791ce07b1SAntonio Nino Diaz- Xilinx Versal and Zynq UltraScale + MPSoC 2486f625747SDouglas Raillard 2495b0b7276SDan HandleyStill to come 250ca7145c5SPaul Beesley------------- 2516f625747SDouglas Raillard 252ca7145c5SPaul Beesley- Support for additional platforms. 2536f625747SDouglas Raillard 254ca7145c5SPaul Beesley- Refinements to Position Independent Executable (PIE) support. 255ca7145c5SPaul Beesley 256bf32bc9cSPaul Beesley- Refinements to the SPCI-based SPM implementation as the draft SPCI and SPRT 257bf32bc9cSPaul Beesley specifications continue to evolve. 258ca7145c5SPaul Beesley 259ca7145c5SPaul Beesley- Documentation enhancements. 2605b0b7276SDan Handley 2616f625747SDouglas Raillard- Ongoing support for new architectural features, CPUs and System IP. 2626f625747SDouglas Raillard 2635b0b7276SDan Handley- Ongoing support for new Arm system architecture specifications. 2646f625747SDouglas Raillard 2656f625747SDouglas Raillard- Ongoing security hardening, optimization and quality improvements. 2666f625747SDouglas Raillard 2674bf3349bSDan HandleyFor a full list of detailed issues in the current code, please see the `Change 26863fdda2dSLouis MayencourtLog`_ and the `issue tracker`_. 2696f625747SDouglas Raillard 2705b0b7276SDan HandleyGetting started 2716f625747SDouglas Raillard--------------- 2726f625747SDouglas Raillard 27363fdda2dSLouis MayencourtSee the `User Guide`_ for instructions on how to download, install, build and 27463fdda2dSLouis Mayencourtuse TF-A with the Arm `FVP`_\ s. 2756f625747SDouglas Raillard 276d1ce4469SPaul BeesleySee the `Firmware Design`_ for information on how TF-A works. 2776f625747SDouglas Raillard 2786f625747SDouglas RaillardSee the `Porting Guide`_ as well for information about how to use this 2795b0b7276SDan Handleysoftware on another Armv7-A or Armv8-A platform. 2806f625747SDouglas Raillard 2816f625747SDouglas RaillardSee the `Contributing Guidelines`_ for information on how to contribute to this 2826f625747SDouglas Raillardproject and the `Acknowledgments`_ file for a list of contributors to the 2836f625747SDouglas Raillardproject. 2846f625747SDouglas Raillard 2858dd7bc6eSDimitris PapastamosIRC channel 2868dd7bc6eSDimitris Papastamos~~~~~~~~~~~ 2878dd7bc6eSDimitris Papastamos 2888dd7bc6eSDimitris PapastamosDevelopment discussion takes place on the #trusted-firmware-a channel 2898dd7bc6eSDimitris Papastamoson the Freenode IRC network. This is not an official support channel. 29063fdda2dSLouis MayencourtIf you have an issue to raise, please use the `issue tracker`_. 2918dd7bc6eSDimitris Papastamos 2926f625747SDouglas RaillardFeedback and support 2936f625747SDouglas Raillard~~~~~~~~~~~~~~~~~~~~ 2946f625747SDouglas Raillard 2954def07d5SDan HandleyArm welcomes any feedback on TF-A. If you think you have found a security 2964def07d5SDan Handleyvulnerability, please report this using the process defined in the TF-A 2973655ed87SSandrine Bailleux`Security Center`_. For all other feedback, please use the 29863fdda2dSLouis Mayencourt`issue tracker`_. 2996f625747SDouglas Raillard 3004def07d5SDan HandleyArm licensees may contact Arm directly via their partner managers. 3016f625747SDouglas Raillard 302d0f9809dSJoel HuttonSecurity advisories 303ca7145c5SPaul Beesley------------------- 304d0f9809dSJoel Hutton 30574f1f64aSSandrine Bailleux- `Security Advisory TFV-1`_ 30674f1f64aSSandrine Bailleux- `Security Advisory TFV-2`_ 30774f1f64aSSandrine Bailleux- `Security Advisory TFV-3`_ 30874f1f64aSSandrine Bailleux- `Security Advisory TFV-4`_ 30974f1f64aSSandrine Bailleux- `Security Advisory TFV-5`_ 31074f1f64aSSandrine Bailleux- `Security Advisory TFV-6`_ 31174f1f64aSSandrine Bailleux- `Security Advisory TFV-7`_ 31274f1f64aSSandrine Bailleux- `Security Advisory TFV-8`_ 313d0f9809dSJoel Hutton 314d0f9809dSJoel Hutton 3156f625747SDouglas Raillard-------------- 3166f625747SDouglas Raillard 31791ce07b1SAntonio Nino Diaz*Copyright (c) 2013-2019, Arm Limited and Contributors. All rights reserved.* 3186f625747SDouglas Raillard 3195b0b7276SDan Handley.. _Armv7-A and Armv8-A: https://developer.arm.com/products/architecture/a-profile 3206f625747SDouglas Raillard.. _Secure Monitor: http://www.arm.com/products/processors/technologies/trustzone/tee-smc.php 3214bf3349bSDan Handley.. _Power State Coordination Interface (PSCI): PSCI_ 3224bf3349bSDan Handley.. _PSCI: http://infocenter.arm.com/help/topic/com.arm.doc.den0022d/Power_State_Coordination_Interface_PDD_v1_1_DEN0022D.pdf 3234bf3349bSDan Handley.. _SMC Calling Convention: http://infocenter.arm.com/help/topic/com.arm.doc.den0028b/ARM_DEN0028B_SMC_Calling_Convention.pdf 3243c6261bdSPaul Beesley.. _System Control and Management Interface (SCMI): SCMI_ 3254bf3349bSDan Handley.. _SCMI: http://infocenter.arm.com/help/topic/com.arm.doc.den0056a/DEN0056A_System_Control_and_Management_Interface.pdf 326ed811260Sdanh-arm.. _Software Delegated Exception Interface (SDEI): SDEI_ 3275b0b7276SDan Handley.. _SDEI: http://infocenter.arm.com/help/topic/com.arm.doc.den0054a/ARM_DEN0054A_Software_Delegated_Exception_Interface.pdf 3284def07d5SDan Handley.. _Juno Arm Development Platform: http://www.arm.com/products/tools/development-boards/versatile-express/juno-arm-development-platform.php 3294def07d5SDan Handley.. _Arm FVP website: FVP_ 3304bf3349bSDan Handley.. _FVP: https://developer.arm.com/products/system-design/fixed-virtual-platforms 331d83bf0bcSJoanna Farley.. _Linaro Release 18.04: https://community.arm.com/dev-platforms/b/documents/posts/linaro-release-notes-deprecated#LinaroRelease18.04 3326f625747SDouglas Raillard.. _OP-TEE Secure OS: https://github.com/OP-TEE/optee_os 333be8b4d19SPaul Beesley.. _NVIDIA Trusted Little Kernel: http://nv-tegra.nvidia.com/gitweb/?p=3rdparty/ote_partner/tlk.git;a=summary 3344bf3349bSDan Handley.. _Trusty Secure OS: https://source.android.com/security/trusty 33563fdda2dSLouis Mayencourt.. _trustedfirmware.org: https://git.trustedfirmware.org/TF-A/trusted-firmware-a.git 336*0668dd71SJohn Tsichritzis.. _issue tracker: https://developer.trustedfirmware.org/project/board/1/ 337d0f9809dSJoel Hutton.. _Security Center: ./docs/security-center.rst 3384bf3349bSDan Handley.. _license: ./license.rst 3394bf3349bSDan Handley.. _Contributing Guidelines: ./contributing.rst 3404bf3349bSDan Handley.. _Acknowledgments: ./acknowledgements.rst 3416f625747SDouglas Raillard.. _Firmware Design: ./docs/firmware-design.rst 3426f625747SDouglas Raillard.. _Change Log: ./docs/change-log.rst 3436f625747SDouglas Raillard.. _User Guide: ./docs/user-guide.rst 3446f625747SDouglas Raillard.. _Porting Guide: ./docs/porting-guide.rst 34527989a8eSAntonio Nino Diaz.. _FreeBSD: http://www.freebsd.org 34627989a8eSAntonio Nino Diaz.. _SCC: http://www.simple-cc.org/ 347d0f9809dSJoel Hutton.. _Security Advisory TFV-1: ./docs/security_advisories/security-advisory-tfv-1.rst 348d0f9809dSJoel Hutton.. _Security Advisory TFV-2: ./docs/security_advisories/security-advisory-tfv-2.rst 349d0f9809dSJoel Hutton.. _Security Advisory TFV-3: ./docs/security_advisories/security-advisory-tfv-3.rst 350d0f9809dSJoel Hutton.. _Security Advisory TFV-4: ./docs/security_advisories/security-advisory-tfv-4.rst 351d0f9809dSJoel Hutton.. _Security Advisory TFV-5: ./docs/security_advisories/security-advisory-tfv-5.rst 352d0f9809dSJoel Hutton.. _Security Advisory TFV-6: ./docs/security_advisories/security-advisory-tfv-6.rst 353d0f9809dSJoel Hutton.. _Security Advisory TFV-7: ./docs/security_advisories/security-advisory-tfv-7.rst 354d0f9809dSJoel Hutton.. _Security Advisory TFV-8: ./docs/security_advisories/security-advisory-tfv-8.rst 355ca7145c5SPaul Beesley.. _Trusted Firmware-A Documentation Contents: ./docs/contents.rst 356