blob: a1299966c99c9aa9b2888f71e36f17d0a4a30ce4 [file] [log] [blame]
Julian Hall7b594622022-04-08 14:04:15 +01001Secure Partition Images
2=======================
Julian Hall5e3626f2022-04-07 14:05:08 +01003Secure partition (SP) deployments are concerned with building SP images that can
4be loaded and run under a secure partition manager such as Hafnium or OP-TEE.
5SP images will usually include service provider components that expose a
6service interface that may be reached using FF-A messages. A set of SP images
7will be loaded and verified by device firmware to provide the required services.
8
Julian Hall7b594622022-04-08 14:04:15 +01009The following deployments that create SP images are currently supported:
Julian Hall5e3626f2022-04-07 14:05:08 +010010
11crypto
12------
13An instance of the crypto service provider is built into an SP image to
14perform cryptographic operations on behalf of clients running in different
15partitions. Backend crypto operations are implemented by the crypto library
16component of MbedTLS. This deployment provides the cryptographic facilities
17needed for PSA certification. For more information, see:
Julian Hall7b594622022-04-08 14:04:15 +010018:ref:`Crypto Service`.
Julian Hall5e3626f2022-04-07 14:05:08 +010019
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 Kis3d6848d2023-01-04 15:36:19 +010026 * *sp* (SPMC agnostic S-EL0 SP format)
Julian Hall5e3626f2022-04-07 14:05:08 +010027 * - External Dependencies
28 - * | TRNG (platform specific)
29 * | Secure storage SP
30
31attestation
32-----------
33An instance of the attestation service provider is built into an SP image
34to support remote attestation use-cases. The service provider obtains a
35trusted view of the boot state of device firmware from the TPM event log
36collected by the boot loader. This deployment provides the initial attestation
37facility needed for PSA certification. For more information, see:
Julian Hall7b594622022-04-08 14:04:15 +010038:ref:`Attestation Service`.
Julian Hall5e3626f2022-04-07 14:05:08 +010039
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 Kis3d6848d2023-01-04 15:36:19 +010046 * *sp* (SPMC agnostic S-EL0 SP format)
Julian Hall5e3626f2022-04-07 14:05:08 +010047 * - External Dependencies
48 - * | TPM Event Log (via SP boot parameter)
49 * | Crypto SP
50
51internal-trusted-storage & protected-storage
52--------------------------------------------
53Two secure storage SP deployments are provided to allow different classes
54of storage to coexist on a device. Both deployments build an instance of
55the secure storage service provider with a storage backend. To allow
56different security trade-offs to be made and to support different hardware,
57a system integrator may configure which storage backend to use. Secure storage
58is a requirement for PSA certification. For more information, see:
Julian Hall7b594622022-04-08 14:04:15 +010059:ref:`Secure Storage Service`.
Julian Hall5e3626f2022-04-07 14:05:08 +010060
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 Kis3d6848d2023-01-04 15:36:19 +010067 * *sp* (SPMC agnostic S-EL0 SP format)
Julian Hall5e3626f2022-04-07 14:05:08 +010068 * - External Dependencies
69 - * Depends on configured storage backend
70
71se-proxy
72--------
73The 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
75a secure communications channel. To protect access to the communication channel,
76the se-proxy SP is assigned exclusive access to the communication peripheral via
77device or memory regions defined in the SP manifest. The deployment integrates
78multiple service providers into the SP image. After performing access control,
79service requests are forwarded to the secure enclave.
80
81The 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 Kis3d6848d2023-01-04 15:36:19 +010094 * *sp* (SPMC agnostic S-EL0 SP format)
Julian Hall5e3626f2022-04-07 14:05:08 +010095 * - External Dependencies
96 - * SE communication peripheral (platform specific)
97
98smm-gateway
99-----------
100An instance of the smm-variable service provider is built into the smm-gateway SP
101image to provide secure world backing for UEFI SMM services. The smm-gateway SP
102provides 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 Kis3d6848d2023-01-04 15:36:19 +0100111 * *sp* (SPMC agnostic S-EL0 SP format)
Julian Hall5e3626f2022-04-07 14:05:08 +0100112 * - 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 Dobszayb8492472025-05-09 15:58:03 +0200116ftpm
117----
118The fTPM deployment provides a software TPM 2.0 implementation in an SP, based
119on the `ms-tpm-20-ref` reference implementation. It exposes a TPM CRB interface
120over FF-A, conforming to the `Arm DEN0138` specification. For more information,
121see: :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 Hall5e3626f2022-04-07 14:05:08 +0100135env-test
136--------
137An instance of the test runner service provider is built into an SP image to
138allow test cases to be run from within the SP isolated environment. The SP
139image also includes environment and platform specific test cases to allow
140access to FF-A services and platform hardware to be tested. The test runner
141service provider is intended to be used in conjunction with a client that
142coordinates 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 Kis3d6848d2023-01-04 15:36:19 +0100150 * *sp* (SPMC agnostic S-EL0 SP format)
Julian Hall5e3626f2022-04-07 14:05:08 +0100151 * - External Dependencies
152 - * Any hardware accessed by test cases (platform specific)
153
154--------------
155
Imre Kis3d6848d2023-01-04 15:36:19 +0100156*Copyright (c) 2022-2023, Arm Limited and Contributors. All rights reserved.*
Julian Hall5e3626f2022-04-07 14:05:08 +0100157
158SPDX-License-Identifier: BSD-3-Clause