blob: b2b0b580347d41aa42031c0be891e8092112376a [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 Szing08129852024-04-06 08:16:29 +02007Version <next>
8--------------
9
10- Trustedfirmware.org has deprecated Phabricator, the wiki and issue tracking provider. This functionality has been
11 moved to GitHub. See the `Trusted Services organization`_. The project wiki has been moved
12 `to here <https://github.com/Trusted-Services/trusted-services/wiki>`_
13
14
15Feature Highlights
16^^^^^^^^^^^^^^^^^^
17
18- Add documentation covering the :ref:`OP-TEE SPMC tests`.
19- Extend the :ref:`UEFI SMM Services` to support Authenticated Variables.
20- Introduce a work in progress RPMB implementation and integrate it to the Block Storage service. The current
21 configuration uses an SWd RAM buffer for data storage, and is not connected to the RPMB provider running in the NWd.
22 This is the first baseline to implement a scenario where the RPMB owner is an S-EL0 SP.
23- Introduce the :ref:`Logging Service`.
24- Add crypto key store partitioning support to the Crypto Service. This feature allows isolating clients running in
25 different SPs.
Gyorgy Szing4a0829d2024-04-19 09:34:53 +020026- Add the "RSS Com" protocol. RSS Com is a new protocol used between secure partitions and security subsystems like the
27 Secure Enclave on Corstone-1000 or RSS on Kronos.
28
29
30Deprecations
31^^^^^^^^^^^^
32
33- This OpenAMP based psa_ipc implementation is deprecated and will be removed in the future.
34
Gyorgy Szing08129852024-04-06 08:16:29 +020035
36Updated external components
37^^^^^^^^^^^^^^^^^^^^^^^^^^^
38
39- MbedTLS version int the Crypto service is updated to v3.5.1.
Gyorgy Szing4a0829d2024-04-19 09:34:53 +020040- NanoPB has been upgraded to v0.4.8.
Gyorgy Szing08129852024-04-06 08:16:29 +020041
42Breaking changes
43^^^^^^^^^^^^^^^^
44
Gyorgy Szing4a0829d2024-04-19 09:34:53 +020045
Gyorgy Szing08129852024-04-06 08:16:29 +020046Resolved issues
47^^^^^^^^^^^^^^^
48
49- Fix psa-ps-api-test test case 414.
50- Crypto key store partitioning has been implemented, and clients accessing the crypto service from different FF-A
51 endpoints can not access each other's assets anymore.
52
53Known limitations
54^^^^^^^^^^^^^^^^^
55
56- UEFI private variable authentication is not implemented in an UEFI compliant way. Currently such variables are
57 authenticated by the certificates stored on the `DB` variable which is incorrect. Instead an implementation defined
58 variable should be used to store the needed certificates. The plan is to follow ``EDK2`` use ``certdb`` and
59 ``certdbv`` variables for this purpose.
60
Gyorgy Szing30731ce2023-09-27 12:24:18 +020061Version 1.0.0
62-------------
63
64The first stabilised release of the project from previously prototype releases ready for product use.
65
66Feature Highlights
67^^^^^^^^^^^^^^^^^^
68
69- Introduce the :doc:`Block Storage Service </services/block-storage-service-description>`. The Block Storage service
70 can be used to share a block-oriented storage device such as a QSPI flash between a set of independent secure world
71 clients.
72
73- Introduce the :doc:`Firmware Update Service </services/fwu/index>`. The FWU service implements the Update Agent
74 defined in the `Arm FWU-A specification`_ and allows replacing FW components with newer versions.
75
76- Refactor FF-A UUID policy. Reinterpret the FF-A UUID to identify the protocol supported by TS SP instead of the
77 service. This removes the maintenance burden of keeping an up to date UUID list in the service locator. All SPs start
78 using the same protocol UUID, and implement a new discovery service (see the next point).
79
80- Overhaul the RPC protocol. The main driver is to remove the single shared memory region limitation, which does not
81 allow separating shared regions of clients running over Linux in the user-space. The second driver is to add
82 versioning support to the RPC layer.
83
84 - Allow multiple shared memory regions between endpoints.
85 - Implement the discovery service in the RPC layer.
86 - Allow assigning a UUID to interfaces. This mechanism replaces the protocol identifier used earlier. Each protocol
87 of a service is represented as a dedicated interface.
88 - Add versioning support to the RPC layer.
89
90- Refactor the discovery service. The is removing the runtime overhead of memory sharing during the discovery and
91 decreases code size and duplication using the same code for service discovery.
92
93 - Implement the discovery service in the RPC layer for efficiency reasons.
94 - Implement service identity discovery for all services.
95 - Remove the encoding type entity and use service UUIDs to represent the serialization type.
96 - Service property discovery is to be implemented in the future.
97
98- Add support for the Corstone-1000 platform. For more information about this platform please see: `Corstone-1000 product homepage`_
99
100- SPs now indicate support of :term:`Normal World` interrupt preemption capability in their SP manifest and allow the SPMC to enable
101 preemption if possible. This removes NWd interrupts being disabled for long periods due to long service calls.
102
103- Add support for the Armv8-A CRC32 feature for :term:`Secure World` and :term:`Normal World` components.
104
105- Extend FF-A support with:
106
107 - FF-A v1.1 boot protocol between the SPM and SPs.
108 - FF-A v1.2 FFA_CONSOLE_LOG call. This allows SPs to emit log messages in an SPMC agonistic way.
109
110- Improve the build system to allow setting the build steps of external components to be verbose.
111
112- Add support for runtime (dynamic) psa-acs test case configuration.
113
114Updated external components
115^^^^^^^^^^^^^^^^^^^^^^^^^^^
116
117- MbedTLS version integration into the Crypto service is updated to v3.4.0.
118- The PSA Arch test is updated to version `74dc6646ff594e131a726a5305aba77bac30eceb`.
119
120Breaking changes
121^^^^^^^^^^^^^^^^
122
123- The new RPC ABI is not backwards compatible and needs recent version of all depending components.
124
125Resolved issues
126^^^^^^^^^^^^^^^
127
128- The new RPC version allows having multiple shared memory regions between endpoints. This allows each NWd client
129 running in Linux user-space to use a dedicated buffer.
130
131Known limitations
132^^^^^^^^^^^^^^^^^
133
134 - Crypto key store partitioning by client is not yet supported. This means multiple clients running at the same FF-A
135 endpoint use a shared key space.
136 - The full firmware update process implementation and testing is work-in-progress. The FWU process relies on the
137 cooperation of multiple FW components owned by multiple FW projects. Some 3rd party components do not implement the
138 needed features yet and thus, the FWU service was validated in "isolation" and exercised by TS test on the FVP
139 platform and on the host PC only.
140 - Service property discovery is not implemented yet.
141 - Discovering the maximum payload size of a service is not supported yet and buffer sizes are hardcoded.
142
Gyorgy Szing0b8b4fa2022-11-17 13:00:45 +0100143Version 1.0.0-Beta
144------------------
Julian Halle76ade82020-11-25 03:07:21 +0100145
Gyorgy Szing0b8b4fa2022-11-17 13:00:45 +0100146The first tagged release of the project.
Julian Halle76ade82020-11-25 03:07:21 +0100147
Gyorgy Szing0b8b4fa2022-11-17 13:00:45 +0100148Feature Highlights
149^^^^^^^^^^^^^^^^^^
Julian Halle76ade82020-11-25 03:07:21 +0100150
Gyorgy Szing0b8b4fa2022-11-17 13:00:45 +0100151The project supports the following services:
Julian Halle76ade82020-11-25 03:07:21 +0100152
Gyorgy Szing0b8b4fa2022-11-17 13:00:45 +0100153 - Secure Storage
154 - Crypto
155 - Initial Attestation
156 - Smm Variable
157
158Services may be accessed using client components that implement "`Psacertified v1.0 APIs`_". The project includes deployments
159that integrate `PSA API certification tests`_ with API clients to facilitate end-to-end PSA certification testing.
160
161Known limitations
162'''''''''''''''''
163
164 - Crypto key store partitioning by client is not yet supported.
165 - Discovery support is only currently integrated into the Crypto service provider. In case of services not supporting
166 this feature yet, communication parameters (e.g. maximum buffer size) and supported feature set needs to be hardcode
167 to the service provider and service client.
168
169Supported Trusted Environments
170''''''''''''''''''''''''''''''
171
172In the default configuration each service is deployed to a dedicated FF-A Secure Partition and executes isolated.
173Service implementations are platform, trusted environment and service deployment agonistic. With appropriate enablement
174work services can be enabled to work in any combination of these.
175
176The reference integration uses the SPMC implemented in OP-TEE OS to manage TS SPs. This release supports `OP-TEE v3.19`_.
177
178Supported Integration Systems
179'''''''''''''''''''''''''''''
180
181The reference solution uses the OP-TEE integration methodology. This relies on the google repo tool for high-level dependency
182management and a set of makefiles to capture the build configuration information. For details please refer to
183`OP-TEE git repo documentation`_.
184
185The project is officially enabled in `Yocto meta-arm`_.
186
187Supported Target Platforms
188''''''''''''''''''''''''''
189
190The only reference platform supported by this release is the `AEM FVP`_ build using the OP-TEE integration method.
191
192Known limitations:
193
194 - Non-volatile backend secure storage is not currently provided.
195
Gyorgy Szing0b8b4fa2022-11-17 13:00:45 +0100196Test Report
197^^^^^^^^^^^
198
Imre Kis92eeced2024-01-31 13:38:57 +0100199Please find the Test Report covering this release in the `project wiki`_.
Gyorgy Szing0b8b4fa2022-11-17 13:00:45 +0100200
201
Julian Halle76ade82020-11-25 03:07:21 +0100202--------------
203
Gyorgy Szing0b8b4fa2022-11-17 13:00:45 +0100204.. _`FF-A Specification v1.0`: https://developer.arm.com/documentation/den0077/a
205.. _`Psacertified v1.0 APIs`: https://www.psacertified.org/development-resources/building-in-security/specifications-implementations/
206.. _`OP-TEE v3.19`: https://github.com/OP-TEE/optee_os/tree/3.19.0
207.. _`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 +0100208.. _`project wiki`: https://github.com/Trusted-Services/trusted-services/wiki/Trusted-Services-test-reports
Gabor Toth4fc6d9e2024-07-12 10:09:18 +0200209.. _`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 +0100210.. _`PSA API certification tests`: https://github.com/ARM-software/psa-arch-tests
211.. _`OP-TEE git repo documentation`: https://optee.readthedocs.io/en/latest/building/gits/build.html
Gyorgy Szing30731ce2023-09-27 12:24:18 +0200212.. _`Corstone-1000 product homepage`: https://developer.arm.com/Processors/Corstone-1000
213.. _`Arm FWU-A specification`: https://developer.arm.com/documentation/den0118
Gyorgy Szing08129852024-04-06 08:16:29 +0200214.. _`Trusted Services organization`: https://github.com/Trusted-Services
215
Gyorgy Szing0b8b4fa2022-11-17 13:00:45 +0100216
Imre Kis92eeced2024-01-31 13:38:57 +0100217*Copyright (c) 2020-2024, Arm Limited and Contributors. All rights reserved.*
Julian Halle76ade82020-11-25 03:07:21 +0100218
219SPDX-License-Identifier: BSD-3-Clause