blob: 78368f99932fe230258fe64865954a4cf6711f9e [file] [log] [blame]
Galanakis, Minos86a99b92019-09-30 15:38:26 +01001#############################
Tamas Ban4117e032019-10-09 08:44:49 +01002Trusted Firmware M - v1.0-RC2
Galanakis, Minos86a99b92019-09-30 15:38:26 +01003#############################
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
Tamas Ban4117e032019-10-09 08:44:49 +010054 - Internal Trusted Storage (PSA API 1.0.0)
Galanakis, Minos86a99b92019-09-30 15:38:26 +010055
56 - PSA IPC support
57 - Support for Armv8-M mainline and baseline
Gyorgy Szingdb9783c2019-04-17 21:08:48 +020058 - Testcases running baremetal and with RTX to test the functionality.
Galanakis, Minos86a99b92019-09-30 15:38:26 +010059 - BL2 bootloader for image authentication based on SHA256 and RSA-3072
Gyorgy Szingdb9783c2019-04-17 21:08:48 +020060 digital signature.
61 - Build system based on cmake, supporting armclang and GNU Arm.
62
Gyorgy Szingdb9783c2019-04-17 21:08:48 +020063*********
64Platforms
65*********
66Current release has been tested on:
67
68 - Cortex M33 based SSE-200 system:
69
70 - `FPGA image loaded on MPS2 board.
71 <https://developer.arm.com/products/system-design/development-boards/cortex-m-prototyping-systems/mps2>`__
72 - `Fast model FVP_MPS2_AEMv8M.
73 <https://developer.arm.com/products/system-design/fixed-virtual-platforms>`__
Jamie Foxb8a92702019-06-05 17:19:31 +010074 - `Musca-A test chip board.
75 <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 +020076 - `Musca-B1 test chip board.
77 <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 +080078 - `FPGA image loaded on MPS3 board.
79 <https://developer.arm.com/tools-and-software/development-boards/fpga-prototyping-boards/mps3>`__
Gyorgy Szingdb9783c2019-04-17 21:08:48 +020080
81 - Cortex M23 based IoT Kit system:
82
83 - `FPGA image loaded on MPS2 board.
84 <https://developer.arm.com/products/system-design/development-boards/cortex-m-prototyping-systems/mps2>`__
85
86###############
87Getting Started
88###############
89
90************
91Prerequisite
92************
93Trusted Firmware M provides a reference implementation of PSA specifications.
94It is assumed that the reader is familiar with PSA concepts and terms. PSA
95specifications are currently not available in the public domain.
96
97The current TF-M implementation specifically targets TrustZone for ARMv8-M so a
98good understanding of the v8-M architecture is also necessary. A good place to
99get started with ARMv8-M is
100`developer.arm.com <https://developer.arm.com/technologies/trustzone>`__.
101
102**********************
103Really getting started
104**********************
105Trusted Firmware M source code is available on `git.trustedfirmware.org
106<https://git.trustedfirmware.org/trusted-firmware-m.git/>`__
107
108To build & run TF-M:
109
110 - Follow the :doc:`SW requirements guide </docs/user_guides/tfm_sw_requirement>`
111 to set up your environment.
112 - Follow the
113 :doc:`Build instructions </docs/user_guides/tfm_build_instruction>` to compile
114 and build the TF-M source.
115 - Follow the :doc:`User guide </docs/user_guides/tfm_user_guide>` for information
116 on running the example.
117
118To port TF-M to a another system or OS, follow the
119:doc:`OS Integration Guide </docs/user_guides/tfm_integration_guide>`
120
Galanakis, Minos09072612019-07-04 16:23:10 +0100121Please also see the :doc:`glossary </docs/glossary>` of terms used in the project.
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200122
Galanakis, Minos09072612019-07-04 16:23:10 +0100123:doc:`Contributing Guidelines </docs/contributing>` contains guidance on how to
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200124contribute to this project.
125
126Further documents can be found in the ``docs`` folder.
127
128
129####################
130Feedback and support
131####################
132For this early access release, feedback is requested via email to
133`support-trustedfirmware-m@arm.com <support-trustedfirmware-m@arm.com>`__.
134
135###############
136Version history
137###############
138+-------------+--------------+--------------------+
139| Version | Date | Description |
140+=============+==============+====================+
141| v1.0-beta | 2019-02-15 | 1.0-beta release |
142+-------------+--------------+--------------------+
Galanakis, Minos86a99b92019-09-30 15:38:26 +0100143| v1.0-RC1 | 2019-05-31 | 1.0-RC1 release |
144+-------------+--------------+--------------------+
Tamas Ban4117e032019-10-09 08:44:49 +0100145| v1.0-RC2 | 2019-10-09 | 1.0-RC2 release |
146+-------------+--------------+--------------------+
Gyorgy Szingdb9783c2019-04-17 21:08:48 +0200147
148--------------
149
150*Copyright (c) 2017-2019, Arm Limited. All rights reserved.*