Trusted Firmware M
Trusted Firmware-M (TF-M) implements the Secure Processing Environment (SPE) for Armv8-M, Armv8.1-M architectures (e.g. the Cortex-M33, Cortex-M23, Cortex-M55 processors) and dual-core platforms. It is the platform security architecture reference implementation aligning with PSA Certified guidelines, enabling chips, Real Time Operating Systems and devices to become PSA Certified.
TF-M relies on an isolation boundary between the Non-secure Processing Environment (NSPE) and the Secure Processing Environment (SPE). It can but is not limited to using the Arm TrustZone technology on Armv8-M and Armv8.1-M architectures. In pre-Armv8-M architectures physical core isolation is required.
Trusted Firmware-M consists of:
Secure Boot to authenticate integrity of NSPE and SPE images
TF-M Core responsible for controlling the isolation, communication and execution within SPE and with NSPE
Crypto, Internal Trusted Storage (ITS), Protected Storage (PS) and Attestation secure services
Applications and Libraries in the Non-secure Processing Environment can utilize these secure services with a standardized set of PSA Functional APIs. Applications running on Cortex-M devices can leverage TF-M services to ensure secure connection with edge gateways and IoT cloud services. It also protects the critical security assets such as sensitive data, keys and certificates on the platform. TF-M is supported on several Cortex-M based Microcontrollers and Real Time Operating Systems (RTOS).
TF-M are commonly used in documents and code and both
Trusted Firmware M. Glossary has the list
of terms and abbreviations.
The software is provided under a BSD-3-Clause License. Contributions to this project are accepted under the same license with developer sign-off as described in the Contributing Guidelines.
This project contains code from other projects as listed below. The code from
external projects is limited to
folders. The original license text is included in those source files.
appfolder contains files imported from CMSIS_5 project and the files have Apache 2.0 license.
bl2folder contains files imported from MCUBoot project and the files have Apache 2.0 license.
libfolder may contain 3rd party files with diverse licenses.
platformfolder currently contains platforms support imported from the external project and the files may have different licenses.
The document Supported Platforms lists the details.
Release Notes and Process
The Release Cadence and Process provides release cadence and process information.
The Releases provides details of major features of the release and platforms supported.
Feedback and Support
For this release, feedback is requested via email to firstname.lastname@example.org.
Copyright (c) 2017-2021, Arm Limited. All rights reserved.