blob: 56e77bca57a4915446dc0680d99005ca5a0b8aa3 [file] [log] [blame]
Galanakis, Minos6ccf7ec2019-11-07 15:15:05 +00001##################
2Trusted Firmware M
3##################
Galanakis, Minos6ccf7ec2019-11-07 15:15:05 +00004
Minos Galanakisa8f9d102020-07-06 16:09:45 +01005Trusted Firmware-M (TF-M) implements the Secure Processing Environment (SPE)
6for Armv8-M, Armv8.1-M architectures (e.g. the `Cortex-M33`_, `Cortex-M23`_,
Anton Komlev44b7b0a2022-05-19 15:52:44 +01007`Cortex-M55`_, `Cortex-M85`_ processors) and dual-core platforms.
8It is the platform security architecture reference implementation aligning with
9PSA Certified guidelines, enabling chips, Real Time Operating Systems and
10devices to become PSA Certified.
Minos Galanakisa8f9d102020-07-06 16:09:45 +010011
12TF-M relies on an isolation boundary between the Non-secure Processing
13Environment (NSPE) and the Secure Processing Environment (SPE). It can but is
14not limited to using the `Arm TrustZone technology`_ on Armv8-M and Armv8.1-M
15architectures. In pre-Armv8-M architectures physical core isolation is required.
16
Anton Komlev2cd91532022-11-17 13:36:55 +000017**TF-M consists of:**
Minos Galanakisa8f9d102020-07-06 16:09:45 +010018
Anton Komlev2cd91532022-11-17 13:36:55 +000019- Secure Boot to authenticate NSPE and SPE images
20- TF-M Core for controlling the isolation, communication
21 and execution within SPE and with NSPE
22- Crypto, Internal Trusted Storage (ITS), Protected Storage (PS),
23 Firmware Update and Attestation secure services
24
25TF-M implements PSA-FF-M defined IPC and SFN mechanisms to allow communication
26between isolated firmware partitions. TF-M is highly configurable allowing users
27to only include the required secure services and features. Project provides
28TF-M base build with just TF-M core and platform drivers and 4 predefined
29configurations known as :ref:`tf-m_profiles`. TF-M Profiles or TF-M base can
30be configured to include required services and features as described in the
Kevin Peng75b0b762022-10-25 18:00:27 +080031:ref:`tf-m_configuration` section.
Minos Galanakisa8f9d102020-07-06 16:09:45 +010032
33.. figure:: readme_tfm_v8.png
34 :scale: 65 %
35 :align: center
36
Minos Galanakis01da63f2020-09-15 17:38:59 +010037 FF-M compliant design with TF-M
Minos Galanakisa8f9d102020-07-06 16:09:45 +010038
39Applications and Libraries in the Non-secure Processing Environment can
40utilize these secure services with a standardized set of PSA Functional APIs.
41Applications running on Cortex-M devices can leverage TF-M services to ensure
42secure connection with edge gateways and IoT cloud services. It also protects
43the critical security assets such as sensitive data, keys and certificates on
44the platform. TF-M is supported on several Cortex-M based
Anton Komlevde14f452022-06-19 15:45:26 +010045:doc:`Microcontrollers </platform/index>` and Real Time Operating
Minos Galanakisa8f9d102020-07-06 16:09:45 +010046Systems (RTOS).
Galanakis, Minos6ccf7ec2019-11-07 15:15:05 +000047
48Terms ``TFM`` and ``TF-M`` are commonly used in documents and code and both
Anton Komlev3356ba32022-03-31 22:02:11 +010049refer to ``Trusted Firmware M.`` :doc:`Glossary </glossary>` has the list
Summer Qinabf66982021-04-06 17:22:15 +080050of terms and abbreviations.
Galanakis, Minos6ccf7ec2019-11-07 15:15:05 +000051
52#######
53License
54#######
Anton Komlev3356ba32022-03-31 22:02:11 +010055The software is provided under a BSD-3-Clause :doc:`License </contributing/lic>`.
Galanakis, Minos6ccf7ec2019-11-07 15:15:05 +000056Contributions to this project are accepted under the same license with developer
Anton Komlev3356ba32022-03-31 22:02:11 +010057sign-off as described in the :doc:`Contributing Guidelines </contributing/contributing_process>`.
Galanakis, Minos6ccf7ec2019-11-07 15:15:05 +000058
59This project contains code from other projects as listed below. The code from
Ken Liufc750062020-05-09 15:16:20 +080060external projects is limited to ``app``, ``bl2``, ``lib`` and ``platform``
61folders. The original license text is included in those source files.
Galanakis, Minos6ccf7ec2019-11-07 15:15:05 +000062
Galanakis, Minos6ccf7ec2019-11-07 15:15:05 +000063- The ``app`` folder contains files imported from CMSIS_5 project and the files
64 have Apache 2.0 license.
65- The ``bl2`` folder contains files imported from MCUBoot project and the files
66 have Apache 2.0 license.
Ken Liufc750062020-05-09 15:16:20 +080067- The ``lib`` folder may contain 3rd party files with diverse licenses.
68- The ``platform`` folder currently contains platforms support imported from
69 the external project and the files may have different licenses.
Galanakis, Minos6ccf7ec2019-11-07 15:15:05 +000070
Anton Komlevde14f452022-06-19 15:45:26 +010071.. include:: /platform/platform_introduction.rst
Galanakis, Minos6ccf7ec2019-11-07 15:15:05 +000072
Anton Komlevde14f452022-06-19 15:45:26 +010073The document :doc:`Supported Platforms </platform/index>` lists the details.
Mark Horvath9a5a9b92019-11-29 15:57:55 +010074
Summer Qina1f68962021-04-08 16:31:27 +080075#########################
76Release Notes and Process
77#########################
Anton Komlev3356ba32022-03-31 22:02:11 +010078The :doc:`Release Cadence and Process </releases/release_process>` provides
Summer Qina1f68962021-04-08 16:31:27 +080079release cadence and process information.
Mark Horvath9a5a9b92019-11-29 15:57:55 +010080
Anton Komlev3356ba32022-03-31 22:02:11 +010081The :doc:`Releases </releases/index>` provides details of
Summer Qina1f68962021-04-08 16:31:27 +080082major features of the release and platforms supported.
Soby Mathew175efe12020-07-03 14:33:11 +010083
Galanakis, Minos6ccf7ec2019-11-07 15:15:05 +000084####################
Anton Komlev91281f02022-04-22 09:24:20 +010085Feedback and Support
Galanakis, Minos6ccf7ec2019-11-07 15:15:05 +000086####################
Minos Galanakisfc6804e2020-03-10 11:03:34 +000087For this release, feedback is requested via email to
88`tf-m@lists.trustedfirmware.org <tf-m@lists.trustedfirmware.org>`__.
Galanakis, Minos6ccf7ec2019-11-07 15:15:05 +000089
Anton Komlevfb835402022-08-09 13:04:04 +010090A bi-weekly technical forum is available for discussion on any technical topics
91online. Welcome to join `TF-M Forum <https://www.trustedfirmware.org/meetings/tf-m-technical-forum>`__.
92
Anton Komlev44b7b0a2022-05-19 15:52:44 +010093.. _Cortex-M33: https://developer.arm.com/Processors/Cortex-M33
94.. _Cortex-M23: https://developer.arm.com/Processors/Cortex-M23
95.. _Cortex-M55: https://developer.arm.com/Processors/Cortex-M55
96.. _Cortex-M85: https://developer.arm.com/Processors/Cortex-M85
Minos Galanakisa8f9d102020-07-06 16:09:45 +010097.. _PSA Certified: https://www.psacertified.org/about/developing-psa-certified/
98.. _Arm TrustZone technology: https://developer.arm.com/ip-products/security-ip/trustzone/trustzone-for-cortex-m
99
Galanakis, Minos6ccf7ec2019-11-07 15:15:05 +0000100--------------
101
Anton Komlevfb835402022-08-09 13:04:04 +0100102*Copyright (c) 2017-2022, Arm Limited. All rights reserved.*