blob: 87b536b9ee145d5921d9b619d0123cc884d99440 [file] [log] [blame]
Hafnium Documentation
=====================
.. toctree::
:maxdepth: 1
:numbered:
Home<self>
about
getting_started/index
secure-partition-manager/index
threat_model_spm
change-log
appendix
glossary
Hafnium is the Secure Partition Manager (SPM) reference implementation, following the
`Arm's Firmware Framework specification`_.
It leverages Arm's virtualization extensions in the secure world of Arm's A class of
devices (feature introduced with Armv8.4 FEAT_SEL2) to allow multiple Trusted OSes or
Applications to run concurrently, inside the Trusted Execution Environment, each running
as a Secure Partition (SP).
Its main goal is to control the system access given to Trusted OSes, and serve as
a mediator to the rest of the system.
For example, it limits the memory use, and handles all system calls from Trusted OS.
Thus the SPM can enforce spacial isolation, and enforce some level of access control,
protecting other critical system resources such as: the secure monitor, the normal world
software stack, the SPM itself and other SPs/Trusted Applications.
Other important features are: secure interrupt handling, device assignment, inter-partition
communication and with the Normal World Software stack, also known as Rich Execution
Environment (REE).
.. image:: ./resources/diagrams/Hafnium_overview.png
To start using Hafnium, check the :ref:`Getting Started` guide which contains information about
how to setup the environment, build and run the tests, coding guidelines, and how to contribute.
The section :ref:`Secure Partition Manager` provides important details about the implementation.
For security information, check the :ref:`Threat Model` section, which documents identified
vulnerabilities and respective mitigations.
On our releases, the section :ref:`Change Log` will be updated to contain the summary of updates
since previous releases.
For support queries, get in touch and keep up-to-date:
- Through our mailing list `hafnium@lists.trustedfirmware.org`_.
- At the community `Discord`_.
Refer to `github`_ for feature requests and reporting bugs.
.. _Arm's Firmware Framework specification: https://developer.arm.com/documentation/den0077/latest/
.. _hafnium@lists.trustedfirmware.org: https://lists.trustedfirmware.org/mailman3/lists/hafnium.lists.trustedfirmware.org/
.. _github: https://github.com/TF-Hafnium/hafnium/issues
.. _Discord: https://discord.gg/8bxF2rRZBg
--------------
*Copyright (c) 2023, Arm Limited and Contributors. All rights reserved.*