blob: 5088bfd87821688a744faf760b8d08d2fc9ba8df [file] [log] [blame]
Paul Beesleyea225122019-02-11 17:54:45 +00001Trusted Firmware-A Documentation
2================================
Paul Beesley22994f72019-01-23 15:39:39 +00003
4.. toctree::
5 :maxdepth: 1
Paul Beesleya8790092019-03-07 17:03:22 +00006 :hidden:
Paul Beesley22994f72019-01-23 15:39:39 +00007
Paul Beesleycb238022019-03-07 15:25:14 +00008 Home<self>
Paul Beesley48f12a42019-10-16 13:35:47 +00009 about/index
Paul Beesleyea225122019-02-11 17:54:45 +000010 getting_started/index
11 process/index
12 components/index
13 design/index
14 plat/index
15 perf/index
16 security_advisories/index
Paul Beesley22994f72019-01-23 15:39:39 +000017 change-log
laurenw-arm462ab372020-01-17 10:26:21 -060018 change-log-upcoming
Paul Beesley606d8072019-03-13 13:58:02 +000019 glossary
Paul Beesleycb238022019-03-07 15:25:14 +000020 license
Paul Beesley22994f72019-01-23 15:39:39 +000021
Paul Beesleycb238022019-03-07 15:25:14 +000022Trusted Firmware-A (TF-A) provides a reference implementation of secure world
23software for `Armv7-A and Armv8-A`_, including a `Secure Monitor`_ executing
24at Exception Level 3 (EL3). It implements various Arm interface standards,
25such as:
26
27- The `Power State Coordination Interface (PSCI)`_
28- `Trusted Board Boot Requirements CLIENT (TBBR-CLIENT)`_
29- `SMC Calling Convention`_
30- `System Control and Management Interface (SCMI)`_
31- `Software Delegated Exception Interface (SDEI)`_
32
33Where possible, the code is designed for reuse or porting to other Armv7-A and
34Armv8-A model and hardware platforms.
35
36This release provides a suitable starting point for productization of secure
37world boot and runtime firmware, in either the AArch32 or AArch64 execution
38states.
39
40Users are encouraged to do their own security validation, including penetration
41testing, on any secure world code derived from TF-A.
42
Paul Beesleyd4414b62019-09-23 15:40:21 +000043In collaboration with interested parties, we will continue to enhance |TF-A|
44with reference implementations of Arm standards to benefit developers working
45with Armv7-A and Armv8-A TrustZone technology.
Paul Beesleycb238022019-03-07 15:25:14 +000046
Paul Beesley48f12a42019-10-16 13:35:47 +000047Getting Started
48---------------
Paul Beesleycb238022019-03-07 15:25:14 +000049
Paul Beesley48f12a42019-10-16 13:35:47 +000050The |TF-A| documentation contains guidance for obtaining and building the
51software for existing, supported platforms, as well as supporting information
52for porting the software to a new platform.
Paul Beesleycb238022019-03-07 15:25:14 +000053
Paul Beesley48f12a42019-10-16 13:35:47 +000054The **About** chapter gives a high-level overview of |TF-A| features as well as
55some information on the project and how it is organized.
Paul Beesleycb238022019-03-07 15:25:14 +000056
Paul Beesley48f12a42019-10-16 13:35:47 +000057Refer to the documents in the **Getting Started** chapter for information about
58the prerequisites and requirements for building |TF-A|.
Paul Beesleycb238022019-03-07 15:25:14 +000059
Paul Beesley48f12a42019-10-16 13:35:47 +000060The **Processes & Policies** chapter explains the project's release schedule
61and process, how security disclosures are handled, and the guidelines for
62contributing to the project (including the coding style).
Paul Beesleycb238022019-03-07 15:25:14 +000063
Paul Beesley48f12a42019-10-16 13:35:47 +000064The **Components** chapter holds documents that explain specific components
65that make up the |TF-A| software, the :ref:`Exception Handling Framework`, for
66example.
Paul Beesleycb238022019-03-07 15:25:14 +000067
Paul Beesley48f12a42019-10-16 13:35:47 +000068In the **System Design** chapter you will find documents that explain the
69design of portions of the software that involve more than one component, such
70as the :ref:`Trusted Board Boot` process.
Paul Beesleycb238022019-03-07 15:25:14 +000071
Paul Beesley48f12a42019-10-16 13:35:47 +000072**Platform Ports** provides a list of the supported hardware and software-model
73platforms that are supported upstream in |TF-A|. Most of these platforms also
74have additional documentation that has been provided by the maintainers of the
75platform.
Paul Beesleycb238022019-03-07 15:25:14 +000076
Paul Beesley48f12a42019-10-16 13:35:47 +000077The results of any performance evaluations are added to the
78**Performance & Testing** chapter.
Paul Beesleycb238022019-03-07 15:25:14 +000079
Paul Beesley48f12a42019-10-16 13:35:47 +000080**Security Advisories** holds a list of documents relating to |CVE| entries that
81have previously been raised against the software.
Paul Beesleycb238022019-03-07 15:25:14 +000082
Paul Beesleycb238022019-03-07 15:25:14 +000083--------------
84
85*Copyright (c) 2013-2019, Arm Limited and Contributors. All rights reserved.*
Paul Beesley22994f72019-01-23 15:39:39 +000086
Paul Beesleycb238022019-03-07 15:25:14 +000087.. _Armv7-A and Armv8-A: https://developer.arm.com/products/architecture/a-profile
88.. _Secure Monitor: http://www.arm.com/products/processors/technologies/trustzone/tee-smc.php
Paul Beesley48f12a42019-10-16 13:35:47 +000089.. _Power State Coordination Interface (PSCI): http://infocenter.arm.com/help/topic/com.arm.doc.den0022d/Power_State_Coordination_Interface_PDD_v1_1_DEN0022D.pdf
Paul Beesleycb238022019-03-07 15:25:14 +000090.. _Trusted Board Boot Requirements CLIENT (TBBR-CLIENT): https://developer.arm.com/docs/den0006/latest/trusted-board-boot-requirements-client-tbbr-client-armv8-a
Paul Beesley48f12a42019-10-16 13:35:47 +000091.. _System Control and Management Interface (SCMI): http://infocenter.arm.com/help/topic/com.arm.doc.den0056a/DEN0056A_System_Control_and_Management_Interface.pdf
92.. _Software Delegated Exception Interface (SDEI): http://infocenter.arm.com/help/topic/com.arm.doc.den0054a/ARM_DEN0054A_Software_Delegated_Exception_Interface.pdf
Paul Beesley48f12a42019-10-16 13:35:47 +000093.. _SMC Calling Convention: http://infocenter.arm.com/help/topic/com.arm.doc.den0028b/ARM_DEN0028B_SMC_Calling_Convention.pdf