blob: a445c38cfb213b4c8ab27f2119e8a6726f8100d1 [file] [log] [blame]
.. zephyr:code-sample-category:: tfm_integration
:name: TF-M Integration
:show-listing:
These TF-M integration examples can be used with a supported Armv8-M board, and demonstrate how
the TF-M APIs can be used with Zephyr.
Overview
********
Trusted Firmware Platform Security Architecture (PSA) APIs are used for the
secure processing environment (S), with Zephyr running in the non-secure
processing environment (NS).
As part of the standard build process, the secure bootloader (BL2) is normally
built, in addition to the TF-M S and Zephyr NS binary images. The S and NS
images are then merged and signed using the private signing keys, whose public
key values are stored in the secure bootloader. This allows the application
images to be verified and either accepted or rejected during the image
verification process at startup, based on a pair of private keys that you
control.
What is Trusted Firmware-M (TF-M)?
**********************************
Trusted Firmware-M (TF-M) is the reference implementation of `Platform Security
Architecture (PSA) <https://pages.arm.com/psa-resources.html>`_.
TF-M provides a highly configurable set of software components to create a
Trusted Execution Environment. This is achieved by a set of secure run time
services such as Secure Storage, Cryptography, Audit Logs and Attestation.
Additionally, secure boot in TF-M ensures integrity of run time software and
supports firmware upgrade.
The current TF-M implementation specifically targets TrustZone for ARMv8-M.
Trusted Firmware-M source code is available at
`git.trustedfirmware.org <https://git.trustedfirmware.org>`_, although a fork
of this source code is maintained by the Zephyr Project as a module for
convenience sake at
`<https://github.com/zephyrproject-rtos/trusted-firmware-m>`_.
For further information consult the official `TF-M documentation`_
.. _TF-M documentation:
https://tf-m-user-guide.trustedfirmware.org/