xref: /rk3399_ARM-atf/docs/index.rst (revision 8eb9490b61c65288eaacbf229afbbe0f99484c86)
140d553cfSPaul BeesleyTrusted Firmware-A Documentation
240d553cfSPaul Beesley================================
3653279b0SPaul Beesley
4653279b0SPaul Beesley.. toctree::
5653279b0SPaul Beesley   :maxdepth: 1
657354abbSPaul Beesley   :hidden:
7653279b0SPaul Beesley
89f1622b0SPaul Beesley   Home<self>
9*8eb9490bSPaul Beesley   about/index
1040d553cfSPaul Beesley   getting_started/index
1140d553cfSPaul Beesley   process/index
1240d553cfSPaul Beesley   components/index
1340d553cfSPaul Beesley   design/index
1440d553cfSPaul Beesley   plat/index
1540d553cfSPaul Beesley   perf/index
1640d553cfSPaul Beesley   security_advisories/index
17653279b0SPaul Beesley   change-log
188f62ca7bSPaul Beesley   glossary
199f1622b0SPaul Beesley   license
20653279b0SPaul Beesley
219f1622b0SPaul BeesleyTrusted Firmware-A (TF-A) provides a reference implementation of secure world
229f1622b0SPaul Beesleysoftware for `Armv7-A and Armv8-A`_, including a `Secure Monitor`_ executing
239f1622b0SPaul Beesleyat Exception Level 3 (EL3). It implements various Arm interface standards,
249f1622b0SPaul Beesleysuch as:
25653279b0SPaul Beesley
269f1622b0SPaul Beesley-  The `Power State Coordination Interface (PSCI)`_
279f1622b0SPaul Beesley-  `Trusted Board Boot Requirements CLIENT (TBBR-CLIENT)`_
289f1622b0SPaul Beesley-  `SMC Calling Convention`_
299f1622b0SPaul Beesley-  `System Control and Management Interface (SCMI)`_
309f1622b0SPaul Beesley-  `Software Delegated Exception Interface (SDEI)`_
319f1622b0SPaul Beesley
329f1622b0SPaul BeesleyWhere possible, the code is designed for reuse or porting to other Armv7-A and
339f1622b0SPaul BeesleyArmv8-A model and hardware platforms.
349f1622b0SPaul Beesley
359f1622b0SPaul BeesleyThis release provides a suitable starting point for productization of secure
369f1622b0SPaul Beesleyworld boot and runtime firmware, in either the AArch32 or AArch64 execution
379f1622b0SPaul Beesleystates.
389f1622b0SPaul Beesley
399f1622b0SPaul BeesleyUsers are encouraged to do their own security validation, including penetration
409f1622b0SPaul Beesleytesting, on any secure world code derived from TF-A.
419f1622b0SPaul Beesley
428cc36aecSPaul BeesleyIn collaboration with interested parties, we will continue to enhance |TF-A|
438cc36aecSPaul Beesleywith reference implementations of Arm standards to benefit developers working
448cc36aecSPaul Beesleywith Armv7-A and Armv8-A TrustZone technology.
459f1622b0SPaul Beesley
46*8eb9490bSPaul BeesleyGetting Started
47*8eb9490bSPaul Beesley---------------
489f1622b0SPaul Beesley
49*8eb9490bSPaul BeesleyThe |TF-A| documentation contains guidance for obtaining and building the
50*8eb9490bSPaul Beesleysoftware for existing, supported platforms, as well as supporting information
51*8eb9490bSPaul Beesleyfor porting the software to a new platform.
529f1622b0SPaul Beesley
53*8eb9490bSPaul BeesleyThe **About** chapter gives a high-level overview of |TF-A| features as well as
54*8eb9490bSPaul Beesleysome information on the project and how it is organized.
559f1622b0SPaul Beesley
56*8eb9490bSPaul BeesleyRefer to the documents in the **Getting Started** chapter for information about
57*8eb9490bSPaul Beesleythe prerequisites and requirements for building |TF-A|.
589f1622b0SPaul Beesley
59*8eb9490bSPaul BeesleyThe **Processes & Policies** chapter explains the project's release schedule
60*8eb9490bSPaul Beesleyand process, how security disclosures are handled, and the guidelines for
61*8eb9490bSPaul Beesleycontributing to the project (including the coding style).
629f1622b0SPaul Beesley
63*8eb9490bSPaul BeesleyThe **Components** chapter holds documents that explain specific components
64*8eb9490bSPaul Beesleythat make up the |TF-A| software, the :ref:`Exception Handling Framework`, for
65*8eb9490bSPaul Beesleyexample.
669f1622b0SPaul Beesley
67*8eb9490bSPaul BeesleyIn the **System Design** chapter you will find documents that explain the
68*8eb9490bSPaul Beesleydesign of portions of the software that involve more than one component, such
69*8eb9490bSPaul Beesleyas the :ref:`Trusted Board Boot` process.
709f1622b0SPaul Beesley
71*8eb9490bSPaul Beesley**Platform Ports** provides a list of the supported hardware and software-model
72*8eb9490bSPaul Beesleyplatforms that are supported upstream in |TF-A|. Most of these platforms also
73*8eb9490bSPaul Beesleyhave additional documentation that has been provided by the maintainers of the
74*8eb9490bSPaul Beesleyplatform.
759f1622b0SPaul Beesley
76*8eb9490bSPaul BeesleyThe results of any performance evaluations are added to the
77*8eb9490bSPaul Beesley**Performance & Testing** chapter.
789f1622b0SPaul Beesley
79*8eb9490bSPaul Beesley**Security Advisories** holds a list of documents relating to |CVE| entries that
80*8eb9490bSPaul Beesleyhave previously been raised against the software.
819f1622b0SPaul Beesley
829f1622b0SPaul BeesleyPlatforms
839f1622b0SPaul Beesley---------
849f1622b0SPaul Beesley
859f1622b0SPaul BeesleyVarious AArch32 and AArch64 builds of this release have been tested on r0, r1
869f1622b0SPaul Beesleyand r2 variants of the `Juno Arm Development Platform`_.
879f1622b0SPaul Beesley
889f1622b0SPaul BeesleyThe latest version of the AArch64 build of TF-A has been tested on the following
899f1622b0SPaul BeesleyArm FVPs without shifted affinities, and that do not support threaded CPU cores
909f1622b0SPaul Beesley(64-bit host machine only).
919f1622b0SPaul Beesley
92e1c5026aSPaul Beesley.. note::
93434d93d9SArtsem Artsemenka   The FVP models used are Version 11.6 Build 45, unless otherwise stated.
949f1622b0SPaul Beesley
959f1622b0SPaul Beesley-  ``FVP_Base_AEMv8A-AEMv8A``
969f1622b0SPaul Beesley-  ``FVP_Base_AEMv8A-AEMv8A-AEMv8A-AEMv8A-CCN502``
979f1622b0SPaul Beesley-  ``FVP_Base_RevC-2xAEMv8A``
989f1622b0SPaul Beesley-  ``FVP_Base_Cortex-A32x4``
999f1622b0SPaul Beesley-  ``FVP_Base_Cortex-A35x4``
1009f1622b0SPaul Beesley-  ``FVP_Base_Cortex-A53x4``
1019f1622b0SPaul Beesley-  ``FVP_Base_Cortex-A55x4+Cortex-A75x4``
1029f1622b0SPaul Beesley-  ``FVP_Base_Cortex-A55x4``
1039f1622b0SPaul Beesley-  ``FVP_Base_Cortex-A57x1-A53x1``
1049f1622b0SPaul Beesley-  ``FVP_Base_Cortex-A57x2-A53x4``
1059f1622b0SPaul Beesley-  ``FVP_Base_Cortex-A57x4-A53x4``
1069f1622b0SPaul Beesley-  ``FVP_Base_Cortex-A57x4``
1079f1622b0SPaul Beesley-  ``FVP_Base_Cortex-A72x4-A53x4``
1089f1622b0SPaul Beesley-  ``FVP_Base_Cortex-A72x4``
1099f1622b0SPaul Beesley-  ``FVP_Base_Cortex-A73x4-A53x4``
1109f1622b0SPaul Beesley-  ``FVP_Base_Cortex-A73x4``
1119f1622b0SPaul Beesley-  ``FVP_Base_Cortex-A75x4``
1129f1622b0SPaul Beesley-  ``FVP_Base_Cortex-A76x4``
1139f1622b0SPaul Beesley-  ``FVP_Base_Cortex-A76AEx4`` (Tested with internal model)
1149f1622b0SPaul Beesley-  ``FVP_Base_Cortex-A76AEx8`` (Tested with internal model)
115f363deb6SBalint Dobszay-  ``FVP_Base_Cortex-A77x4`` (Version 11.7 build 36)
1169f1622b0SPaul Beesley-  ``FVP_Base_Neoverse-N1x4`` (Tested with internal model)
1179f1622b0SPaul Beesley-  ``FVP_CSS_SGI-575`` (Version 11.3 build 42)
1189f1622b0SPaul Beesley-  ``FVP_CSS_SGM-775`` (Version 11.3 build 42)
1199f1622b0SPaul Beesley-  ``FVP_RD_E1Edge`` (Version 11.3 build 42)
1209f1622b0SPaul Beesley-  ``FVP_RD_N1Edge`` (Version 11.3 build 42)
1219f1622b0SPaul Beesley-  ``Foundation_Platform``
1229f1622b0SPaul Beesley
1239f1622b0SPaul BeesleyThe latest version of the AArch32 build of TF-A has been tested on the following
1249f1622b0SPaul BeesleyArm FVPs without shifted affinities, and that do not support threaded CPU cores
1259f1622b0SPaul Beesley(64-bit host machine only).
1269f1622b0SPaul Beesley
1279f1622b0SPaul Beesley-  ``FVP_Base_AEMv8A-AEMv8A``
1289f1622b0SPaul Beesley-  ``FVP_Base_Cortex-A32x4``
1299f1622b0SPaul Beesley
130e1c5026aSPaul Beesley.. note::
131e1c5026aSPaul Beesley   The ``FVP_Base_RevC-2xAEMv8A`` FVP only supports shifted affinities.
1329f1622b0SPaul Beesley
1339f1622b0SPaul BeesleyThe Foundation FVP can be downloaded free of charge. The Base FVPs can be
1349f1622b0SPaul Beesleylicensed from Arm. See the `Arm FVP website`_.
1359f1622b0SPaul Beesley
1369ec4afc8SPaul BeesleyAll the above platforms have been tested with `Linaro Release 19.06`_.
1379f1622b0SPaul Beesley
1389f1622b0SPaul BeesleyThis release also contains the following platform support:
1399f1622b0SPaul Beesley
1409f1622b0SPaul Beesley-  Allwinner sun50i_a64 and sun50i_h6
1419f1622b0SPaul Beesley-  Amlogic Meson S905 (GXBB)
1429f1622b0SPaul Beesley-  Arm Juno Software Development Platform
1439f1622b0SPaul Beesley-  Arm Neoverse N1 System Development Platform (N1SDP)
1449f1622b0SPaul Beesley-  Arm Neoverse Reference Design N1 Edge (RD-N1-Edge) FVP
1459f1622b0SPaul Beesley-  Arm Neoverse Reference Design E1 Edge (RD-E1-Edge) FVP
1469f1622b0SPaul Beesley-  Arm SGI-575 and SGM-775
1479f1622b0SPaul Beesley-  Arm Versatile Express FVP
1489f1622b0SPaul Beesley-  HiKey, HiKey960 and Poplar boards
1499f1622b0SPaul Beesley-  Intel Stratix 10 SoC FPGA
1509f1622b0SPaul Beesley-  Marvell Armada 3700 and 8K
1519f1622b0SPaul Beesley-  MediaTek MT6795 and MT8173 SoCs
1529f1622b0SPaul Beesley-  NVIDIA T132, T186 and T210 SoCs
1539f1622b0SPaul Beesley-  NXP QorIQ LS1043A, i.MX8MM, i.MX8MQ, i.MX8QX, i.MX8QM and i.MX7Solo WaRP7
1549f1622b0SPaul Beesley-  QEMU
1559f1622b0SPaul Beesley-  Raspberry Pi 3
1569f1622b0SPaul Beesley-  Renesas R-Car Generation 3
1579f1622b0SPaul Beesley-  RockChip RK3328, RK3368 and RK3399 SoCs
1589f1622b0SPaul Beesley-  Socionext UniPhier SoC family and SynQuacer SC2A11 SoCs
1599f1622b0SPaul Beesley-  STMicroelectronics STM32MP1
1609f1622b0SPaul Beesley-  Texas Instruments K3 SoCs
1619f1622b0SPaul Beesley-  Xilinx Versal and Zynq UltraScale + MPSoC
1629f1622b0SPaul Beesley
1639f1622b0SPaul Beesley--------------
1649f1622b0SPaul Beesley
1659f1622b0SPaul Beesley*Copyright (c) 2013-2019, Arm Limited and Contributors. All rights reserved.*
1669f1622b0SPaul Beesley
1679f1622b0SPaul Beesley.. _Armv7-A and Armv8-A: https://developer.arm.com/products/architecture/a-profile
1689f1622b0SPaul Beesley.. _Secure Monitor: http://www.arm.com/products/processors/technologies/trustzone/tee-smc.php
169*8eb9490bSPaul Beesley.. _Power State Coordination Interface (PSCI): http://infocenter.arm.com/help/topic/com.arm.doc.den0022d/Power_State_Coordination_Interface_PDD_v1_1_DEN0022D.pdf
1709f1622b0SPaul Beesley.. _Trusted Board Boot Requirements CLIENT (TBBR-CLIENT): https://developer.arm.com/docs/den0006/latest/trusted-board-boot-requirements-client-tbbr-client-armv8-a
171*8eb9490bSPaul Beesley.. _System Control and Management Interface (SCMI): http://infocenter.arm.com/help/topic/com.arm.doc.den0056a/DEN0056A_System_Control_and_Management_Interface.pdf
172*8eb9490bSPaul Beesley.. _Software Delegated Exception Interface (SDEI): http://infocenter.arm.com/help/topic/com.arm.doc.den0054a/ARM_DEN0054A_Software_Delegated_Exception_Interface.pdf
1739f1622b0SPaul Beesley.. _Juno Arm Development Platform: http://www.arm.com/products/tools/development-boards/versatile-express/juno-arm-development-platform.php
174*8eb9490bSPaul Beesley.. _Arm FVP website: https://developer.arm.com/products/system-design/fixed-virtual-platforms
1759ec4afc8SPaul Beesley.. _Linaro Release 19.06: http://releases.linaro.org/members/arm/platforms/19.06
176*8eb9490bSPaul Beesley.. _SMC Calling Convention: http://infocenter.arm.com/help/topic/com.arm.doc.den0028b/ARM_DEN0028B_SMC_Calling_Convention.pdf
177