Galanakis, Minos | 86a99b9 | 2019-09-30 15:38:26 +0100 | [diff] [blame] | 1 | ############################# |
Tamas Ban | 4117e03 | 2019-10-09 08:44:49 +0100 | [diff] [blame] | 2 | Trusted Firmware M - v1.0-RC2 |
Galanakis, Minos | 86a99b9 | 2019-09-30 15:38:26 +0100 | [diff] [blame] | 3 | ############################# |
Gyorgy Szing | db9783c | 2019-04-17 21:08:48 +0200 | [diff] [blame] | 4 | Trusted Firmware M provides a reference implementation of secure world software |
| 5 | for ARMv8-M. |
| 6 | |
| 7 | .. Note:: |
| 8 | The software implementation contained in this project is designed to be a |
Galanakis, Minos | 86a99b9 | 2019-09-30 15:38:26 +0100 | [diff] [blame] | 9 | reference implementation of the Platform Security Architecture (PSA). |
Gyorgy Szing | db9783c | 2019-04-17 21:08:48 +0200 | [diff] [blame] | 10 | It currently does not implement all the features of that architecture, |
| 11 | however we expect the code to evolve along with the specifications. |
| 12 | |
| 13 | Terms ``TFM`` and ``TF-M`` are commonly used in documents and code and both |
Galanakis, Minos | 0907261 | 2019-07-04 16:23:10 +0100 | [diff] [blame] | 14 | refer to ``Trusted Firmware M.`` :doc:`Glossary </docs/glossary>` has the list |
Gyorgy Szing | db9783c | 2019-04-17 21:08:48 +0200 | [diff] [blame] | 15 | of terms and abbreviations. |
| 16 | |
| 17 | ####### |
| 18 | License |
| 19 | ####### |
Galanakis, Minos | 35fc447 | 2019-10-01 15:19:52 +0100 | [diff] [blame] | 20 | The software is provided under a BSD-3-Clause :doc:`License <docs/lic>`. |
Gyorgy Szing | db9783c | 2019-04-17 21:08:48 +0200 | [diff] [blame] | 21 | Contributions to this project are accepted under the same license with developer |
Galanakis, Minos | 0907261 | 2019-07-04 16:23:10 +0100 | [diff] [blame] | 22 | sign-off as described in the :doc:`Contributing Guidelines </docs/contributing>`. |
Gyorgy Szing | db9783c | 2019-04-17 21:08:48 +0200 | [diff] [blame] | 23 | |
| 24 | This project contains code from other projects as listed below. The code from |
| 25 | external projects is limited to ``app`` and ``platform`` folders. |
| 26 | The 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 | ############ |
| 40 | This Release |
| 41 | ############ |
| 42 | This release includes: |
| 43 | |
Galanakis, Minos | 86a99b9 | 2019-09-30 15:38:26 +0100 | [diff] [blame] | 44 | - A Secure FW with support for PSA Level 1 and 2 isolation on Armv8-M. |
Gyorgy Szing | db9783c | 2019-04-17 21:08:48 +0200 | [diff] [blame] | 45 | - The Interfaces exposed by the Secure FW to NS side. |
Galanakis, Minos | 86a99b9 | 2019-09-30 15:38:26 +0100 | [diff] [blame] | 46 | - A secure fw model with NS application example. |
Gyorgy Szing | db9783c | 2019-04-17 21:08:48 +0200 | [diff] [blame] | 47 | - Secure services running within this SPE: |
Galanakis, Minos | 86a99b9 | 2019-09-30 15:38:26 +0100 | [diff] [blame] | 48 | |
| 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 Szing | db9783c | 2019-04-17 21:08:48 +0200 | [diff] [blame] | 52 | - TF-M Audit Log |
| 53 | - Platform Service |
Tamas Ban | 4117e03 | 2019-10-09 08:44:49 +0100 | [diff] [blame] | 54 | - Internal Trusted Storage (PSA API 1.0.0) |
Galanakis, Minos | 86a99b9 | 2019-09-30 15:38:26 +0100 | [diff] [blame] | 55 | |
| 56 | - PSA IPC support |
| 57 | - Support for Armv8-M mainline and baseline |
Gyorgy Szing | db9783c | 2019-04-17 21:08:48 +0200 | [diff] [blame] | 58 | - Testcases running baremetal and with RTX to test the functionality. |
Galanakis, Minos | 86a99b9 | 2019-09-30 15:38:26 +0100 | [diff] [blame] | 59 | - BL2 bootloader for image authentication based on SHA256 and RSA-3072 |
Gyorgy Szing | db9783c | 2019-04-17 21:08:48 +0200 | [diff] [blame] | 60 | digital signature. |
| 61 | - Build system based on cmake, supporting armclang and GNU Arm. |
| 62 | |
Gyorgy Szing | db9783c | 2019-04-17 21:08:48 +0200 | [diff] [blame] | 63 | ********* |
| 64 | Platforms |
| 65 | ********* |
| 66 | Current 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 Fox | b8a9270 | 2019-06-05 17:19:31 +0100 | [diff] [blame] | 74 | - `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 Szing | db9783c | 2019-04-17 21:08:48 +0200 | [diff] [blame] | 76 | - `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 Peng | 0a14211 | 2018-09-21 10:42:22 +0800 | [diff] [blame] | 78 | - `FPGA image loaded on MPS3 board. |
| 79 | <https://developer.arm.com/tools-and-software/development-boards/fpga-prototyping-boards/mps3>`__ |
Gyorgy Szing | db9783c | 2019-04-17 21:08:48 +0200 | [diff] [blame] | 80 | |
| 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 | ############### |
| 87 | Getting Started |
| 88 | ############### |
| 89 | |
| 90 | ************ |
| 91 | Prerequisite |
| 92 | ************ |
| 93 | Trusted Firmware M provides a reference implementation of PSA specifications. |
| 94 | It is assumed that the reader is familiar with PSA concepts and terms. PSA |
| 95 | specifications are currently not available in the public domain. |
| 96 | |
| 97 | The current TF-M implementation specifically targets TrustZone for ARMv8-M so a |
| 98 | good understanding of the v8-M architecture is also necessary. A good place to |
| 99 | get started with ARMv8-M is |
| 100 | `developer.arm.com <https://developer.arm.com/technologies/trustzone>`__. |
| 101 | |
| 102 | ********************** |
| 103 | Really getting started |
| 104 | ********************** |
| 105 | Trusted Firmware M source code is available on `git.trustedfirmware.org |
| 106 | <https://git.trustedfirmware.org/trusted-firmware-m.git/>`__ |
| 107 | |
| 108 | To 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 | |
| 118 | To port TF-M to a another system or OS, follow the |
| 119 | :doc:`OS Integration Guide </docs/user_guides/tfm_integration_guide>` |
| 120 | |
Galanakis, Minos | 0907261 | 2019-07-04 16:23:10 +0100 | [diff] [blame] | 121 | Please also see the :doc:`glossary </docs/glossary>` of terms used in the project. |
Gyorgy Szing | db9783c | 2019-04-17 21:08:48 +0200 | [diff] [blame] | 122 | |
Galanakis, Minos | 0907261 | 2019-07-04 16:23:10 +0100 | [diff] [blame] | 123 | :doc:`Contributing Guidelines </docs/contributing>` contains guidance on how to |
Gyorgy Szing | db9783c | 2019-04-17 21:08:48 +0200 | [diff] [blame] | 124 | contribute to this project. |
| 125 | |
| 126 | Further documents can be found in the ``docs`` folder. |
| 127 | |
| 128 | |
| 129 | #################### |
| 130 | Feedback and support |
| 131 | #################### |
| 132 | For this early access release, feedback is requested via email to |
| 133 | `support-trustedfirmware-m@arm.com <support-trustedfirmware-m@arm.com>`__. |
| 134 | |
| 135 | ############### |
| 136 | Version history |
| 137 | ############### |
| 138 | +-------------+--------------+--------------------+ |
| 139 | | Version | Date | Description | |
| 140 | +=============+==============+====================+ |
| 141 | | v1.0-beta | 2019-02-15 | 1.0-beta release | |
| 142 | +-------------+--------------+--------------------+ |
Galanakis, Minos | 86a99b9 | 2019-09-30 15:38:26 +0100 | [diff] [blame] | 143 | | v1.0-RC1 | 2019-05-31 | 1.0-RC1 release | |
| 144 | +-------------+--------------+--------------------+ |
Tamas Ban | 4117e03 | 2019-10-09 08:44:49 +0100 | [diff] [blame] | 145 | | v1.0-RC2 | 2019-10-09 | 1.0-RC2 release | |
| 146 | +-------------+--------------+--------------------+ |
Gyorgy Szing | db9783c | 2019-04-17 21:08:48 +0200 | [diff] [blame] | 147 | |
| 148 | -------------- |
| 149 | |
| 150 | *Copyright (c) 2017-2019, Arm Limited. All rights reserved.* |