blob: 8073e1901006d33d672df7dc73394ccb9b7a97c8 [file] [log] [blame]
Galanakis, Minos6ccf7ec2019-11-07 15:15:05 +00001##################
2Trusted Firmware M
3##################
4Trusted Firmware M provides a reference implementation of secure world software
5for ARMv8-M.
6
7.. Note::
8 The software implementation contained in this project is designed to be a
9 reference implementation of the Platform Security Architecture (PSA).
Galanakis, Minos6ccf7ec2019-11-07 15:15:05 +000010
11Terms ``TFM`` and ``TF-M`` are commonly used in documents and code and both
12refer to ``Trusted Firmware M.`` :doc:`Glossary </docs/glossary>` has the list
13of terms and abbreviations.
14
15#######
16License
17#######
18The software is provided under a BSD-3-Clause :doc:`License </docs/lic>`.
19Contributions to this project are accepted under the same license with developer
Galanakis, Minos0c1ad782019-11-08 11:28:40 +000020sign-off as described in the :doc:`Contributing Guidelines </docs/processes/contributing>`.
Galanakis, Minos6ccf7ec2019-11-07 15:15:05 +000021
22This project contains code from other projects as listed below. The code from
23external projects is limited to ``app`` and ``platform`` folders.
24The original license text is included in those source files.
25
26- The ``platform`` folder currently contains drivers imported from external
27 project and the files have Apache 2.0 license.
28- The ``app`` folder contains files imported from CMSIS_5 project and the files
29 have Apache 2.0 license.
30- The ``bl2`` folder contains files imported from MCUBoot project and the files
31 have Apache 2.0 license.
32
33.. Note::
34 Any code that has license other than BSD-3-Clause is kept in specific sub
35 folders named ``ext`` so that it can isolated if required.
36
37############
38This Release
39############
40This release includes:
41
42 - A Secure FW with support for PSA Level 1 and 2 isolation on Armv8-M.
43 - The Interfaces exposed by the Secure FW to NS side.
44 - A secure fw model with NS application example.
45 - Secure services running within this SPE:
46
Minos Galanakisfc6804e2020-03-10 11:03:34 +000047 - Secure Storage Service (PSA Protected Storage API - 1.0.0)
48 - Attestation (PSA Attestation API 1.0.0)
49 - Crypto Service (PSA API 1.0-beta-3)
Galanakis, Minos6ccf7ec2019-11-07 15:15:05 +000050 - TF-M Audit Log
51 - Platform Service
52 - Internal Trusted Storage (PSA API 1.0.0)
53
54 - PSA IPC support
55 - Support for Armv8-M mainline and baseline
56 - Testcases running baremetal and with RTX to test the functionality.
57 - BL2 bootloader for image authentication based on SHA256 and RSA-3072
58 digital signature.
59 - Build system based on cmake, supporting armclang and GNU Arm.
Tamas Banece03072019-11-26 12:17:50 +000060 - Support for integrated CryptoCell-312 cryptographic hardware accelerator
61 on Musca-B1 platform.
Minos Galanakisfc6804e2020-03-10 11:03:34 +000062 - Meets requirements for Updatable RoT for PSA Level 2 Certification
Galanakis, Minos6ccf7ec2019-11-07 15:15:05 +000063
64*********
65Platforms
66*********
67Current release has been tested on:
68
69 - Cortex M33 based SSE-200 system:
70
71 - `FPGA image loaded on MPS2 board.
72 <https://developer.arm.com/products/system-design/development-boards/cortex-m-prototyping-systems/mps2>`__
73 - `Fast model FVP_MPS2_AEMv8M.
74 <https://developer.arm.com/products/system-design/fixed-virtual-platforms>`__
75 - `Musca-A test chip board.
76 <https://developer.arm.com/products/system-design/development-boards/iot-test-chips-and-boards/musca-a-test-chip-board>`__
77 - `Musca-B1 test chip board.
78 <https://developer.arm.com/products/system-design/development-boards/iot-test-chips-and-boards/musca-b-test-chip-board>`__
Tamas Banece03072019-11-26 12:17:50 +000079 - `Musca-S1 test chip board.`
Galanakis, Minos6ccf7ec2019-11-07 15:15:05 +000080 - `FPGA image loaded on MPS3 board.
81 <https://developer.arm.com/tools-and-software/development-boards/fpga-prototyping-boards/mps3>`__
82
83 - Cortex M23 based IoT Kit system:
84
85 - `FPGA image loaded on MPS2 board.
86 <https://developer.arm.com/products/system-design/development-boards/cortex-m-prototyping-systems/mps2>`__
87
88###############
89Getting Started
90###############
91
92************
93Prerequisite
94************
95Trusted Firmware M provides a reference implementation of PSA specifications.
96It is assumed that the reader is familiar with PSA concepts and terms. PSA
97specifications are currently not available in the public domain.
98
99The current TF-M implementation specifically targets TrustZone for ARMv8-M so a
100good understanding of the v8-M architecture is also necessary. A good place to
101get started with ARMv8-M is
102`developer.arm.com <https://developer.arm.com/technologies/trustzone>`__.
103
104**********************
105Really getting started
106**********************
107Trusted Firmware M source code is available on `git.trustedfirmware.org
108<https://git.trustedfirmware.org/trusted-firmware-m.git/>`__
109
110To build & run TF-M:
111
112 - Follow the :doc:`SW requirements guide </docs/user_guides/tfm_sw_requirement>`
113 to set up your environment.
114 - Follow the
115 :doc:`Build instructions </docs/user_guides/tfm_build_instruction>` to compile
116 and build the TF-M source.
117 - Follow the :doc:`User guide </docs/user_guides/tfm_user_guide>` for information
118 on running the example.
119
120To port TF-M to a another system or OS, follow the
121:doc:`OS Integration Guide </docs/user_guides/tfm_integration_guide>`
122
123Please also see the :doc:`glossary </docs/glossary>` of terms used in the project.
124
Galanakis, Minos0c1ad782019-11-08 11:28:40 +0000125:doc:`Contributing Guidelines </docs/processes/contributing>` contains guidance on how to
Galanakis, Minos6ccf7ec2019-11-07 15:15:05 +0000126contribute to this project.
127
128Further documents can be found in the ``docs`` folder.
129
130
131####################
132Feedback and support
133####################
Minos Galanakisfc6804e2020-03-10 11:03:34 +0000134For this release, feedback is requested via email to
135`tf-m@lists.trustedfirmware.org <tf-m@lists.trustedfirmware.org>`__.
Galanakis, Minos6ccf7ec2019-11-07 15:15:05 +0000136
137###############
138Version history
139###############
140+-------------+--------------+--------------------+
141| Version | Date | Description |
142+=============+==============+====================+
143| v1.0-beta | 2019-02-15 | 1.0-beta release |
144+-------------+--------------+--------------------+
145| v1.0-RC1 | 2019-05-31 | 1.0-RC1 release |
146+-------------+--------------+--------------------+
147| v1.0-RC2 | 2019-10-09 | 1.0-RC2 release |
148+-------------+--------------+--------------------+
Tamas Banece03072019-11-26 12:17:50 +0000149| v1.0-RC3 | 2019-11-29 | 1.0-RC3 release |
150+-------------+--------------+--------------------+
Galanakis, Minos6ccf7ec2019-11-07 15:15:05 +0000151
152--------------
153
Minos Galanakisfc6804e2020-03-10 11:03:34 +0000154*Copyright (c) 2017-2020, Arm Limited. All rights reserved.*