| commit | 41fea93fe85b6b81815d1d5a519af995b5464b21 | [log] [tgz] |
|---|---|---|
| author | Kathleen Capella <kathleen.capella@arm.com> | Fri Jun 23 17:39:28 2023 -0400 |
| committer | Joao Alves <joao.alves@arm.com> | Fri Jan 19 13:58:38 2024 +0100 |
| tree | 27c6642082a164f1fe2e8ece60ddd197a8b58299 | |
| parent | 86d9fa741b861c4d90fc007f5874c0e46e578151 [diff] |
feat(dir msg): add FFA_MSG_SEND_DIRECT_REQ2
Add FFA_MSG_SEND_DIRECT_REQ2 interface from FF-A 1.2 spec.
This patch implements:
* Ability to send a direct message using FFA_MSG_SEND_DIRECT_REQ2
function id.
* Ability to specify a UUID as an argument in a direct message.
* Runtime check to verify partition's messaging method allows
send/receive via FFA_MSG_SEND_DIRECT_REQ2.
* Runtime check to verify a partition implementing an FF-A version <
v1.2 does not support sending/receiving messages via
FFA_MSG_SEND_DIRECT_REQ2.
Related work to be added in subsequent patches:
* Allow extended register usage (x4-x17 updated from x4-x7).
* Support for multiple UUIDs per partition.
* Support for FFA_MSG_SEND_DIRECT_RESP2.
Signed-off-by: Kathleen Capella <kathleen.capella@arm.com>
Change-Id: Ibed2cf8b9c96facff65110e6a391b3087e16a781
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).
The following diagram shows an overview of a typical aarch64-based system, and where Hafnium fits:
Get in touch and keep up-to-date at:
See feature requests and bugs through github.
To find more about Hafnium, view the full documentation. It includes valuable resources such as: Getting Started guide, Threat Model, and other documentation.