Julian Hall | 7b59462 | 2022-04-08 14:04:15 +0100 | [diff] [blame] | 1 | Secure Partition Images |
| 2 | ======================= |
Julian Hall | 5e3626f | 2022-04-07 14:05:08 +0100 | [diff] [blame] | 3 | Secure partition (SP) deployments are concerned with building SP images that can |
| 4 | be loaded and run under a secure partition manager such as Hafnium or OP-TEE. |
| 5 | SP images will usually include service provider components that expose a |
| 6 | service interface that may be reached using FF-A messages. A set of SP images |
| 7 | will be loaded and verified by device firmware to provide the required services. |
| 8 | |
Julian Hall | 7b59462 | 2022-04-08 14:04:15 +0100 | [diff] [blame] | 9 | The following deployments that create SP images are currently supported: |
Julian Hall | 5e3626f | 2022-04-07 14:05:08 +0100 | [diff] [blame] | 10 | |
| 11 | crypto |
| 12 | ------ |
| 13 | An instance of the crypto service provider is built into an SP image to |
| 14 | perform cryptographic operations on behalf of clients running in different |
| 15 | partitions. Backend crypto operations are implemented by the crypto library |
| 16 | component of MbedTLS. This deployment provides the cryptographic facilities |
| 17 | needed for PSA certification. For more information, see: |
Julian Hall | 7b59462 | 2022-04-08 14:04:15 +0100 | [diff] [blame] | 18 | :ref:`Crypto Service`. |
Julian Hall | 5e3626f | 2022-04-07 14:05:08 +0100 | [diff] [blame] | 19 | |
| 20 | .. list-table:: |
| 21 | :widths: 1 2 |
| 22 | :header-rows: 0 |
| 23 | |
| 24 | * - Supported Environments |
| 25 | - * *opteesp* (runs as an S-EL0 SP under OP-TEE) |
Imre Kis | 3d6848d | 2023-01-04 15:36:19 +0100 | [diff] [blame] | 26 | * *sp* (SPMC agnostic S-EL0 SP format) |
Julian Hall | 5e3626f | 2022-04-07 14:05:08 +0100 | [diff] [blame] | 27 | * - External Dependencies |
| 28 | - * | TRNG (platform specific) |
| 29 | * | Secure storage SP |
| 30 | |
| 31 | attestation |
| 32 | ----------- |
| 33 | An instance of the attestation service provider is built into an SP image |
| 34 | to support remote attestation use-cases. The service provider obtains a |
| 35 | trusted view of the boot state of device firmware from the TPM event log |
| 36 | collected by the boot loader. This deployment provides the initial attestation |
| 37 | facility needed for PSA certification. For more information, see: |
Julian Hall | 7b59462 | 2022-04-08 14:04:15 +0100 | [diff] [blame] | 38 | :ref:`Attestation Service`. |
Julian Hall | 5e3626f | 2022-04-07 14:05:08 +0100 | [diff] [blame] | 39 | |
| 40 | .. list-table:: |
| 41 | :widths: 1 2 |
| 42 | :header-rows: 0 |
| 43 | |
| 44 | * - Supported Environments |
| 45 | - * *opteesp* (runs as an S-EL0 SP under OP-TEE) |
Imre Kis | 3d6848d | 2023-01-04 15:36:19 +0100 | [diff] [blame] | 46 | * *sp* (SPMC agnostic S-EL0 SP format) |
Julian Hall | 5e3626f | 2022-04-07 14:05:08 +0100 | [diff] [blame] | 47 | * - External Dependencies |
| 48 | - * | TPM Event Log (via SP boot parameter) |
| 49 | * | Crypto SP |
| 50 | |
| 51 | internal-trusted-storage & protected-storage |
| 52 | -------------------------------------------- |
| 53 | Two secure storage SP deployments are provided to allow different classes |
| 54 | of storage to coexist on a device. Both deployments build an instance of |
| 55 | the secure storage service provider with a storage backend. To allow |
| 56 | different security trade-offs to be made and to support different hardware, |
| 57 | a system integrator may configure which storage backend to use. Secure storage |
| 58 | is a requirement for PSA certification. For more information, see: |
Julian Hall | 7b59462 | 2022-04-08 14:04:15 +0100 | [diff] [blame] | 59 | :ref:`Secure Storage Service`. |
Julian Hall | 5e3626f | 2022-04-07 14:05:08 +0100 | [diff] [blame] | 60 | |
| 61 | .. list-table:: |
| 62 | :widths: 1 2 |
| 63 | :header-rows: 0 |
| 64 | |
| 65 | * - Supported Environments |
| 66 | - * *opteesp* (runs as an S-EL0 SP under OP-TEE) |
Imre Kis | 3d6848d | 2023-01-04 15:36:19 +0100 | [diff] [blame] | 67 | * *sp* (SPMC agnostic S-EL0 SP format) |
Julian Hall | 5e3626f | 2022-04-07 14:05:08 +0100 | [diff] [blame] | 68 | * - External Dependencies |
| 69 | - * Depends on configured storage backend |
| 70 | |
| 71 | se-proxy |
| 72 | -------- |
| 73 | The se-proxy SP provides access to services hosted by a secure enclave (hence |
| 74 | 'se'). A secure enclave consists of a separate MCU, connected to the host via |
| 75 | a secure communications channel. To protect access to the communication channel, |
| 76 | the se-proxy SP is assigned exclusive access to the communication peripheral via |
| 77 | device or memory regions defined in the SP manifest. The deployment integrates |
| 78 | multiple service providers into the SP image. After performing access control, |
| 79 | service requests are forwarded to the secure enclave. |
| 80 | |
| 81 | The se-proxy deployment includes proxies for the following services: |
| 82 | |
| 83 | - Crypto |
| 84 | - Attestation |
| 85 | - Internal Trusted Storage |
| 86 | - Protected Storage |
| 87 | |
| 88 | .. list-table:: |
| 89 | :widths: 1 2 |
| 90 | :header-rows: 0 |
| 91 | |
| 92 | * - Supported Environments |
| 93 | - * *opteesp* (runs as an S-EL0 SP under OP-TEE) |
Imre Kis | 3d6848d | 2023-01-04 15:36:19 +0100 | [diff] [blame] | 94 | * *sp* (SPMC agnostic S-EL0 SP format) |
Julian Hall | 5e3626f | 2022-04-07 14:05:08 +0100 | [diff] [blame] | 95 | * - External Dependencies |
| 96 | - * SE communication peripheral (platform specific) |
| 97 | |
| 98 | smm-gateway |
| 99 | ----------- |
| 100 | An instance of the smm-variable service provider is built into the smm-gateway SP |
| 101 | image to provide secure world backing for UEFI SMM services. The smm-gateway SP |
| 102 | provides a lightweight alternative to StMM. For more information, see: |
| 103 | :ref:`UEFI SMM Services`. |
| 104 | |
| 105 | .. list-table:: |
| 106 | :widths: 1 2 |
| 107 | :header-rows: 0 |
| 108 | |
| 109 | * - Supported Environments |
| 110 | - * *opteesp* (runs as an S-EL0 SP under OP-TEE) |
Imre Kis | 3d6848d | 2023-01-04 15:36:19 +0100 | [diff] [blame] | 111 | * *sp* (SPMC agnostic S-EL0 SP format) |
Julian Hall | 5e3626f | 2022-04-07 14:05:08 +0100 | [diff] [blame] | 112 | * - External Dependencies |
| 113 | - * | Secure storage service instance (e.g. hosted by protected-storage SP) |
| 114 | * | Crypto service instance (e.g. hosted crypto SP) |
| 115 | |
Balint Dobszay | b849247 | 2025-05-09 15:58:03 +0200 | [diff] [blame^] | 116 | ftpm |
| 117 | ---- |
| 118 | The fTPM deployment provides a software TPM 2.0 implementation in an SP, based |
| 119 | on the `ms-tpm-20-ref` reference implementation. It exposes a TPM CRB interface |
| 120 | over FF-A, conforming to the `Arm DEN0138` specification. For more information, |
| 121 | see: :ref:`TPM 2.0 service`. |
| 122 | |
| 123 | .. list-table:: |
| 124 | :widths: 1 2 |
| 125 | :header-rows: 0 |
| 126 | |
| 127 | * - Supported Environments |
| 128 | - * *opteesp* (runs as an S-EL0 SP under OP-TEE) |
| 129 | * *sp* (SPMC agnostic S-EL0 SP format) |
| 130 | * - External Dependencies |
| 131 | - * | Secure storage service instance (e.g. hosted by protected-storage SP) |
| 132 | * | TRNG (platform specific) |
| 133 | * | Carveout for CRB memory regions |
| 134 | |
Julian Hall | 5e3626f | 2022-04-07 14:05:08 +0100 | [diff] [blame] | 135 | env-test |
| 136 | -------- |
| 137 | An instance of the test runner service provider is built into an SP image to |
| 138 | allow test cases to be run from within the SP isolated environment. The SP |
| 139 | image also includes environment and platform specific test cases to allow |
| 140 | access to FF-A services and platform hardware to be tested. The test runner |
| 141 | service provider is intended to be used in conjunction with a client that |
| 142 | coordinates which tests to run and collects test results. |
| 143 | |
| 144 | .. list-table:: |
| 145 | :widths: 1 2 |
| 146 | :header-rows: 0 |
| 147 | |
| 148 | * - Supported Environments |
| 149 | - * *opteesp* (runs as an S-EL0 SP under OP-TEE) |
Imre Kis | 3d6848d | 2023-01-04 15:36:19 +0100 | [diff] [blame] | 150 | * *sp* (SPMC agnostic S-EL0 SP format) |
Julian Hall | 5e3626f | 2022-04-07 14:05:08 +0100 | [diff] [blame] | 151 | * - External Dependencies |
| 152 | - * Any hardware accessed by test cases (platform specific) |
| 153 | |
| 154 | -------------- |
| 155 | |
Imre Kis | 3d6848d | 2023-01-04 15:36:19 +0100 | [diff] [blame] | 156 | *Copyright (c) 2022-2023, Arm Limited and Contributors. All rights reserved.* |
Julian Hall | 5e3626f | 2022-04-07 14:05:08 +0100 | [diff] [blame] | 157 | |
| 158 | SPDX-License-Identifier: BSD-3-Clause |