blob: 8bfb588cc329527b540348d0d24ba5948d3a6fd1 [file] [log] [blame]
Julian Halle76ade82020-11-25 03:07:21 +01001Change Log & Release Notes
2==========================
3
Gyorgy Szing0b8b4fa2022-11-17 13:00:45 +01004This document contains a summary of the new features, changes, fixes and known issues in each release of Trusted
5Services.
Julian Halle76ade82020-11-25 03:07:21 +01006
Gyorgy Szing3e5cc5f2025-05-08 11:29:11 +02007Version v1.2.0
8--------------
9
10Feature Highlights
11^^^^^^^^^^^^^^^^^^
12
13- Corstone1000 updates:
14 - Integrated PSA-FWU proxy to the proxy SP.
15 - Enabled compile-time configuration for MHU and RSE buffer sizes.
16 - Aligned psa-crypto size definitions with TF-M v2.1
17- rd1-ae:
18 - Introduce the new Arm Reference Design-1 AE platform targeting the Automotive segment. It features
19 high-performance Arm Neoverse V3AE Application Processor compute system, Arm Cortex-R82AE based Safety Island, and
20 a Runtime Security Engine (RSE) for enhanced security. See :doc:`/target-platforms/rd1ae`
21 - Added driver support for MHU v3.
22- se-proxy:
23 - Added support for compile-time configuration of supported services.
24 - Client ID value 0 is considered invalid by TF-M (the firmware implementation for RSE and SE) and is rejected
25 starting from version v2.1.x. As a workaround, the SE-Proxy replaces value 0 with its own FF-A ID, which is always
26 a valid positive integer. This substitution is safe, as the SE-Proxy does not initiate requests on its own behalf.
27 - Added support for pointer access protocol.
28- Block Storage SP
29 - Added encryption support using the new Encrypted Block Store component.
30- Test updates:
31 - Removed libts-test
32 - Merged unit-tests into a single deployment
33 - spm-test
34
35 - Fix mem retrieve in SPM test SP
36 - Enabled platform-specific configuration of certain manifest entries.
37
38- fTPM SP (experimental)
39 - Introduced the fTPM SP deployment, which provides TPM services using the ms-tpm20-ref implementation.
40- Documentation:
41 - Added a new section covering threat assessments for various SPs.
42- Notable generic fixes:
43 - PSA FWU M: Load initial image state in PSA FWU M update agent.
44 - Fix interrupted FFA_MSG_SEND_DIRECT_REQ handling.
45
46Deprecations
47^^^^^^^^^^^^
48
49None.
50
51
52Updated external components
53^^^^^^^^^^^^^^^^^^^^^^^^^^^
54
55None.
56
57Breaking changes
58^^^^^^^^^^^^^^^^
59
60None.
61
62Resolved issues
63^^^^^^^^^^^^^^^
64
65None.
66
67Known limitations
68^^^^^^^^^^^^^^^^^
69
70- fTPM SP:
71
72 - The implementation is experimental. The end-to-end integration is lacking, some
73 components are not published yet.
74 - Missing support of hardware time source.
75 - Missing support for boot measurements (event log) made by earlier boot stages.
76 - Locality 4 command handling is not implemented yet.
77
78
Gyorgy Szingdc6f04f2024-11-14 12:06:38 +010079Version v1.1.0
Gyorgy Szing08129852024-04-06 08:16:29 +020080--------------
81
82- Trustedfirmware.org has deprecated Phabricator, the wiki and issue tracking provider. This functionality has been
83 moved to GitHub. See the `Trusted Services organization`_. The project wiki has been moved
84 `to here <https://github.com/Trusted-Services/trusted-services/wiki>`_
85
86
87Feature Highlights
88^^^^^^^^^^^^^^^^^^
89
90- Add documentation covering the :ref:`OP-TEE SPMC tests`.
Gyorgy Szingc6450a02024-10-28 10:44:29 +010091- :ref:`UEFI SMM Services`:
92
93 - Extend the implementation to support Authenticated Variables.
94 - Relax the UEFI variable name length limit imposed by the size of the RPC buffer.
95
Gyorgy Szing08129852024-04-06 08:16:29 +020096- Introduce a work in progress RPMB implementation and integrate it to the Block Storage service. The current
97 configuration uses an SWd RAM buffer for data storage, and is not connected to the RPMB provider running in the NWd.
98 This is the first baseline to implement a scenario where the RPMB owner is an S-EL0 SP.
99- Introduce the :ref:`Logging Service`.
100- Add crypto key store partitioning support to the Crypto Service. This feature allows isolating clients running in
101 different SPs.
Gyorgy Szinge6b38462024-10-24 17:36:45 +0200102- Add the "RSE Com" protocol. RSE Com is a new protocol used between secure partitions and security subsystems like the
103 Secure Enclave on Corstone-1000 or Runtime Security Engine on `RD-1 AE`_.
Gyorgy Szingc6450a02024-10-28 10:44:29 +0100104- libsp learnt to support FF-A v1.1 and all SPs are updated to use this version.
105- tstee Linux driver was merged upstream and the LinuxFfaTEEDriver external component is removed.
106- All SP and arm-linux deployments are updated to support Armv8.5-A Branch Protection feature.
107 See: :ref:`branch_protection`
108- A new FWU agent implementation is introduced, which implements a `PSA Certified Firmware Update API 1.0`_ client. This
109 component can be used to implement an FWU proxy on A+M systems like Corstone1000 and RD-1 AE. For more details see:
110 :ref:`Firmware update on A+M systems`
111- A new shared library called ``libpsats`` is introduced to help integration of PSA clients to 3rd party linux
112 user-space projects. For details see: :ref:`libs-libpsats`
113- The following new tests and enhancements have been added to :ref:`OP-TEE SPMC tests`:
Gyorgy Szing4a0829d2024-04-19 09:34:53 +0200114
Gyorgy Szingc6450a02024-10-28 10:44:29 +0100115 - FFA_MEM_PERM_GET/SET tests.
116 - Memory sharing test updated to cover invalid requests.
117 - VM availability message tests.
118 - Endpoint ID checking is fixed.
Gyorgy Szing4a0829d2024-04-19 09:34:53 +0200119
120Deprecations
121^^^^^^^^^^^^
122
123- This OpenAMP based psa_ipc implementation is deprecated and will be removed in the future.
124
Gyorgy Szing08129852024-04-06 08:16:29 +0200125
126Updated external components
127^^^^^^^^^^^^^^^^^^^^^^^^^^^
128
Gyorgy Szingc6450a02024-10-28 10:44:29 +0100129- MbedTLS version in the Crypto service is updated to v3.6.0.
Gyorgy Szing4a0829d2024-04-19 09:34:53 +0200130- NanoPB has been upgraded to v0.4.8.
Gyorgy Szingc6450a02024-10-28 10:44:29 +0100131- Newlib is no longer required and the newlib external component is removed.
Gyorgy Szing08129852024-04-06 08:16:29 +0200132
133Breaking changes
134^^^^^^^^^^^^^^^^
135
Gyorgy Szingdc6f04f2024-11-14 12:06:38 +0100136None.
Gyorgy Szing4a0829d2024-04-19 09:34:53 +0200137
Gyorgy Szing08129852024-04-06 08:16:29 +0200138Resolved issues
139^^^^^^^^^^^^^^^
140
141- Fix psa-ps-api-test test case 414.
142- Crypto key store partitioning has been implemented, and clients accessing the crypto service from different FF-A
143 endpoints can not access each other's assets anymore.
144
145Known limitations
146^^^^^^^^^^^^^^^^^
147
Gyorgy Szingc6450a02024-10-28 10:44:29 +0100148None.
Gyorgy Szing08129852024-04-06 08:16:29 +0200149
Gyorgy Szing30731ce2023-09-27 12:24:18 +0200150Version 1.0.0
151-------------
152
153The first stabilised release of the project from previously prototype releases ready for product use.
154
155Feature Highlights
156^^^^^^^^^^^^^^^^^^
157
Gabor Toth666e2bc2024-12-03 15:42:24 +0100158- Introduce the :doc:`Block Storage Service </services/block-storage/block-storage-service-description>`. The Block Storage service
Gyorgy Szing30731ce2023-09-27 12:24:18 +0200159 can be used to share a block-oriented storage device such as a QSPI flash between a set of independent secure world
160 clients.
161
162- Introduce the :doc:`Firmware Update Service </services/fwu/index>`. The FWU service implements the Update Agent
163 defined in the `Arm FWU-A specification`_ and allows replacing FW components with newer versions.
164
165- Refactor FF-A UUID policy. Reinterpret the FF-A UUID to identify the protocol supported by TS SP instead of the
166 service. This removes the maintenance burden of keeping an up to date UUID list in the service locator. All SPs start
167 using the same protocol UUID, and implement a new discovery service (see the next point).
168
169- Overhaul the RPC protocol. The main driver is to remove the single shared memory region limitation, which does not
170 allow separating shared regions of clients running over Linux in the user-space. The second driver is to add
171 versioning support to the RPC layer.
172
173 - Allow multiple shared memory regions between endpoints.
174 - Implement the discovery service in the RPC layer.
175 - Allow assigning a UUID to interfaces. This mechanism replaces the protocol identifier used earlier. Each protocol
176 of a service is represented as a dedicated interface.
177 - Add versioning support to the RPC layer.
178
179- Refactor the discovery service. The is removing the runtime overhead of memory sharing during the discovery and
180 decreases code size and duplication using the same code for service discovery.
181
182 - Implement the discovery service in the RPC layer for efficiency reasons.
183 - Implement service identity discovery for all services.
184 - Remove the encoding type entity and use service UUIDs to represent the serialization type.
185 - Service property discovery is to be implemented in the future.
186
Gyorgy Szingc6450a02024-10-28 10:44:29 +0100187- Add support for the Corstone-1000 platform. For more information about this platform please see:
188 `Corstone-1000 product homepage`_
Gyorgy Szing30731ce2023-09-27 12:24:18 +0200189
Gyorgy Szingc6450a02024-10-28 10:44:29 +0100190- SPs now indicate support of :term:`Normal World` interrupt preemption capability in their SP manifest and allow the
191 SPMC to enable preemption if possible. This removes NWd interrupts being disabled for long periods due to long service
192 calls.
Gyorgy Szing30731ce2023-09-27 12:24:18 +0200193
194- Add support for the Armv8-A CRC32 feature for :term:`Secure World` and :term:`Normal World` components.
195
196- Extend FF-A support with:
197
198 - FF-A v1.1 boot protocol between the SPM and SPs.
199 - FF-A v1.2 FFA_CONSOLE_LOG call. This allows SPs to emit log messages in an SPMC agonistic way.
200
201- Improve the build system to allow setting the build steps of external components to be verbose.
202
203- Add support for runtime (dynamic) psa-acs test case configuration.
204
205Updated external components
206^^^^^^^^^^^^^^^^^^^^^^^^^^^
207
208- MbedTLS version integration into the Crypto service is updated to v3.4.0.
209- The PSA Arch test is updated to version `74dc6646ff594e131a726a5305aba77bac30eceb`.
210
211Breaking changes
212^^^^^^^^^^^^^^^^
213
214- The new RPC ABI is not backwards compatible and needs recent version of all depending components.
215
216Resolved issues
217^^^^^^^^^^^^^^^
218
219- The new RPC version allows having multiple shared memory regions between endpoints. This allows each NWd client
220 running in Linux user-space to use a dedicated buffer.
221
222Known limitations
223^^^^^^^^^^^^^^^^^
224
225 - Crypto key store partitioning by client is not yet supported. This means multiple clients running at the same FF-A
226 endpoint use a shared key space.
227 - The full firmware update process implementation and testing is work-in-progress. The FWU process relies on the
228 cooperation of multiple FW components owned by multiple FW projects. Some 3rd party components do not implement the
229 needed features yet and thus, the FWU service was validated in "isolation" and exercised by TS test on the FVP
230 platform and on the host PC only.
231 - Service property discovery is not implemented yet.
232 - Discovering the maximum payload size of a service is not supported yet and buffer sizes are hardcoded.
233
Gyorgy Szing0b8b4fa2022-11-17 13:00:45 +0100234Version 1.0.0-Beta
235------------------
Julian Halle76ade82020-11-25 03:07:21 +0100236
Gyorgy Szing0b8b4fa2022-11-17 13:00:45 +0100237The first tagged release of the project.
Julian Halle76ade82020-11-25 03:07:21 +0100238
Gyorgy Szing0b8b4fa2022-11-17 13:00:45 +0100239Feature Highlights
240^^^^^^^^^^^^^^^^^^
Julian Halle76ade82020-11-25 03:07:21 +0100241
Gyorgy Szing0b8b4fa2022-11-17 13:00:45 +0100242The project supports the following services:
Julian Halle76ade82020-11-25 03:07:21 +0100243
Gyorgy Szing0b8b4fa2022-11-17 13:00:45 +0100244 - Secure Storage
245 - Crypto
246 - Initial Attestation
247 - Smm Variable
248
Gyorgy Szingc6450a02024-10-28 10:44:29 +0100249Services may be accessed using client components that implement "`Psacertified v1.0 APIs`_". The project includes
250deployments that integrate `PSA API certification tests`_ with API clients to facilitate end-to-end PSA certification
251testing.
Gyorgy Szing0b8b4fa2022-11-17 13:00:45 +0100252
253Known limitations
254'''''''''''''''''
255
256 - Crypto key store partitioning by client is not yet supported.
257 - Discovery support is only currently integrated into the Crypto service provider. In case of services not supporting
258 this feature yet, communication parameters (e.g. maximum buffer size) and supported feature set needs to be hardcode
259 to the service provider and service client.
260
261Supported Trusted Environments
262''''''''''''''''''''''''''''''
263
264In the default configuration each service is deployed to a dedicated FF-A Secure Partition and executes isolated.
265Service implementations are platform, trusted environment and service deployment agonistic. With appropriate enablement
266work services can be enabled to work in any combination of these.
267
268The reference integration uses the SPMC implemented in OP-TEE OS to manage TS SPs. This release supports `OP-TEE v3.19`_.
269
270Supported Integration Systems
271'''''''''''''''''''''''''''''
272
Gyorgy Szingc6450a02024-10-28 10:44:29 +0100273The reference solution uses the OP-TEE integration methodology. This relies on the google repo tool for high-level
274dependency management and a set of makefiles to capture the build configuration information. For details please refer to
Gyorgy Szing0b8b4fa2022-11-17 13:00:45 +0100275`OP-TEE git repo documentation`_.
276
277The project is officially enabled in `Yocto meta-arm`_.
278
279Supported Target Platforms
280''''''''''''''''''''''''''
281
282The only reference platform supported by this release is the `AEM FVP`_ build using the OP-TEE integration method.
283
284Known limitations:
285
286 - Non-volatile backend secure storage is not currently provided.
287
Gyorgy Szing0b8b4fa2022-11-17 13:00:45 +0100288Test Report
289^^^^^^^^^^^
290
Imre Kis92eeced2024-01-31 13:38:57 +0100291Please find the Test Report covering this release in the `project wiki`_.
Gyorgy Szing0b8b4fa2022-11-17 13:00:45 +0100292
293
Julian Halle76ade82020-11-25 03:07:21 +0100294--------------
295
Gyorgy Szingdc6f04f2024-11-14 12:06:38 +0100296.. _`FF-A Specification v1.1`: https://developer.arm.com/documentation/den0077/e
Gyorgy Szing0b8b4fa2022-11-17 13:00:45 +0100297.. _`Psacertified v1.0 APIs`: https://www.psacertified.org/development-resources/building-in-security/specifications-implementations/
298.. _`OP-TEE v3.19`: https://github.com/OP-TEE/optee_os/tree/3.19.0
299.. _`Yocto meta-arm` : https://gitlab.oss.arm.com/engineering/yocto/meta-arm/-/tree/master/meta-arm/recipes-security/trusted-services
Imre Kis92eeced2024-01-31 13:38:57 +0100300.. _`project wiki`: https://github.com/Trusted-Services/trusted-services/wiki/Trusted-Services-test-reports
Gabor Toth4fc6d9e2024-07-12 10:09:18 +0200301.. _`AEM FVP`: https://developer.arm.com/-/media/Files/downloads/ecosystem-models/FVP_Base_RevC-2xAEMvA_11.22_14_Linux64.tgz
Gyorgy Szing0b8b4fa2022-11-17 13:00:45 +0100302.. _`PSA API certification tests`: https://github.com/ARM-software/psa-arch-tests
303.. _`OP-TEE git repo documentation`: https://optee.readthedocs.io/en/latest/building/gits/build.html
Gyorgy Szing30731ce2023-09-27 12:24:18 +0200304.. _`Corstone-1000 product homepage`: https://developer.arm.com/Processors/Corstone-1000
305.. _`Arm FWU-A specification`: https://developer.arm.com/documentation/den0118
Gyorgy Szing08129852024-04-06 08:16:29 +0200306.. _`Trusted Services organization`: https://github.com/Trusted-Services
Gyorgy Szinge6b38462024-10-24 17:36:45 +0200307.. _`RD-1 AE`: https://developer.arm.com/Tools%20and%20Software/Arm%20Reference%20Design-1%20AE
Gyorgy Szingc6450a02024-10-28 10:44:29 +0100308.. _`PSA Certified Firmware Update API 1.0`: https://arm-software.github.io/psa-api/fwu/1.0/
Gyorgy Szing0b8b4fa2022-11-17 13:00:45 +0100309
Imre Kis92eeced2024-01-31 13:38:57 +0100310*Copyright (c) 2020-2024, Arm Limited and Contributors. All rights reserved.*
Julian Halle76ade82020-11-25 03:07:21 +0100311
312SPDX-License-Identifier: BSD-3-Clause