xref: /rk3399_ARM-atf/readme.rst (revision 9b5a8aa58de3b7bbfc014122ac96caa1f1b3045d)
1ca7145c5SPaul BeesleyTrusted Firmware-A - version 2.1
24def07d5SDan Handley================================
36f625747SDouglas Raillard
44def07d5SDan HandleyTrusted Firmware-A (TF-A) provides a reference implementation of secure world
55b0b7276SDan Handleysoftware for `Armv7-A and Armv8-A`_, including a `Secure Monitor`_ executing
65b0b7276SDan Handleyat Exception Level 3 (EL3). It implements various Arm interface standards,
75b0b7276SDan Handleysuch as:
84bf3349bSDan Handley
94bf3349bSDan Handley-  The `Power State Coordination Interface (PSCI)`_
104def07d5SDan Handley-  Trusted Board Boot Requirements (TBBR, Arm DEN0006C-1)
114bf3349bSDan Handley-  `SMC Calling Convention`_
123c6261bdSPaul Beesley-  `System Control and Management Interface (SCMI)`_
135b0b7276SDan Handley-  `Software Delegated Exception Interface (SDEI)`_
144bf3349bSDan Handley
155b0b7276SDan HandleyWhere possible, the code is designed for reuse or porting to other Armv7-A and
165b0b7276SDan HandleyArmv8-A model and hardware platforms.
176f625747SDouglas Raillard
18ca7145c5SPaul BeesleyThis release provides a suitable starting point for productization of secure
19ca7145c5SPaul Beesleyworld boot and runtime firmware, in either the AArch32 or AArch64 execution
20ca7145c5SPaul Beesleystates.
21ca7145c5SPaul Beesley
22ca7145c5SPaul BeesleyUsers are encouraged to do their own security validation, including penetration
23ca7145c5SPaul Beesleytesting, on any secure world code derived from TF-A.
24ca7145c5SPaul Beesley
254def07d5SDan HandleyArm will continue development in collaboration with interested parties to
264def07d5SDan Handleyprovide a full reference implementation of Secure Monitor code and Arm standards
275b0b7276SDan Handleyto the benefit of all developers working with Armv7-A and Armv8-A TrustZone
285b0b7276SDan Handleytechnology.
296f625747SDouglas Raillard
306f625747SDouglas RaillardLicense
316f625747SDouglas Raillard-------
326f625747SDouglas Raillard
336f625747SDouglas RaillardThe software is provided under a BSD-3-Clause `license`_. Contributions to this
346f625747SDouglas Raillardproject are accepted under the same license with developer sign-off as
356f625747SDouglas Raillarddescribed in the `Contributing Guidelines`_.
366f625747SDouglas Raillard
376f625747SDouglas RaillardThis project contains code from other projects as listed below. The original
386f625747SDouglas Raillardlicense text is included in those source files.
396f625747SDouglas Raillard
4027989a8eSAntonio Nino Diaz-  The libc source code is derived from `FreeBSD`_ and `SCC`_. FreeBSD uses
4127989a8eSAntonio Nino Diaz   various BSD licenses, including BSD-3-Clause and BSD-2-Clause. The SCC code
4227989a8eSAntonio Nino Diaz   is used under the BSD-3-Clause license with the author's permission.
436f625747SDouglas Raillard
44327cfc27SDan Handley-  The libfdt source code is disjunctively dual licensed
45327cfc27SDan Handley   (GPL-2.0+ OR BSD-2-Clause). It is used by this project under the terms of
46327cfc27SDan Handley   the BSD-2-Clause license. Any contributions to this code must be made under
47327cfc27SDan Handley   the terms of both licenses.
486f625747SDouglas Raillard
49327cfc27SDan Handley-  The LLVM compiler-rt source code is disjunctively dual licensed
50327cfc27SDan Handley   (NCSA OR MIT). It is used by this project under the terms of the NCSA
51327cfc27SDan Handley   license (also known as the University of Illinois/NCSA Open Source License),
52327cfc27SDan Handley   which is a permissive license compatible with BSD-3-Clause. Any
53327cfc27SDan Handley   contributions to this code must be made under the terms of both licenses.
544bf3349bSDan Handley
555b0b7276SDan Handley-  The zlib source code is licensed under the Zlib license, which is a
565b0b7276SDan Handley   permissive license compatible with BSD-3-Clause.
575b0b7276SDan Handley
58327cfc27SDan Handley-  Some STMicroelectronics platform source code is disjunctively dual licensed
59327cfc27SDan Handley   (GPL-2.0+ OR BSD-3-Clause). It is used by this project under the terms of the
60327cfc27SDan Handley   BSD-3-Clause license. Any contributions to this code must be made under the
61327cfc27SDan Handley   terms of both licenses.
62327cfc27SDan Handley
636f625747SDouglas RaillardFunctionality
64ca7145c5SPaul Beesley-------------
656f625747SDouglas Raillard
664bf3349bSDan Handley-  Initialization of the secure world, for example exception vectors, control
674bf3349bSDan Handley   registers and interrupts for the platform.
686f625747SDouglas Raillard
696f625747SDouglas Raillard-  Library support for CPU specific reset and power down sequences. This
704def07d5SDan Handley   includes support for errata workarounds and the latest Arm DynamIQ CPUs.
716f625747SDouglas Raillard
724def07d5SDan Handley-  Drivers to enable standard initialization of Arm System IP, for example
734bf3349bSDan Handley   Generic Interrupt Controller (GIC), Cache Coherent Interconnect (CCI),
744bf3349bSDan Handley   Cache Coherent Network (CCN), Network Interconnect (NIC) and TrustZone
754bf3349bSDan Handley   Controller (TZC).
766f625747SDouglas Raillard
774bf3349bSDan Handley-  A generic `SCMI`_ driver to interface with conforming power controllers, for
784def07d5SDan Handley   example the Arm System Control Processor (SCP).
796f625747SDouglas Raillard
804bf3349bSDan Handley-  SMC (Secure Monitor Call) handling, conforming to the `SMC Calling
814bf3349bSDan Handley   Convention`_ using an EL3 runtime services framework.
826f625747SDouglas Raillard
834bf3349bSDan Handley-  `PSCI`_ library support for CPU, cluster and system power management
844bf3349bSDan Handley   use-cases.
854bf3349bSDan Handley   This library is pre-integrated with the AArch64 EL3 Runtime Software, and
864bf3349bSDan Handley   is also suitable for integration with other AArch32 EL3 Runtime Software,
874bf3349bSDan Handley   for example an AArch32 Secure OS.
884bf3349bSDan Handley
894bf3349bSDan Handley-  A minimal AArch32 Secure Payload (SP\_MIN) to demonstrate `PSCI`_ library
904bf3349bSDan Handley   integration with AArch32 EL3 Runtime Software.
916f625747SDouglas Raillard
926f625747SDouglas Raillard-  Secure Monitor library code such as world switching, EL1 context management
936f625747SDouglas Raillard   and interrupt routing.
944bf3349bSDan Handley   When a Secure-EL1 Payload (SP) is present, for example a Secure OS, the
95d1ce4469SPaul Beesley   AArch64 EL3 Runtime Software must be integrated with a Secure Payload
96d1ce4469SPaul Beesley   Dispatcher (SPD) component to customize the interaction with the SP.
976f625747SDouglas Raillard
98d1ce4469SPaul Beesley-  A Test SP and SPD to demonstrate AArch64 Secure Monitor functionality and SP
994bf3349bSDan Handley   interaction with PSCI.
1006f625747SDouglas Raillard
101be8b4d19SPaul Beesley-  SPDs for the `OP-TEE Secure OS`_, `NVIDIA Trusted Little Kernel`_
1024bf3349bSDan Handley   and `Trusty Secure OS`_.
1036f625747SDouglas Raillard
1046f625747SDouglas Raillard-  A Trusted Board Boot implementation, conforming to all mandatory TBBR
1054bf3349bSDan Handley   requirements. This includes image authentication, Firmware Update (or
1064bf3349bSDan Handley   recovery mode), and packaging of the various firmware images into a
1074bf3349bSDan Handley   Firmware Image Package (FIP).
1086f625747SDouglas Raillard
1095b0b7276SDan Handley-  Pre-integration of TBB with the Arm CryptoCell product, to take advantage of
1105b0b7276SDan Handley   its hardware Root of Trust and crypto acceleration services.
1115b0b7276SDan Handley
1125b0b7276SDan Handley-  Reliability, Availability, and Serviceability (RAS) functionality, including
1135b0b7276SDan Handley
1145b0b7276SDan Handley   -  A Secure Partition Manager (SPM) to manage Secure Partitions in
1155b0b7276SDan Handley      Secure-EL0, which can be used to implement simple management and
1165b0b7276SDan Handley      security services.
1175b0b7276SDan Handley
1185b0b7276SDan Handley   -  An SDEI dispatcher to route interrupt-based SDEI events.
1195b0b7276SDan Handley
1205b0b7276SDan Handley   -  An Exception Handling Framework (EHF) that allows dispatching of EL3
1215b0b7276SDan Handley      interrupts to their registered handlers, to facilitate firmware-first
1225b0b7276SDan Handley      error handling.
1235b0b7276SDan Handley
1245b0b7276SDan Handley-  A dynamic configuration framework that enables each of the firmware images
1255b0b7276SDan Handley   to be configured at runtime if required by the platform. It also enables
1265b0b7276SDan Handley   loading of a hardware configuration (for example, a kernel device tree)
1275b0b7276SDan Handley   as part of the FIP, to be passed through the firmware stages.
1284bf3349bSDan Handley
1294bf3349bSDan Handley-  Support for alternative boot flows, for example to support platforms where
1304bf3349bSDan Handley   the EL3 Runtime Software is loaded using other firmware or a separate
1315b0b7276SDan Handley   secure system processor, or where a non-TF-A ROM expects BL2 to be loaded
1325b0b7276SDan Handley   at EL3.
1334bf3349bSDan Handley
1344def07d5SDan Handley-  Support for the GCC, LLVM and Arm Compiler 6 toolchains.
1356f625747SDouglas Raillard
136ca7145c5SPaul Beesley-  Support for combining several libraries into a "romlib" image that may be
137ca7145c5SPaul Beesley   shared across images to reduce memory footprint. The romlib image is stored
138ca7145c5SPaul Beesley   in ROM but is accessed through a jump-table that may be stored
139d83bf0bcSJoanna Farley   in read-write memory, allowing for the library code to be patched.
140d83bf0bcSJoanna Farley
141ca7145c5SPaul Beesley-  A prototype implementation of a Secure Partition Manager (SPM) that is based
142bf32bc9cSPaul Beesley   on the SPCI Alpha 1 and SPRT draft specifications.
143ca7145c5SPaul Beesley
144ca7145c5SPaul Beesley-  Support for ARMv8.3 pointer authentication in the normal and secure worlds.
145ca7145c5SPaul Beesley   The use of pointer authentication in the normal world is enabled whenever
146ca7145c5SPaul Beesley   architectural support is available, without the need for additional build
147ca7145c5SPaul Beesley   flags. Use of pointer authentication in the secure world remains an
148ca7145c5SPaul Beesley   experimental configuration at this time and requires the ``ENABLE_PAUTH``
149ca7145c5SPaul Beesley   build flag to be set.
150ca7145c5SPaul Beesley
151ca7145c5SPaul Beesley-  Position-Independent Executable (PIE) support. Initially for BL31 only, with
152ca7145c5SPaul Beesley   further support to be added in a future release.
153ca7145c5SPaul Beesley
1546f625747SDouglas RaillardFor a full description of functionality and implementation details, please
1556f625747SDouglas Raillardsee the `Firmware Design`_ and supporting documentation. The `Change Log`_
1566f625747SDouglas Raillardprovides details of changes made since the last release.
1576f625747SDouglas Raillard
1586f625747SDouglas RaillardPlatforms
159ca7145c5SPaul Beesley---------
1606f625747SDouglas Raillard
161d1ce4469SPaul BeesleyVarious AArch32 and AArch64 builds of this release have been tested on r0, r1
162d1ce4469SPaul Beesleyand r2 variants of the `Juno Arm Development Platform`_.
1636f625747SDouglas Raillard
1646192448aSAmbroise VincentThe latest version of the AArch64 build of TF-A has been tested on the following
1656192448aSAmbroise VincentArm FVPs without shifted affinities, and that do not support threaded CPU cores
1666192448aSAmbroise Vincent(64-bit host machine only).
1676f625747SDouglas Raillard
1686192448aSAmbroise VincentThe FVP models used are Version 11.5 Build 33, unless otherwise stated.
1696f625747SDouglas Raillard
170d83bf0bcSJoanna Farley-  ``FVP_Base_AEMv8A-AEMv8A``
171d83bf0bcSJoanna Farley-  ``FVP_Base_AEMv8A-AEMv8A-AEMv8A-AEMv8A-CCN502``
172d83bf0bcSJoanna Farley-  ``FVP_Base_RevC-2xAEMv8A``
173d83bf0bcSJoanna Farley-  ``FVP_Base_Cortex-A32x4``
1744bf3349bSDan Handley-  ``FVP_Base_Cortex-A35x4``
1754bf3349bSDan Handley-  ``FVP_Base_Cortex-A53x4``
176d83bf0bcSJoanna Farley-  ``FVP_Base_Cortex-A55x4+Cortex-A75x4``
177d83bf0bcSJoanna Farley-  ``FVP_Base_Cortex-A55x4``
1786192448aSAmbroise Vincent-  ``FVP_Base_Cortex-A57x1-A53x1``
1796192448aSAmbroise Vincent-  ``FVP_Base_Cortex-A57x2-A53x4``
1804bf3349bSDan Handley-  ``FVP_Base_Cortex-A57x4-A53x4``
1814bf3349bSDan Handley-  ``FVP_Base_Cortex-A57x4``
1824bf3349bSDan Handley-  ``FVP_Base_Cortex-A72x4-A53x4``
1834bf3349bSDan Handley-  ``FVP_Base_Cortex-A72x4``
1844bf3349bSDan Handley-  ``FVP_Base_Cortex-A73x4-A53x4``
1854bf3349bSDan Handley-  ``FVP_Base_Cortex-A73x4``
186d83bf0bcSJoanna Farley-  ``FVP_Base_Cortex-A75x4``
187d83bf0bcSJoanna Farley-  ``FVP_Base_Cortex-A76x4``
1886192448aSAmbroise Vincent-  ``FVP_Base_Neoverse-N1x4`` (Tested with internal model)
1896192448aSAmbroise Vincent-  ``FVP_Base_Deimos``
1906192448aSAmbroise Vincent-  ``FVP_CSS_SGI-575`` (Version 11.3 build 42)
1916192448aSAmbroise Vincent-  ``FVP_CSS_SGM-775`` (Version 11.3 build 42)
1926192448aSAmbroise Vincent-  ``FVP_RD_E1Edge`` (Version 11.3 build 42)
1936192448aSAmbroise Vincent-  ``FVP_RD_N1Edge`` (Version 11.3 build 42)
194d83bf0bcSJoanna Farley-  ``Foundation_Platform``
1955b0b7276SDan Handley
196d83bf0bcSJoanna FarleyThe latest version of the AArch32 build of TF-A has been tested on the following
1976192448aSAmbroise VincentArm FVPs without shifted affinities, and that do not support threaded CPU cores
198d83bf0bcSJoanna Farley(64-bit host machine only).
1994bf3349bSDan Handley
2005b0b7276SDan Handley-  ``FVP_Base_AEMv8A-AEMv8A``
2014bf3349bSDan Handley-  ``FVP_Base_Cortex-A32x4``
2026f625747SDouglas Raillard
2036192448aSAmbroise VincentNOTE: The ``FVP_Base_RevC-2xAEMv8A`` FVP only supports shifted affinities.
2046192448aSAmbroise Vincent
2056f625747SDouglas RaillardThe Foundation FVP can be downloaded free of charge. The Base FVPs can be
2064def07d5SDan Handleylicensed from Arm. See the `Arm FVP website`_.
2074bf3349bSDan Handley
208d83bf0bcSJoanna FarleyAll the above platforms have been tested with `Linaro Release 18.04`_.
2096f625747SDouglas Raillard
2106f625747SDouglas RaillardThis release also contains the following platform support:
2116f625747SDouglas Raillard
212ca7145c5SPaul Beesley-  Allwinner sun50i_a64 and sun50i_h6
21337f647a4SAntonio Nino Diaz-  Amlogic Meson S905 (GXBB)
214*9b5a8aa5SRemi Pommarel-  Amlogic Meson S905x (GXL)
215ca7145c5SPaul Beesley-  Arm Juno Software Development Platform
216ca7145c5SPaul Beesley-  Arm Neoverse N1 System Development Platform (N1SDP)
217ca7145c5SPaul Beesley-  Arm Neoverse Reference Design N1 Edge (RD-N1-Edge) FVP
218ca7145c5SPaul Beesley-  Arm Neoverse Reference Design E1 Edge (RD-E1-Edge) FVP
219ca7145c5SPaul Beesley-  Arm SGI-575 and SGM-775
220ca7145c5SPaul Beesley-  Arm Versatile Express FVP
2215b0b7276SDan Handley-  HiKey, HiKey960 and Poplar boards
222ca7145c5SPaul Beesley-  Intel Stratix 10 SoC FPGA
22391ce07b1SAntonio Nino Diaz-  Marvell Armada 3700 and 8K
2246f625747SDouglas Raillard-  MediaTek MT6795 and MT8173 SoCs
22591ce07b1SAntonio Nino Diaz-  NVIDIA T132, T186 and T210 SoCs
226ca7145c5SPaul Beesley-  NXP QorIQ LS1043A, i.MX8MM, i.MX8MQ, i.MX8QX, i.MX8QM and i.MX7Solo WaRP7
22791ce07b1SAntonio Nino Diaz-  QEMU
22891ce07b1SAntonio Nino Diaz-  Raspberry Pi 3
229ca7145c5SPaul Beesley-  Renesas R-Car Generation 3
2304bf3349bSDan Handley-  RockChip RK3328, RK3368 and RK3399 SoCs
231150c38e8SSumit Garg-  Socionext UniPhier SoC family and SynQuacer SC2A11 SoCs
232d83bf0bcSJoanna Farley-  STMicroelectronics STM32MP1
2331841c533SNishanth Menon-  Texas Instruments K3 SoCs
23491ce07b1SAntonio Nino Diaz-  Xilinx Versal and Zynq UltraScale + MPSoC
2356f625747SDouglas Raillard
2365b0b7276SDan HandleyStill to come
237ca7145c5SPaul Beesley-------------
2386f625747SDouglas Raillard
239ca7145c5SPaul Beesley-  Support for additional platforms.
2406f625747SDouglas Raillard
241ca7145c5SPaul Beesley-  Refinements to Position Independent Executable (PIE) support.
242ca7145c5SPaul Beesley
243bf32bc9cSPaul Beesley-  Refinements to the SPCI-based SPM implementation as the draft SPCI and SPRT
244bf32bc9cSPaul Beesley   specifications continue to evolve.
245ca7145c5SPaul Beesley
246ca7145c5SPaul Beesley-  Documentation enhancements.
2475b0b7276SDan Handley
2486f625747SDouglas Raillard-  Ongoing support for new architectural features, CPUs and System IP.
2496f625747SDouglas Raillard
2505b0b7276SDan Handley-  Ongoing support for new Arm system architecture specifications.
2516f625747SDouglas Raillard
2526f625747SDouglas Raillard-  Ongoing security hardening, optimization and quality improvements.
2536f625747SDouglas Raillard
2544bf3349bSDan HandleyFor a full list of detailed issues in the current code, please see the `Change
2554bf3349bSDan HandleyLog`_ and the `GitHub issue tracker`_.
2566f625747SDouglas Raillard
2575b0b7276SDan HandleyGetting started
2586f625747SDouglas Raillard---------------
2596f625747SDouglas Raillard
2604def07d5SDan HandleyGet the TF-A source code from `GitHub`_.
2616f625747SDouglas Raillard
262d1ce4469SPaul BeesleySee the `User Guide`_ for instructions on how to install, build and use TF-A
263d1ce4469SPaul Beesleywith the Arm `FVP`_\ s.
2646f625747SDouglas Raillard
265d1ce4469SPaul BeesleySee the `Firmware Design`_ for information on how TF-A works.
2666f625747SDouglas Raillard
2676f625747SDouglas RaillardSee the `Porting Guide`_ as well for information about how to use this
2685b0b7276SDan Handleysoftware on another Armv7-A or Armv8-A platform.
2696f625747SDouglas Raillard
2706f625747SDouglas RaillardSee the `Contributing Guidelines`_ for information on how to contribute to this
2716f625747SDouglas Raillardproject and the `Acknowledgments`_ file for a list of contributors to the
2726f625747SDouglas Raillardproject.
2736f625747SDouglas Raillard
274ca7145c5SPaul BeesleyDocumentation contents
275ca7145c5SPaul Beesley~~~~~~~~~~~~~~~~~~~~~~
276ca7145c5SPaul Beesley
277ca7145c5SPaul BeesleyThe `Trusted Firmware-A Documentation Contents`_ page contains an overview of
278ca7145c5SPaul Beesleythe documentation that is available, with links to facilitate easier browsing.
279ca7145c5SPaul Beesley
2808dd7bc6eSDimitris PapastamosIRC channel
2818dd7bc6eSDimitris Papastamos~~~~~~~~~~~
2828dd7bc6eSDimitris Papastamos
2838dd7bc6eSDimitris PapastamosDevelopment discussion takes place on the #trusted-firmware-a channel
2848dd7bc6eSDimitris Papastamoson the Freenode IRC network. This is not an official support channel.
2858dd7bc6eSDimitris PapastamosIf you have an issue to raise, please use the `GitHub issue tracker`_.
2868dd7bc6eSDimitris Papastamos
2876f625747SDouglas RaillardFeedback and support
2886f625747SDouglas Raillard~~~~~~~~~~~~~~~~~~~~
2896f625747SDouglas Raillard
2904def07d5SDan HandleyArm welcomes any feedback on TF-A. If you think you have found a security
2914def07d5SDan Handleyvulnerability, please report this using the process defined in the TF-A
2923655ed87SSandrine Bailleux`Security Center`_. For all other feedback, please use the
2934bf3349bSDan Handley`GitHub issue tracker`_.
2946f625747SDouglas Raillard
2954def07d5SDan HandleyArm licensees may contact Arm directly via their partner managers.
2966f625747SDouglas Raillard
297d0f9809dSJoel HuttonSecurity advisories
298ca7145c5SPaul Beesley-------------------
299d0f9809dSJoel Hutton
30074f1f64aSSandrine Bailleux-  `Security Advisory TFV-1`_
30174f1f64aSSandrine Bailleux-  `Security Advisory TFV-2`_
30274f1f64aSSandrine Bailleux-  `Security Advisory TFV-3`_
30374f1f64aSSandrine Bailleux-  `Security Advisory TFV-4`_
30474f1f64aSSandrine Bailleux-  `Security Advisory TFV-5`_
30574f1f64aSSandrine Bailleux-  `Security Advisory TFV-6`_
30674f1f64aSSandrine Bailleux-  `Security Advisory TFV-7`_
30774f1f64aSSandrine Bailleux-  `Security Advisory TFV-8`_
308d0f9809dSJoel Hutton
309d0f9809dSJoel Hutton
3106f625747SDouglas Raillard--------------
3116f625747SDouglas Raillard
31291ce07b1SAntonio Nino Diaz*Copyright (c) 2013-2019, Arm Limited and Contributors. All rights reserved.*
3136f625747SDouglas Raillard
3145b0b7276SDan Handley.. _Armv7-A and Armv8-A: https://developer.arm.com/products/architecture/a-profile
3156f625747SDouglas Raillard.. _Secure Monitor: http://www.arm.com/products/processors/technologies/trustzone/tee-smc.php
3164bf3349bSDan Handley.. _Power State Coordination Interface (PSCI): PSCI_
3174bf3349bSDan Handley.. _PSCI: http://infocenter.arm.com/help/topic/com.arm.doc.den0022d/Power_State_Coordination_Interface_PDD_v1_1_DEN0022D.pdf
3184bf3349bSDan Handley.. _SMC Calling Convention: http://infocenter.arm.com/help/topic/com.arm.doc.den0028b/ARM_DEN0028B_SMC_Calling_Convention.pdf
3193c6261bdSPaul Beesley.. _System Control and Management Interface (SCMI): SCMI_
3204bf3349bSDan Handley.. _SCMI: http://infocenter.arm.com/help/topic/com.arm.doc.den0056a/DEN0056A_System_Control_and_Management_Interface.pdf
321ed811260Sdanh-arm.. _Software Delegated Exception Interface (SDEI): SDEI_
3225b0b7276SDan Handley.. _SDEI: http://infocenter.arm.com/help/topic/com.arm.doc.den0054a/ARM_DEN0054A_Software_Delegated_Exception_Interface.pdf
3234def07d5SDan Handley.. _Juno Arm Development Platform: http://www.arm.com/products/tools/development-boards/versatile-express/juno-arm-development-platform.php
3244def07d5SDan Handley.. _Arm FVP website: FVP_
3254bf3349bSDan Handley.. _FVP: https://developer.arm.com/products/system-design/fixed-virtual-platforms
326d83bf0bcSJoanna Farley.. _Linaro Release 18.04: https://community.arm.com/dev-platforms/b/documents/posts/linaro-release-notes-deprecated#LinaroRelease18.04
3276f625747SDouglas Raillard.. _OP-TEE Secure OS: https://github.com/OP-TEE/optee_os
328be8b4d19SPaul Beesley.. _NVIDIA Trusted Little Kernel: http://nv-tegra.nvidia.com/gitweb/?p=3rdparty/ote_partner/tlk.git;a=summary
3294bf3349bSDan Handley.. _Trusty Secure OS: https://source.android.com/security/trusty
3304bf3349bSDan Handley.. _GitHub: https://www.github.com/ARM-software/arm-trusted-firmware
3314bf3349bSDan Handley.. _GitHub issue tracker: https://github.com/ARM-software/tf-issues/issues
332d0f9809dSJoel Hutton.. _Security Center: ./docs/security-center.rst
3334bf3349bSDan Handley.. _license: ./license.rst
3344bf3349bSDan Handley.. _Contributing Guidelines: ./contributing.rst
3354bf3349bSDan Handley.. _Acknowledgments: ./acknowledgements.rst
3366f625747SDouglas Raillard.. _Firmware Design: ./docs/firmware-design.rst
3376f625747SDouglas Raillard.. _Change Log: ./docs/change-log.rst
3386f625747SDouglas Raillard.. _User Guide: ./docs/user-guide.rst
3396f625747SDouglas Raillard.. _Porting Guide: ./docs/porting-guide.rst
34027989a8eSAntonio Nino Diaz.. _FreeBSD: http://www.freebsd.org
34127989a8eSAntonio Nino Diaz.. _SCC: http://www.simple-cc.org/
342d0f9809dSJoel Hutton.. _Security Advisory TFV-1: ./docs/security_advisories/security-advisory-tfv-1.rst
343d0f9809dSJoel Hutton.. _Security Advisory TFV-2: ./docs/security_advisories/security-advisory-tfv-2.rst
344d0f9809dSJoel Hutton.. _Security Advisory TFV-3: ./docs/security_advisories/security-advisory-tfv-3.rst
345d0f9809dSJoel Hutton.. _Security Advisory TFV-4: ./docs/security_advisories/security-advisory-tfv-4.rst
346d0f9809dSJoel Hutton.. _Security Advisory TFV-5: ./docs/security_advisories/security-advisory-tfv-5.rst
347d0f9809dSJoel Hutton.. _Security Advisory TFV-6: ./docs/security_advisories/security-advisory-tfv-6.rst
348d0f9809dSJoel Hutton.. _Security Advisory TFV-7: ./docs/security_advisories/security-advisory-tfv-7.rst
349d0f9809dSJoel Hutton.. _Security Advisory TFV-8: ./docs/security_advisories/security-advisory-tfv-8.rst
350ca7145c5SPaul Beesley.. _Trusted Firmware-A Documentation Contents: ./docs/contents.rst
351