Julian Hall | e76ade8 | 2020-11-25 03:07:21 +0100 | [diff] [blame] | 1 | Change Log & Release Notes |
| 2 | ========================== |
| 3 | |
Gyorgy Szing | 0b8b4fa | 2022-11-17 13:00:45 +0100 | [diff] [blame] | 4 | This document contains a summary of the new features, changes, fixes and known issues in each release of Trusted |
| 5 | Services. |
Julian Hall | e76ade8 | 2020-11-25 03:07:21 +0100 | [diff] [blame] | 6 | |
Gyorgy Szing | 0812985 | 2024-04-06 08:16:29 +0200 | [diff] [blame] | 7 | Version <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 | |
| 15 | Feature 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 Szing | 4a0829d | 2024-04-19 09:34:53 +0200 | [diff] [blame] | 26 | - 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 | |
| 30 | Deprecations |
| 31 | ^^^^^^^^^^^^ |
| 32 | |
| 33 | - This OpenAMP based psa_ipc implementation is deprecated and will be removed in the future. |
| 34 | |
Gyorgy Szing | 0812985 | 2024-04-06 08:16:29 +0200 | [diff] [blame] | 35 | |
| 36 | Updated external components |
| 37 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ |
| 38 | |
| 39 | - MbedTLS version int the Crypto service is updated to v3.5.1. |
Gyorgy Szing | 4a0829d | 2024-04-19 09:34:53 +0200 | [diff] [blame] | 40 | - NanoPB has been upgraded to v0.4.8. |
Gyorgy Szing | 0812985 | 2024-04-06 08:16:29 +0200 | [diff] [blame] | 41 | |
| 42 | Breaking changes |
| 43 | ^^^^^^^^^^^^^^^^ |
| 44 | |
Gyorgy Szing | 4a0829d | 2024-04-19 09:34:53 +0200 | [diff] [blame] | 45 | |
Gyorgy Szing | 0812985 | 2024-04-06 08:16:29 +0200 | [diff] [blame] | 46 | Resolved 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 | |
| 53 | Known 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 Szing | 30731ce | 2023-09-27 12:24:18 +0200 | [diff] [blame] | 61 | Version 1.0.0 |
| 62 | ------------- |
| 63 | |
| 64 | The first stabilised release of the project from previously prototype releases ready for product use. |
| 65 | |
| 66 | Feature 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 | |
| 114 | Updated 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 | |
| 120 | Breaking changes |
| 121 | ^^^^^^^^^^^^^^^^ |
| 122 | |
| 123 | - The new RPC ABI is not backwards compatible and needs recent version of all depending components. |
| 124 | |
| 125 | Resolved 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 | |
| 131 | Known 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 Szing | 0b8b4fa | 2022-11-17 13:00:45 +0100 | [diff] [blame] | 143 | Version 1.0.0-Beta |
| 144 | ------------------ |
Julian Hall | e76ade8 | 2020-11-25 03:07:21 +0100 | [diff] [blame] | 145 | |
Gyorgy Szing | 0b8b4fa | 2022-11-17 13:00:45 +0100 | [diff] [blame] | 146 | The first tagged release of the project. |
Julian Hall | e76ade8 | 2020-11-25 03:07:21 +0100 | [diff] [blame] | 147 | |
Gyorgy Szing | 0b8b4fa | 2022-11-17 13:00:45 +0100 | [diff] [blame] | 148 | Feature Highlights |
| 149 | ^^^^^^^^^^^^^^^^^^ |
Julian Hall | e76ade8 | 2020-11-25 03:07:21 +0100 | [diff] [blame] | 150 | |
Gyorgy Szing | 0b8b4fa | 2022-11-17 13:00:45 +0100 | [diff] [blame] | 151 | The project supports the following services: |
Julian Hall | e76ade8 | 2020-11-25 03:07:21 +0100 | [diff] [blame] | 152 | |
Gyorgy Szing | 0b8b4fa | 2022-11-17 13:00:45 +0100 | [diff] [blame] | 153 | - Secure Storage |
| 154 | - Crypto |
| 155 | - Initial Attestation |
| 156 | - Smm Variable |
| 157 | |
| 158 | Services may be accessed using client components that implement "`Psacertified v1.0 APIs`_". The project includes deployments |
| 159 | that integrate `PSA API certification tests`_ with API clients to facilitate end-to-end PSA certification testing. |
| 160 | |
| 161 | Known 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 | |
| 169 | Supported Trusted Environments |
| 170 | '''''''''''''''''''''''''''''' |
| 171 | |
| 172 | In the default configuration each service is deployed to a dedicated FF-A Secure Partition and executes isolated. |
| 173 | Service implementations are platform, trusted environment and service deployment agonistic. With appropriate enablement |
| 174 | work services can be enabled to work in any combination of these. |
| 175 | |
| 176 | The reference integration uses the SPMC implemented in OP-TEE OS to manage TS SPs. This release supports `OP-TEE v3.19`_. |
| 177 | |
| 178 | Supported Integration Systems |
| 179 | ''''''''''''''''''''''''''''' |
| 180 | |
| 181 | The reference solution uses the OP-TEE integration methodology. This relies on the google repo tool for high-level dependency |
| 182 | management and a set of makefiles to capture the build configuration information. For details please refer to |
| 183 | `OP-TEE git repo documentation`_. |
| 184 | |
| 185 | The project is officially enabled in `Yocto meta-arm`_. |
| 186 | |
| 187 | Supported Target Platforms |
| 188 | '''''''''''''''''''''''''' |
| 189 | |
| 190 | The only reference platform supported by this release is the `AEM FVP`_ build using the OP-TEE integration method. |
| 191 | |
| 192 | Known limitations: |
| 193 | |
| 194 | - Non-volatile backend secure storage is not currently provided. |
| 195 | |
Gyorgy Szing | 0b8b4fa | 2022-11-17 13:00:45 +0100 | [diff] [blame] | 196 | Test Report |
| 197 | ^^^^^^^^^^^ |
| 198 | |
Imre Kis | 92eeced | 2024-01-31 13:38:57 +0100 | [diff] [blame] | 199 | Please find the Test Report covering this release in the `project wiki`_. |
Gyorgy Szing | 0b8b4fa | 2022-11-17 13:00:45 +0100 | [diff] [blame] | 200 | |
| 201 | |
Julian Hall | e76ade8 | 2020-11-25 03:07:21 +0100 | [diff] [blame] | 202 | -------------- |
| 203 | |
Gyorgy Szing | 0b8b4fa | 2022-11-17 13:00:45 +0100 | [diff] [blame] | 204 | .. _`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 Kis | 92eeced | 2024-01-31 13:38:57 +0100 | [diff] [blame] | 208 | .. _`project wiki`: https://github.com/Trusted-Services/trusted-services/wiki/Trusted-Services-test-reports |
Gabor Toth | 4fc6d9e | 2024-07-12 10:09:18 +0200 | [diff] [blame^] | 209 | .. _`AEM FVP`: https://developer.arm.com/-/media/Files/downloads/ecosystem-models/FVP_Base_RevC-2xAEMvA_11.22_14_Linux64.tgz |
Gyorgy Szing | 0b8b4fa | 2022-11-17 13:00:45 +0100 | [diff] [blame] | 210 | .. _`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 Szing | 30731ce | 2023-09-27 12:24:18 +0200 | [diff] [blame] | 212 | .. _`Corstone-1000 product homepage`: https://developer.arm.com/Processors/Corstone-1000 |
| 213 | .. _`Arm FWU-A specification`: https://developer.arm.com/documentation/den0118 |
Gyorgy Szing | 0812985 | 2024-04-06 08:16:29 +0200 | [diff] [blame] | 214 | .. _`Trusted Services organization`: https://github.com/Trusted-Services |
| 215 | |
Gyorgy Szing | 0b8b4fa | 2022-11-17 13:00:45 +0100 | [diff] [blame] | 216 | |
Imre Kis | 92eeced | 2024-01-31 13:38:57 +0100 | [diff] [blame] | 217 | *Copyright (c) 2020-2024, Arm Limited and Contributors. All rights reserved.* |
Julian Hall | e76ade8 | 2020-11-25 03:07:21 +0100 | [diff] [blame] | 218 | |
| 219 | SPDX-License-Identifier: BSD-3-Clause |