microsoft/mu_feature_ffa

Public

mirrored fromhttps://github.com/microsoft/mu_feature_ffaAvailable

CodeCommitsIssuesPull requestsActionsInsightsSecurity
fix_upload

Branches

Tags

  • No tags available.
0Branches0Tags
Go to file
Add file
Code

Clone

HTTPS

Download ZIP

FfaFeaturePkg/Docs/Ffa_Feature.md

63lines · modecode

1# Firmware Framework for A-Profile (FF-A) Introduction
2
3## Overview
4
5The Firmware Framework for A-Profile (FF-A) is a set of guidelines and best practices for managing firmware in trusted
6environments for A-Profile systems. It aims to provide a secure and reliable interface for firmware components, ensuring
7that firmware partitions are isolated and protected from each other, thereby enhancing the overall security and stability
8of the system.
9
10See [Firmware Framework for A-Profile (FF-A) specification](https://developer.arm.com/documentation/den0077/latest)
11for more information on the topic.
12
13## Repository Structure
14
15While the core functionality of FF-A is supported through mainline EDK2 repo, this repository provides additional
16features and enhancements specific to the FF-A framework.
17
18The repository is organized to host a variety of components, including:
19
20- Libraries providing bootstrapping and initialization routines for the secure partitions in UEFI style.
21- Libraries containing additional FF-A functionalities, such as notification set and get.
22- Secure partitions that implement specific FF-A services in UEFI style.
23- Secure partitions that implement FF-A services in a Rust environment.
24
25### Software Components
26
27#### Libraries
28
29| Name | Description |
30|------|-------------|
31| ArmArchTimerLibEx | Provides temporary timer services for secure partitions if the SPMC at EL2 does not support EL1 timer. |
32| ArmFfaLibEx | Provides additional FF-A functionalities, such as notification set and get, console logging through SPMC. |
33| NotificationServiceLib | C implementation of notification services for secure partitions, allowing them to send and receive notifications. |
34| SecurePartitionEntryPoint | UEFI style C implementation of the entry point for secure partitions executing at S-EL0, handling initialization and communication with the SPMC. |
35| SecurePartitionMemoryAllocationLib | UEFI style C implementation of memory allocation services for secure partitions. |
36| SecurePartitionServicesTableLib | UEFI style C implementation of the services table for secure partitions, providing a collection of common resources needed by secure partitions, i.e. FDT addresses. |
37| TestServiceLib | UEFI style C implementation of a test service for secure partitions, allowing for testing and validation of secure partition functionality. |
38| TpmServiceLib | UEFI style C implementation of a TPM service for secure partitions. See secure partition documentation for more details. |
39
40### Rust Crates for Services
41
42This section only lists the Rust crates available in _this_ repository. The external crates are not included.
43
44| Name | Description |
45|------|-------------|
46| TestServiceLibRust | Rust implementation of the test service for secure partitions. |
47
48#### Secure Partitions
49
50| Name | Description |
51|------|-------------|
52| MsSecurePartition | UEFI style C implementation of a secure partition for the FF-A framework. It currently supports [TPM services](https://developer.arm.com/documentation/den0138/latest) |
53| MsSecurePartitionRust | Rust implementation of a secure partition for the FF-A framework. It currently supports `Inter-partition protocol` defined in [FF-A spec](https://developer.arm.com/documentation/den0077/latest) |
54
55#### Test Application
56
57| Name | Description |
58|------|-------------|
59| FfaPartitionTest | A test application to cover fundamental secure services described above. |
60
61### Platform Integration
62
63See [Platform Integration](PartitionGuid.md) for more information on integrating FF-A with platform firmware.
64