blob: d754694c26b34d249eccec46041ab0e9e02d55bc [file] [log] [blame]
Galanakis, Minos86a99b92019-09-30 15:38:26 +01001#############################
2Trusted Firmware M - v1.0-RC1
3#############################
Gyorgy Szingdb9783c2019-04-17 21:08:48 +02004Trusted 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
Galanakis, Minos86a99b92019-09-30 15:38:26 +01009 reference implementation of the Platform Security Architecture (PSA).
Gyorgy Szingdb9783c2019-04-17 21:08:48 +020010 It currently does not implement all the features of that architecture,
11 however we expect the code to evolve along with the specifications.
12
13Terms ``TFM`` and ``TF-M`` are commonly used in documents and code and both
Galanakis, Minos09072612019-07-04 16:23:10 +010014refer to ``Trusted Firmware M.`` :doc:`Glossary </docs/glossary>` has the list
Gyorgy Szingdb9783c2019-04-17 21:08:48 +020015of terms and abbreviations.
16
17#######
18License
19#######
Galanakis, Minos35fc4472019-10-01 15:19:52 +010020The software is provided under a BSD-3-Clause :doc:`License <docs/lic>`.
Gyorgy Szingdb9783c2019-04-17 21:08:48 +020021Contributions to this project are accepted under the same license with developer
Galanakis, Minos09072612019-07-04 16:23:10 +010022sign-off as described in the :doc:`Contributing Guidelines </docs/contributing>`.
Gyorgy Szingdb9783c2019-04-17 21:08:48 +020023
24This project contains code from other projects as listed below. The code from
25external projects is limited to ``app`` and ``platform`` folders.
26The original license text is included in those source files.
27
28- The ``platform`` folder currently contains drivers imported from external
29 project and the files have Apache 2.0 license.
30- The ``app`` folder contains files imported from CMSIS_5 project and the files
31 have Apache 2.0 license.
32- The ``bl2`` folder contains files imported from MCUBoot project and the files
33 have Apache 2.0 license.
34
35.. Note::
36 Any code that has license other than BSD-3-Clause is kept in specific sub
37 folders named ``ext`` so that it can isolated if required.
38
39############
40This Release
41############
42This release includes:
43
Galanakis, Minos86a99b92019-09-30 15:38:26 +010044 - A Secure FW with support for PSA Level 1 and 2 isolation on Armv8-M.
Gyorgy Szingdb9783c2019-04-17 21:08:48 +020045 - The Interfaces exposed by the Secure FW to NS side.
Galanakis, Minos86a99b92019-09-30 15:38:26 +010046 - A secure fw model with NS application example.
Gyorgy Szingdb9783c2019-04-17 21:08:48 +020047 - Secure services running within this SPE:
Galanakis, Minos86a99b92019-09-30 15:38:26 +010048
49 - Secure Storage Service (PSA Protected Storage API - 1.0-beta-2)
50 - Attestation (PSA API 1.0-beta-0)
51 - Crypto Service (PSA API 1.0-beta-1)
Gyorgy Szingdb9783c2019-04-17 21:08:48 +020052 - TF-M Audit Log
53 - Platform Service
Galanakis, Minos86a99b92019-09-30 15:38:26 +010054
55 - PSA IPC support
56 - Support for Armv8-M mainline and baseline
Gyorgy Szingdb9783c2019-04-17 21:08:48 +020057 - Testcases running baremetal and with RTX to test the functionality.
Galanakis, Minos86a99b92019-09-30 15:38:26 +010058 - BL2 bootloader for image authentication based on SHA256 and RSA-3072
Gyorgy Szingdb9783c2019-04-17 21:08:48 +020059 digital signature.
60 - Build system based on cmake, supporting armclang and GNU Arm.
61
Gyorgy Szingdb9783c2019-04-17 21:08:48 +020062*********
63Platforms
64*********
65Current release has been tested on:
66
67 - Cortex M33 based SSE-200 system:
68
69 - `FPGA image loaded on MPS2 board.
70 <https://developer.arm.com/products/system-design/development-boards/cortex-m-prototyping-systems/mps2>`__
71 - `Fast model FVP_MPS2_AEMv8M.
72 <https://developer.arm.com/products/system-design/fixed-virtual-platforms>`__
Jamie Foxb8a92702019-06-05 17:19:31 +010073 - `Musca-A test chip board.
74 <https://developer.arm.com/products/system-design/development-boards/iot-test-chips-and-boards/musca-a-test-chip-board>`__
Gyorgy Szingdb9783c2019-04-17 21:08:48 +020075 - `Musca-B1 test chip board.
76 <https://developer.arm.com/products/system-design/development-boards/iot-test-chips-and-boards/musca-b-test-chip-board>`__
Kevin Peng0a142112018-09-21 10:42:22 +080077 - `FPGA image loaded on MPS3 board.
78 <https://developer.arm.com/tools-and-software/development-boards/fpga-prototyping-boards/mps3>`__
Gyorgy Szingdb9783c2019-04-17 21:08:48 +020079
80 - Cortex M23 based IoT Kit system:
81
82 - `FPGA image loaded on MPS2 board.
83 <https://developer.arm.com/products/system-design/development-boards/cortex-m-prototyping-systems/mps2>`__
84
85###############
86Getting Started
87###############
88
89************
90Prerequisite
91************
92Trusted Firmware M provides a reference implementation of PSA specifications.
93It is assumed that the reader is familiar with PSA concepts and terms. PSA
94specifications are currently not available in the public domain.
95
96The current TF-M implementation specifically targets TrustZone for ARMv8-M so a
97good understanding of the v8-M architecture is also necessary. A good place to
98get started with ARMv8-M is
99`developer.arm.com <https://developer.arm.com/technologies/trustzone>`__.
100
101**********************
102Really getting started
103**********************
104Trusted Firmware M source code is available on `git.trustedfirmware.org
105<https://git.trustedfirmware.org/trusted-firmware-m.git/>`__
106
107To build & run TF-M:
108
109 - Follow the :doc:`SW requirements guide </docs/user_guides/tfm_sw_requirement>`
110 to set up your environment.
111 - Follow the
112 :doc:`Build instructions </docs/user_guides/tfm_build_instruction>` to compile
113 and build the TF-M source.
114 - Follow the :doc:`User guide </docs/user_guides/tfm_user_guide>` for information
115 on running the example.
116
117To port TF-M to a another system or OS, follow the
118:doc:`OS Integration Guide </docs/user_guides/tfm_integration_guide>`
119
Galanakis, Minos09072612019-07-04 16:23:10 +0100120Please also see the :doc:`glossary </docs/glossary>` of terms used in the project.
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200121
Galanakis, Minos09072612019-07-04 16:23:10 +0100122:doc:`Contributing Guidelines </docs/contributing>` contains guidance on how to
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200123contribute to this project.
124
125Further documents can be found in the ``docs`` folder.
126
127
128####################
129Feedback and support
130####################
131For this early access release, feedback is requested via email to
132`support-trustedfirmware-m@arm.com <support-trustedfirmware-m@arm.com>`__.
133
134###############
135Version history
136###############
137+-------------+--------------+--------------------+
138| Version | Date | Description |
139+=============+==============+====================+
140| v1.0-beta | 2019-02-15 | 1.0-beta release |
141+-------------+--------------+--------------------+
Galanakis, Minos86a99b92019-09-30 15:38:26 +0100142| v1.0-RC1 | 2019-05-31 | 1.0-RC1 release |
143+-------------+--------------+--------------------+
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200144
145--------------
146
147*Copyright (c) 2017-2019, Arm Limited. All rights reserved.*