blob: 9d71f8cc00f73e95339ebd193ae9099b1a276240 [file] [log] [blame]
Sandrine Bailleux3cd87d72018-10-09 11:12:55 +02001Trusted Firmware-A Tests - version 2.0
2======================================
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
44- The libc source code is derived from `FreeBSD`_ code, which uses various BSD
45 licenses, including BSD-3-Clause and BSD-2-Clause.
46
47- The `LLVM compiler-rt`_ source code is disjunctively dual licensed
48 (NCSA OR MIT). It is used by this project under the terms of the NCSA
49 license (also known as the University of Illinois/NCSA Open Source License),
50 which is a permissive license compatible with BSD-3-Clause. Any
51 contributions to this code must be made under the terms of both licenses.
52
53This release
54------------
55
56This is the first public release of the TF-A Tests code. It provides a starting
57point for exercising some of the TF-A features on the Arm FVP and Juno
58platforms, porting the tests to new platforms, enhancing existing tests or
59implementing new ones.
60
61Please note that this code is not mature yet and suffers from some stability
62issues. Refer to the known issues in the `change log`_ for more details.
63
64
65Platforms
66`````````
67
68Juno Arm Development Platform
69'''''''''''''''''''''''''''''
70
71The AArch64 build of this release has been tested on variants r0, r1 and r2 of
72the `Juno Arm Development Platform`_. The AArch32 build has only been tested on
73variant r0.
74
75Arm Fixed Virtual Platforms
76'''''''''''''''''''''''''''
77
78The AArch64 build has been tested on the following Arm Fixed Virtual Platforms
79(`FVP`_):
80
81- ``FVP_Base_AEMv8A-AEMv8A``
82- ``FVP_Base_Cortex-A35x4``
83- ``FVP_Base_Cortex-A57x4-A53x4``
84- ``FVP_Base_RevC-2xAEMv8A``
85- ``Foundation_Platform``
86
87The AArch32 build has been tested on the following `FVP`_\ s:
88
89- ``FVP_Base_Cortex-A32x4``
90- ``FVP_Base_RevC-2xAEMv8A``
91
92NOTE: Unless otherwise stated, the model version is version 11.4, build 37.
93
94Still to come
95`````````````
96
97- More tests.
98- Support for new platforms.
99- Design improvements.
100- Stability improvements.
101- Enhance test framework to make it easier to implement tests.
102- Fixing known issues (see the `change log`_ for more details).
103
104
105Getting started
106---------------
107
108Get the TF-A Tests source code from `trustedfirmware.org`_.
109
110See the `User Guide`_ for instructions on how to install, build and use the TF-A
111Tests.
112
113See the `Design Guide`_ for information on how the TF-A Tests internally work.
114
115See the `Porting Guide`_ for information about how to use this software on
116another Armv8-A platform.
117
118See the `Contributing Guidelines`_ for information on how to contribute to this
119project.
120
121
122IRC channel
123-----------
124
125Development discussion takes place on the same channel as for TF-A, i.e. the
126``#trusted-firmware-a`` channel on the Freenode IRC network. This is not an
127official support channel. If you have an issue to raise, please use the issues
128tracker <TODO: insert link>.
129
130--------------
131
132*Copyright (c) 2018, Arm Limited. All rights reserved.*
133
134.. _Contributing Guidelines: contributing.rst
135.. _license: license.rst
136.. _change log: docs/change-log.rst
137.. _Design Guide: docs/design.rst
138.. _Porting Guide: docs/porting-guide.rst
139.. _User Guide: docs/user-guide.rst
140
141.. _FVP: https://developer.arm.com/products/system-design/fixed-virtual-platforms
142.. _Juno Arm Development Platform: https://developer.arm.com/products/system-design/development-boards/juno-development-board
143
144.. _FreeBSD: http://www.freebsd.org
145.. _LLVM compiler-rt: https://compiler-rt.llvm.org/
146
147.. _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_
156.. _TF-A: https://www.github.com/ARM-software/arm-trusted-firmware
157.. _Test Secure Payload (TSP): TSP_
158.. _TSP: https://github.com/ARM-software/arm-trusted-firmware/tree/master/bl32/tsp
159.. _Performance Measurement Framework (PMF): PMF_
160.. _PMF: https://github.com/ARM-software/arm-trusted-firmware/blob/master/docs/firmware-design.rst#performance-measurement-framework
161.. _Firmware update: https://github.com/ARM-software/arm-trusted-firmware/blob/master/docs/firmware-update.rst
162.. _EL3 payload: https://github.com/ARM-software/arm-trusted-firmware/blob/master/docs/user-guide.rst#el3-payloads-alternative-boot-flow
163.. _Secure partition: https://github.com/ARM-software/arm-trusted-firmware/blob/master/docs/secure-partition-manager-design.rst