blob: cb2d56405037d9081e1297fdabceae74e6ac5d98 [file] [log] [blame]
Madhukar Pappireddy6ec644e2020-04-08 15:44:38 -05001Trusted Firmware-A Tests - version 2.3
Sandrine Bailleux3cd87d72018-10-09 11:12:55 +02002======================================
3
4The Trusted Firmware-A Tests (TF-A-Tests) is a suite of baremetal tests to
5exercise the `Trusted Firmware-A (TF-A)`_ features from the Normal World. It
6enables strong TF-A functional testing without dependency on a Rich OS. It
7mainly interacts with TF-A through its SMC interface.
8
9It provides a basis for TF-A developers to validate their own platform ports and
10add their own test cases.
11
12The following TF-A features are currently tested to some extent (this list is
13not exhaustive):
14
15- `SMC Calling Convention`_
16- `Power State Coordination Interface (PSCI)`_
17- `Software Delegated Exception Interface (SDEI)`_
18- `Performance Measurement Framework (PMF)`_
19- Communication and interaction with the `Test Secure Payload (TSP)`_
20- `Firmware update`_ (or recovery mode)
21- `EL3 payload`_ boot flow
22- `Secure partition`_ support
23
24These tests are not a compliance test suite for the Arm interface standards used
25in TF-A (such as PSCI).
26
27They do not cover 100% of the TF-A code. The fact that all tests pass does not
28mean that TF-A is free of bugs.
29
30They are not reference code. They should not be considered as the official way
31to test hardware/firmware features. Instead, they are provided as example code
32to experiment with and improve on.
33
34License
35-------
36
37The software is provided under a BSD-3-Clause `license`_. Contributions to this
38project are accepted under the same license with developer sign-off as
39described in the `Contributing Guidelines`_.
40
41This project contains code from other projects as listed below. The original
42license text is included in those source files.
43
Ambroise Vincenta2ede622019-02-11 14:34:26 +000044- The libc source code is derived from `FreeBSD`_ and `SCC`_. FreeBSD uses
45 various BSD licenses, including BSD-3-Clause and BSD-2-Clause. The SCC code
46 is used under the BSD-3-Clause license with the author's permission.
Sandrine Bailleux3cd87d72018-10-09 11:12:55 +020047
48- The `LLVM compiler-rt`_ source code is disjunctively dual licensed
49 (NCSA OR MIT). It is used by this project under the terms of the NCSA
50 license (also known as the University of Illinois/NCSA Open Source License),
51 which is a permissive license compatible with BSD-3-Clause. Any
52 contributions to this code must be made under the terms of both licenses.
53
54This release
55------------
56
Madhukar Pappireddy954b2032019-10-15 11:13:41 -050057This release makes a wide range of tests available for validating the functionality
58of TF-A as well as several improvements to test framework and test suite.
Sandrine Bailleux3cd87d72018-10-09 11:12:55 +020059
Madhukar Pappireddy954b2032019-10-15 11:13:41 -050060Please refer to the `change log`_ for more details of the features, known issues and
61limitations in the current release.
Sandrine Bailleux3cd87d72018-10-09 11:12:55 +020062
63
64Platforms
65`````````
66
67Juno Arm Development Platform
68'''''''''''''''''''''''''''''
69
70The AArch64 build of this release has been tested on variants r0, r1 and r2 of
71the `Juno Arm Development Platform`_. The AArch32 build has only been tested on
72variant r0.
73
Sandrine Bailleux1b97b112018-12-11 10:18:06 +010074Armv8 Architecture Fixed Virtual Platforms
75''''''''''''''''''''''''''''''''''''''''''
Sandrine Bailleux3cd87d72018-10-09 11:12:55 +020076
Sandrine Bailleux1b97b112018-12-11 10:18:06 +010077The AArch64 build has been tested on the following Armv8 Architecture Fixed
78Virtual Platforms (`FVP`_):
Sandrine Bailleux3cd87d72018-10-09 11:12:55 +020079
80- ``FVP_Base_AEMv8A-AEMv8A``
81- ``FVP_Base_Cortex-A35x4``
82- ``FVP_Base_Cortex-A57x4-A53x4``
83- ``FVP_Base_RevC-2xAEMv8A``
84- ``Foundation_Platform``
85
86The AArch32 build has been tested on the following `FVP`_\ s:
87
88- ``FVP_Base_Cortex-A32x4``
89- ``FVP_Base_RevC-2xAEMv8A``
90
Madhukar Pappireddy6ec644e2020-04-08 15:44:38 -050091NOTE: Unless otherwise stated, the model version is version 11.9, build 41.
Sandrine Bailleux3cd87d72018-10-09 11:12:55 +020092
Chandni Cherukuric73c2912018-12-05 14:00:56 +053093System Guidance for Infrastructure Fixed Virtual Platforms
94''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
95
Chandni Cherukuri6b7de452019-01-08 11:47:17 +053096The AArch64 build has been tested on the following Fixed Virtual Platforms
Chandni Cherukuric73c2912018-12-05 14:00:56 +053097(`FVP`_):
Sandrine Bailleux104d1462019-03-21 09:32:28 +010098
Chandni Cherukuric73c2912018-12-05 14:00:56 +053099- ``FVP_CSS_SGI-575``
Chandni Cherukuri6b7de452019-01-08 11:47:17 +0530100- ``FVP_RD_N1Edge``
Chandni Cherukuric73c2912018-12-05 14:00:56 +0530101
Chandni Cherukuri6b7de452019-01-08 11:47:17 +0530102NOTE:
Sandrine Bailleux104d1462019-03-21 09:32:28 +0100103
Madhukar Pappireddy954b2032019-10-15 11:13:41 -0500104- For ``FVP_CSS_SGI-575`` and ``FVP_RD_N1Edge``, internal version of the
105 models were used.
Chandni Cherukuric73c2912018-12-05 14:00:56 +0530106
Sandrine Bailleux3cd87d72018-10-09 11:12:55 +0200107Still to come
108`````````````
109
110- More tests.
111- Support for new platforms.
112- Design improvements.
113- Stability improvements.
114- Enhance test framework to make it easier to implement tests.
115- Fixing known issues (see the `change log`_ for more details).
116
117
118Getting started
119---------------
120
121Get the TF-A Tests source code from `trustedfirmware.org`_.
122
123See the `User Guide`_ for instructions on how to install, build and use the TF-A
124Tests.
125
126See the `Design Guide`_ for information on how the TF-A Tests internally work.
127
128See the `Porting Guide`_ for information about how to use this software on
129another Armv8-A platform.
130
131See the `Contributing Guidelines`_ for information on how to contribute to this
132project.
133
Sandrine Bailleux3cd87d72018-10-09 11:12:55 +0200134--------------
135
Madhukar Pappireddy6ec644e2020-04-08 15:44:38 -0500136*Copyright (c) 2018-2020, Arm Limited. All rights reserved.*
Sandrine Bailleux3cd87d72018-10-09 11:12:55 +0200137
138.. _Contributing Guidelines: contributing.rst
139.. _license: license.rst
140.. _change log: docs/change-log.rst
141.. _Design Guide: docs/design.rst
142.. _Porting Guide: docs/porting-guide.rst
143.. _User Guide: docs/user-guide.rst
Sandrine Bailleux3cd87d72018-10-09 11:12:55 +0200144.. _FVP: https://developer.arm.com/products/system-design/fixed-virtual-platforms
145.. _Juno Arm Development Platform: https://developer.arm.com/products/system-design/development-boards/juno-development-board
146
Sandrine Bailleux3cd87d72018-10-09 11:12:55 +0200147.. _Power State Coordination Interface (PSCI): PSCI_
148.. _PSCI: http://infocenter.arm.com/help/topic/com.arm.doc.den0022d/Power_State_Coordination_Interface_PDD_v1_1_DEN0022D.pdf
149.. _Software Delegated Exception Interface (SDEI): SDEI_
150.. _SDEI: http://infocenter.arm.com/help/topic/com.arm.doc.den0054a/ARM_DEN0054A_Software_Delegated_Exception_Interface.pdf
151.. _SMC Calling Convention: http://infocenter.arm.com/help/topic/com.arm.doc.den0028b/ARM_DEN0028B_SMC_Calling_Convention.pdf
152
Sandrine Bailleux2d0136e2018-11-05 14:21:27 +0100153.. _trustedfirmware.org: https://git.trustedfirmware.org/TF-A/tf-a-tests.git
Sandrine Bailleux3cd87d72018-10-09 11:12:55 +0200154
155.. _Trusted Firmware-A (TF-A): TF-A_
Sandrine Bailleuxb308d012019-04-10 09:30:10 +0200156.. _TF-A: https://git.trustedfirmware.org/TF-A/trusted-firmware-a.git/about
Sandrine Bailleux3cd87d72018-10-09 11:12:55 +0200157.. _Test Secure Payload (TSP): TSP_
Sandrine Bailleuxb308d012019-04-10 09:30:10 +0200158.. _TSP: https://git.trustedfirmware.org/TF-A/trusted-firmware-a.git/tree/bl32/tsp
Sandrine Bailleux3cd87d72018-10-09 11:12:55 +0200159.. _Performance Measurement Framework (PMF): PMF_
Sandrine Bailleuxb308d012019-04-10 09:30:10 +0200160.. _PMF: https://git.trustedfirmware.org/TF-A/trusted-firmware-a.git/about/docs/firmware-design.rst#performance-measurement-framework
161.. _Firmware update: https://git.trustedfirmware.org/TF-A/trusted-firmware-a.git/about/docs/firmware-update.rst
162.. _EL3 payload: https://git.trustedfirmware.org/TF-A/trusted-firmware-a.git/about/docs/user-guide.rst#el3-payloads-alternative-boot-flow
163.. _Secure partition: https://git.trustedfirmware.org/TF-A/trusted-firmware-a.git/about/docs/secure-partition-manager-design.rst
Sandrine Bailleux758e3d62019-03-21 09:35:01 +0100164
Sandrine Bailleux3aa31092019-06-03 10:56:28 +0200165.. _issue tracker: https://developer.trustedfirmware.org/project/board/9/
166.. _mailing list: https://lists.trustedfirmware.org/mailman/listinfo/tf-a-tests