blob: a4ca47ae8e5f37eef8489081dd02a5779c3c324e [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 Szing30731ce2023-09-27 12:24:18 +02007Version 1.0.0
8-------------
9
10The first stabilised release of the project from previously prototype releases ready for product use.
11
12Feature Highlights
13^^^^^^^^^^^^^^^^^^
14
15- Introduce the :doc:`Block Storage Service </services/block-storage-service-description>`. The Block Storage service
16 can be used to share a block-oriented storage device such as a QSPI flash between a set of independent secure world
17 clients.
18
19- Introduce the :doc:`Firmware Update Service </services/fwu/index>`. The FWU service implements the Update Agent
20 defined in the `Arm FWU-A specification`_ and allows replacing FW components with newer versions.
21
22- Refactor FF-A UUID policy. Reinterpret the FF-A UUID to identify the protocol supported by TS SP instead of the
23 service. This removes the maintenance burden of keeping an up to date UUID list in the service locator. All SPs start
24 using the same protocol UUID, and implement a new discovery service (see the next point).
25
26- Overhaul the RPC protocol. The main driver is to remove the single shared memory region limitation, which does not
27 allow separating shared regions of clients running over Linux in the user-space. The second driver is to add
28 versioning support to the RPC layer.
29
30 - Allow multiple shared memory regions between endpoints.
31 - Implement the discovery service in the RPC layer.
32 - Allow assigning a UUID to interfaces. This mechanism replaces the protocol identifier used earlier. Each protocol
33 of a service is represented as a dedicated interface.
34 - Add versioning support to the RPC layer.
35
36- Refactor the discovery service. The is removing the runtime overhead of memory sharing during the discovery and
37 decreases code size and duplication using the same code for service discovery.
38
39 - Implement the discovery service in the RPC layer for efficiency reasons.
40 - Implement service identity discovery for all services.
41 - Remove the encoding type entity and use service UUIDs to represent the serialization type.
42 - Service property discovery is to be implemented in the future.
43
44- Add support for the Corstone-1000 platform. For more information about this platform please see: `Corstone-1000 product homepage`_
45
46- SPs now indicate support of :term:`Normal World` interrupt preemption capability in their SP manifest and allow the SPMC to enable
47 preemption if possible. This removes NWd interrupts being disabled for long periods due to long service calls.
48
49- Add support for the Armv8-A CRC32 feature for :term:`Secure World` and :term:`Normal World` components.
50
51- Extend FF-A support with:
52
53 - FF-A v1.1 boot protocol between the SPM and SPs.
54 - FF-A v1.2 FFA_CONSOLE_LOG call. This allows SPs to emit log messages in an SPMC agonistic way.
55
56- Improve the build system to allow setting the build steps of external components to be verbose.
57
58- Add support for runtime (dynamic) psa-acs test case configuration.
59
60Updated external components
61^^^^^^^^^^^^^^^^^^^^^^^^^^^
62
63- MbedTLS version integration into the Crypto service is updated to v3.4.0.
64- The PSA Arch test is updated to version `74dc6646ff594e131a726a5305aba77bac30eceb`.
65
66Breaking changes
67^^^^^^^^^^^^^^^^
68
69- The new RPC ABI is not backwards compatible and needs recent version of all depending components.
70
71Resolved issues
72^^^^^^^^^^^^^^^
73
74- The new RPC version allows having multiple shared memory regions between endpoints. This allows each NWd client
75 running in Linux user-space to use a dedicated buffer.
76
77Known limitations
78^^^^^^^^^^^^^^^^^
79
80 - Crypto key store partitioning by client is not yet supported. This means multiple clients running at the same FF-A
81 endpoint use a shared key space.
82 - The full firmware update process implementation and testing is work-in-progress. The FWU process relies on the
83 cooperation of multiple FW components owned by multiple FW projects. Some 3rd party components do not implement the
84 needed features yet and thus, the FWU service was validated in "isolation" and exercised by TS test on the FVP
85 platform and on the host PC only.
86 - Service property discovery is not implemented yet.
87 - Discovering the maximum payload size of a service is not supported yet and buffer sizes are hardcoded.
88
Gyorgy Szing0b8b4fa2022-11-17 13:00:45 +010089Version 1.0.0-Beta
90------------------
Julian Halle76ade82020-11-25 03:07:21 +010091
Gyorgy Szing0b8b4fa2022-11-17 13:00:45 +010092The first tagged release of the project.
Julian Halle76ade82020-11-25 03:07:21 +010093
Gyorgy Szing0b8b4fa2022-11-17 13:00:45 +010094Feature Highlights
95^^^^^^^^^^^^^^^^^^
Julian Halle76ade82020-11-25 03:07:21 +010096
Gyorgy Szing0b8b4fa2022-11-17 13:00:45 +010097The project supports the following services:
Julian Halle76ade82020-11-25 03:07:21 +010098
Gyorgy Szing0b8b4fa2022-11-17 13:00:45 +010099 - Secure Storage
100 - Crypto
101 - Initial Attestation
102 - Smm Variable
103
104Services may be accessed using client components that implement "`Psacertified v1.0 APIs`_". The project includes deployments
105that integrate `PSA API certification tests`_ with API clients to facilitate end-to-end PSA certification testing.
106
107Known limitations
108'''''''''''''''''
109
110 - Crypto key store partitioning by client is not yet supported.
111 - Discovery support is only currently integrated into the Crypto service provider. In case of services not supporting
112 this feature yet, communication parameters (e.g. maximum buffer size) and supported feature set needs to be hardcode
113 to the service provider and service client.
114
115Supported Trusted Environments
116''''''''''''''''''''''''''''''
117
118In the default configuration each service is deployed to a dedicated FF-A Secure Partition and executes isolated.
119Service implementations are platform, trusted environment and service deployment agonistic. With appropriate enablement
120work services can be enabled to work in any combination of these.
121
122The reference integration uses the SPMC implemented in OP-TEE OS to manage TS SPs. This release supports `OP-TEE v3.19`_.
123
124Supported Integration Systems
125'''''''''''''''''''''''''''''
126
127The reference solution uses the OP-TEE integration methodology. This relies on the google repo tool for high-level dependency
128management and a set of makefiles to capture the build configuration information. For details please refer to
129`OP-TEE git repo documentation`_.
130
131The project is officially enabled in `Yocto meta-arm`_.
132
133Supported Target Platforms
134''''''''''''''''''''''''''
135
136The only reference platform supported by this release is the `AEM FVP`_ build using the OP-TEE integration method.
137
138Known limitations:
139
140 - Non-volatile backend secure storage is not currently provided.
141
Gyorgy Szing0b8b4fa2022-11-17 13:00:45 +0100142Test Report
143^^^^^^^^^^^
144
145Please find the Test Report covering this release in the `tf.org wiki`_.
146
147
Julian Halle76ade82020-11-25 03:07:21 +0100148--------------
149
Gyorgy Szing0b8b4fa2022-11-17 13:00:45 +0100150.. _`FF-A Specification v1.0`: https://developer.arm.com/documentation/den0077/a
151.. _`Psacertified v1.0 APIs`: https://www.psacertified.org/development-resources/building-in-security/specifications-implementations/
152.. _`OP-TEE v3.19`: https://github.com/OP-TEE/optee_os/tree/3.19.0
153.. _`Yocto meta-arm` : https://gitlab.oss.arm.com/engineering/yocto/meta-arm/-/tree/master/meta-arm/recipes-security/trusted-services
154.. _`tf.org wiki`: https://developer.trustedfirmware.org/w/trusted-services/test-reports/v1.0.0-beta/
155.. _`AEM FVP`: https://developer.arm.com/-/media/Files/downloads/ecosystem-models/FVP_Base_RevC-2xAEMvA_11.18_16_Linux64.tgz
156.. _`PSA API certification tests`: https://github.com/ARM-software/psa-arch-tests
157.. _`OP-TEE git repo documentation`: https://optee.readthedocs.io/en/latest/building/gits/build.html
Gyorgy Szing30731ce2023-09-27 12:24:18 +0200158.. _`Corstone-1000 product homepage`: https://developer.arm.com/Processors/Corstone-1000
159.. _`Arm FWU-A specification`: https://developer.arm.com/documentation/den0118
Gyorgy Szing0b8b4fa2022-11-17 13:00:45 +0100160
Gyorgy Szing30731ce2023-09-27 12:24:18 +0200161*Copyright (c) 2020-2023, Arm Limited and Contributors. All rights reserved.*
Julian Halle76ade82020-11-25 03:07:21 +0100162
163SPDX-License-Identifier: BSD-3-Clause