blob: d27765200fbfd3a6e322fe872869ee4a383f94c1 [file] [log] [blame]
Soby Mathewb4c6df42022-11-09 11:13:29 +00001.. SPDX-License-Identifier: BSD-3-Clause
2.. SPDX-FileCopyrightText: Copyright TF-RMM Contributors.
3
4############################
5Change-log and Release notes
6############################
7
8******
Soby Mathewbabddc92024-11-18 15:17:31 +00009v0.6.0
10******
11
12The following sections have the details on the release. This release has been
13verified with `TF-A v2.12`_ release.
14
15============================
16New features in this release
17============================
18
19- Changes to align to `RMM v1.0 REL0 specification`_.
20
21- Support for alternative attestation token signing via EL3 which includes:
22
23 * A new config flag, ``ATTEST_EL3_TOKEN_SIGN``, is introduced.
24 * New RMM-EL3 interface APIs to query EL3_FEATURES, push and pull
25 EL3 Attest token sign requests and retrieve Realm attestation
26 public key from EL3.
27 * Add support in fake_host architecture for validating the attestation
28 flow.
29 * Patch to enable EL3 based signing flow in t_cose.
30
31======================================
32Bug fixes/improvements in this release
33======================================
34
35- Reduce memory footprint of RMM : redefine granule structure to reduce granule
36 struct from 4 bytes to 2 bytes.
37
38- Add support for FEAT_DoubleFault2 for Realms.
39
40- Improve RMM performance : remove broadcast invalidates when mapping and
41 unmapping slot buffers.
42
43- RMM hardening : invalidate caches during boot.
44
45- Add libspdm version 3.4.0 as an external dependency to TF-RMM.
46
47- Enable FEAT_DIT on a fine-grained basis in RMM.
48
49- Upgrade Mbed TLS to v3.6.0.
50
51- Add binary search algorithm to improve DRAM bank lookup. As a result,
52 the platform API implementation can be made common for all platforms.
53
54- Add capability to `xlat` library to map UNPRIV memory in preparation
55 for EL0 app support.
56
57- Refactor attestation component to allow RMM to continue functioning even
58 if attestation initialization fails.
59
60- Enhance lib/attestation component to handle platform token request in
61 hunks. This allows to transfer tokens larger than 4KB from EL3
62 (`issue#24`_).
63
64- Rename previous build option RMM_CCA_DA to RMM_V1_1. Some base
65 support patches related to `RMM v1.1 Alpha 9 specification`_ are also
66 merged, which includes:
67
68 * Update RMI feature register0 with Device Assignment(DA) fields.
69 * Add aarch64_stub libraries required by libspdm.
70 * Define PDEV AUX granules map/unmap helpers.
71 * Add DA specific granule state.
72
73- Fix checksum calculation of `console_info` data structure in RMM-EL3 boot
74 manifest.
75
76 * Note that this is a breaking change and EL3 firmware needs to be updated
77 to send the correct checksum.
78
79- Fix RTT_READ_ENTRY to set x3 correctly.
80
81- Fix deadlock in RMI_REC_CREATE.
82
83 * An error when aux granules are locked during REC_CREATE would have
84 resulted in a deadlock in RMM. This is fixed.
85
86- Fix error handling in attest key init sequence.
87
88- Fix checks on s2tte_get_ripas() in lib/s2tt.
89
90- Fix simd_context_init() call for SIMD_OWNER_NWD in unit tests.
91
92- Fix rmm-runtime to add `sb` instruction on realm_exit().
93
94- Fix outstanding Misra C 2012 issues in the source code.
95
96- Refactor `lib/attestation` to manage token state within the component.
97
98- Fix runtime to unlock RTT if the RTT walk succeeds in a corner case.
99
100- Add build option for plat token buffer size.
101
102- Fix calculation of VMPIDR_EL2 value to align with the specification.
103
104- Fix to ensure that physical address <= 48 bits for LPA2 disabled Realm
105 when running on a LPA2 capable hardware.
106
107- Remove hard-coded configuration of VTRC_EL2.PS.
108
109- Add workaround for Clang 18.x failure.
110
111- Fix usage of psa_hash_finish() in lib/measurement component.
112
113- Clear ISV bit for non emulatable data abort in rec->last_run_info.esr.
114
115- Fix to adjust heap size based on MAX_CPUS.
116
117- Revert setting of TSW bit in Realm HCR_EL2 flags.
118
119- Fix error handling in attest_init_realm_attestation_key() sequence
120 (`issue#25`_).
121
122==================================
123Build/Testing/Tooling improvements
124==================================
125
126- Add shrinkwrap overlays to facilitate RMM development and testing.
127
128- Add git helper to apply patches in submodule.
129
130- Add unittests for the s2tt library.
131
132- Enhance Cppcheck build target to fail the build if static
133 analysis errors are detected.
134
135=========
136Platforms
137=========
138
139- Rename the Rdfremont platform config to RD-V3.
140
141- Add support for QEMU SBSA platform.
142
143============================
144Known issues and limitations
145============================
146
147- Some capabilities mentioned in `RMM v1.0 REL0 specification`_ are
148 restricted or absent in TF-RMM as listed below:
149
150 * The support for Self-hosted debug in Realms is not implemented (`issue#23`_).
151
152=================
153Upcoming features
154=================
155
156- Prototype new features as described in `RMM v1.1 Alpha 9 specification`_.
157
158 * Realm Device Assignment - A feature which allows devices to be assigned to Realms,
159 attested and granted permission to access Realm owned memory.
160 * Planes - A feature which allows a Realm to be divided into multiple
161 mutually isolated execution environments, called Planes.
162 * Support FEAT_MEC in the Realm world.
163
164- Continue to enhance CBMC analysis to support more RMI commands.
165
166- Fuzz testing for RMM utilizing the `fake_host` architecture.
167
168- Implement support for Self-hosted debug in Realms.
169
170- Support Live Firmware Activation of RMM.
171
172- EL0 app support to run parts of RMM at EL0.
173
174.. _TF-A v2.12: https://git.trustedfirmware.org/TF-A/trusted-firmware-a/+/refs/tags/v2.12.0
175.. _RMM v1.0 REL0 specification: https://developer.arm.com/documentation/den0137/1-0rel0/?lang=en
176.. _RMM v1.1 Alpha 9 specification: https://developer.arm.com/-/cdn-downloads/permalink/Architectures/Armv9/DEN0137_1.1-alp9.zip
177
178******
Soby Mathew14c66842024-05-15 14:18:25 +0100179v0.5.0
180******
181
182The following sections have the details on the release. This release has been
183verified with `TF-A v2.11`_ release.
184
185============================
186New features in this release
187============================
188
189- Enabled FEAT_DIT for RMM execution.
190
191- Added support for FEAT_LPA2 to S2TT component.
192
193 * This enables creating Realms with LPA2 support.
194
195- Introduced the dynamic console framework for RMM.
196
197 * This framework allows EL3 to dynamically describe the console for use by
198 RMM and configure the console during boot.
199
200- Introduced the ``arm`` platform layer.
201
202 * The common ``arm`` platform is added which can be used
203 by any compatible SoC. This allows reuse of code across multiple
204 SoCs and possibly a single binary across them.
205 * Both FVP and QEMU are migrated to this common ``arm`` platform layer and
206 only requires platform specific defconfig file to configure RMM.
207
208======================================
209Bug fixes/improvements in this release
210======================================
211
212- Improvements to Exception handling in RMM.
213
214 * Separated Exception Stack for RMM exceptions.
215 * Added crashlog of register values for R-EL2 exceptions.
216 * Added backtrace to exception handler.
217
218- Improvements to S2TT component in RMM.
219
220 * Several optimizations to S2TT component are done.
221 * MISRA errors are fixed.
222 * The component is moved to its own folder in `lib`.
223 * All S2TT APIs now accept `realm_s2_context` as an argument.
224 * Issue related to the NS attributes not being checked during FOLD is fixed.
225
226- Reduced the memory required for `struct granule`.
227
228 * The data structure is optimized such that it is 4 bytes in size
229 compared to the previous 16 bytes.
230
231- Use DC ZVA for granule zeroing instead of memset().
232
233- Allow RTT FOLD to level 1 as mandated by RMM specification.
234
235- Additional clang-tidy checks are enabled for the project.
236
237 * The clang-tidy configuration can be found in ``.clang-tidy`` file at the
238 the root of the source tree.
239 * The errors flagged by the static analysis are corrected and the project
240 expects 0 errors for clang-tidy checks.
241
242- Enabled alignment fault check in RMM.
243
244 * Enabled Alignment fault check in SCTLR_EL2 register when
245 RMM_FPU_USE_AT_REL2=OFF. Associated fixes for some data structures
246 are also done as part of this work.
247
248- Fixed MISRA C 2012 violations detected by Coverity scan.
249
250- Fix to report accurate breakpoint and watchpoint numbers via RMI_FEATURES.
251
252- Fix to properly initialize MDCR_EL2.HPMN for each REC.
253
254- Fix to inject SEA for Realm access outside IPA space.
255
256- Allocate parameters for RIM extension on stack rather than global data.
257
258- Fixed spinlock_acquire() implementation on the fake_host architecture.
259
260- Fix to add +nosve compiler option to prevent compiler from generating SVE
261 instructions.
262
263- Fix to use -march=armv9.2 option to build RMM depending on compiler support.
264
265- Fixed build issue for Yocto by adding system includes to the CMAKE search
266 path.
267
268- Fix to retry RDNR instruction if it fails during attestation initialization.
269
270- Refactored lib/realm component. This component is split now into 2 new
271 libraries: `lib/granule` and `lib/slot_buf`.
272
273- Fix to make RMI_INJECT_SEA flag mutually exclusive to RMI EMUL_MMIO flag
274 during RMI_REC_ENTER.
275
276==================================
277Build/Testing/Tooling improvements
278==================================
279
280- Extended CBMC analysis to more RMI commands:
281
282 * Added CBMC testbench and analysis for the following RMI APIs:
283 RMI_VERSION, RMI_FEATURES, RMI_REALM_ACTIVATE, RMI_REALM_DESTROY,
284 RMI_REC_AUX_COUNT, RMI_REC_DESTROY.
285 * Increased CBMC coverage for RMI_DELEGATE and RMI_UNDELEGATE APIs.
286 * Integrated cbmc-viewer tool to CBMC analysis.
287 * Added option to build with GCC.
288 * Added tooling to detect CBMC result differences. Added a script that
289 compares the CBMC results to the baseline summary and this helps to
290 detect additional CBMC failures from baseline results.
291 * An application note is added to the documentation to describe
292 the CBMC integration with the project.
293
294- Improvements to unit-tests in RMM.
295
296 * Added unit testing framework and unit tests to SIMD layer in RMM.
297
298- Improvements to Cppcheck static analysis.
299
300 * The Cppcheck was already integrated into the build system and more work
301 was done to bring it inline with other static checks in the project.
302 * Fixed violations detected by Cppcheck MISRA addon.
303 * An application note is added to describe the Cppcheck integration.
304
305- Changes to logging for Release build.
306
307 * The default Release build LOG_LEVEL is reduced to 20 (LOG_LEVEL_NOTICE).
308
309- Fixed the broken CMAKE Ninja Generator Multi-config build.
310
311=========
312Platforms
313=========
314
315- Added base support for RD-Fremont platform.
316
317 * RD-Fremont also use the ``arm`` platform layer and only needs a
318 defconfig file to configure RMM appropriately.
319
320============================
321Known issues and limitations
322============================
323
324- Some capabilities as mentioned in `RMM v1.0 EAC5 specification`_ are
325 restricted or absent in TF-RMM as listed below:
326
327 * The support for Self-hosted debug in Realms is not implemented (`issue#23`_).
328 * Although the RMM allows CCA attestation token sizes of larger than 4KB,
329 there is a limitation on the size of the Platform attestation token part.
330 On the RMM-EL3 interface, there is only a shared buffer of 4KB that is
331 currently shared on the FVP. This needs to be enhanced so that larger
332 platform token sizes can be tested (`issue#24`_).
333
334- The attest_init_realm_attestation_key() does not always reset the RMM to the correct
335 state on encountering an error (`issue#25`_).
336
337=================
338Upcoming features
339=================
340
341- Prototype new features as described in `RMM v1.1 Alpha specification`_.
342
343 * Realm Device Assignment - A feature which allows devices to be assigned to Realms,
344 attested and granted permission to access Realm owned memory.
345 * Planes - A feature which allows a Realm to be divided into multiple
346 mutually isolated execution environments, called Planes.
347
348- Add unit-tests for Stage 2 MMU code (s2tt).
349
350- Continue to Enhance CBMC analysis to more RMI commands.
351
352- Fuzz testing for RMM utilizing the `fake_host` architecture.
353
354- Integrate more static analyzers into RMM build system.
355
356- Implement support for Self-hosted debug in realms.
357
358- Support FEAT_MEC in RMM.
359
360.. _TF-A v2.11: https://git.trustedfirmware.org/TF-A/trusted-firmware-a/+/refs/tags/v2.11.0
361.. _RMM v1.1 Alpha specification: https://developer.arm.com/-/cdn-downloads/PDF/Architectures/DEN0137_1.1-alp5_rmm-arch_external.pdf?__token__=st=1714479850~exp=2029839850~hmac=cca7b8c22f7b94e6c929d53176ac57c51487558b73fb27e5c181f4cc7231a83b
362.. _issue#23: https://github.com/TF-RMM/tf-rmm/issues/23
363.. _issue#24: https://github.com/TF-RMM/tf-rmm/issues/24
364.. _issue#25: https://github.com/TF-RMM/tf-rmm/issues/25
365
366******
Soby Mathew273ecb72023-11-20 12:28:33 +0000367v0.4.0
368******
369
370The following sections have the details on the release. This release has been
371verified with `TF-A v2.10`_ release.
372
373============================
374New features in this release
375============================
376
377- Added initial partial support for analysing RMM source code with
378 CBMC (https://www.cprover.org/cbmc/).
379
380 * A new HOST_VARIANT, `host_cbmc`, has been introduced for this purpose.
381 * The CBMC testbench files and autogenerated files from RMM machine
382 readable specification are imported into the source tree.
383 * An application note for the same is added to the documentation.
384
385- Aligned the implementation to `RMM v1.0 EAC5 specification`_.
386
387 * The relevant tag for the alignment is `rmm-spec-v1.0-eac5`_.
388 * There is also an intermediate RMM v1.0 EAC2 alignment which
389 is tagged `rmm-spec-v1.0-eac2`_.
390
391- Supported save and restore of Non Secure SME context when Realms are
392 scheduled.
393
394 * The SIMD abstraction in RMM was reworked to cater for this requirement.
395 * Added support to emulate SME specific feature ID registers.
396 * Support injecting UNDEF exception into realm when SME is accessed
397 within it.
398 * Also RMM now can handle SVE hint bit as specified by SMCCC v1.3
399 specification.
400
401- Added `TF-RMM Threat Model`_ to the documentation.
402
403- Added capability to privately map the per-CPU stack.
404
405 * This contains any stack overflows to the particular CPU and prevents
406 a CPU from corrupting another CPU stack.
407
408- Added FEAT_PAUTH and FEAT_BTI support to RMM and also capability to
409 use FEAT_PAUTH within realms.
410
411- Migrate to PSA Crypto API for attestation and measurement functionality
412 in RMM.
413
414- Added FEAT_LPA2 support to Stage 1 MMU code (lib/xlat) in RMM.
415
416- Added Stage 1 MMU setup design document.
417
418==================================
419Build/Testing/Tooling improvements
420==================================
421
422- Added static commit message checker which enforces the commit message
423 guidelines mandated for the project.
424
425- Added clang-tidy checker as one of the static analyzers.
426
427 * Several fixes to errors flagged by the static checker have been fixed.
428
429- Fixed issues found in xlat lib unittests.
430
431- Added github workflow for git submodules so that the TF-RMM dependencies
432 display correctly in github.
433
434- Added github workflow to configure an automatic message for PRs on GitHub
435 and also build and run RMM unittests for every update of the `main` branch.
436
437- Added FEAT_LPA2 unit tests for lib/xlat module.
438
439- Added RSI logger unit tests.
440
441=========
442Platforms
443=========
444
445- The support for QEMU virt platform was merged.
446
447======================================
448Bug fixes/improvements in this release
449======================================
450
451- Fixed issue with TLB invalidations for unprotected mappings during
452 RMI_RTT_DESTROY command.
453
454- Fixed an issue wherein attest token write may return without releasing
455 lock on the last level RTT of the mapped buffer.
456
457- Enable TSW bit in hcr_el2 when executing in Realm world so as to trap
458 any data cache maintenance instructions that operate by Set/Way.
459
460- Fixed issues flagged by coverity online scan. The defects detected
461 can be found in the `TF-RMM coverity scan online`_ homepage.
462
463- Fixed issues in s2tt management related to NS memory assignment/unassignment.
464
465- Added missing check to gicv3_hcr field.
466
467- Cache line align xlat lib data structures accessed by secondary CPUs to avoid
468 data corruption due to mismatched memory attribute accesses by RMM during
469 warm boot.
470
471- Corrected linker options when building qcbor library.
472
473- Fixes to comply with MISRA coding guidelines.
474
475- Adjusted mbedTLS heap size depending on MAX_CPUS in RMM.
476
477- Fixed issue with RMI_DATA_CREATE_UNKNOWN setting RIPAS to RAM.
478
479- Added 'ipa_bound' failure condition in RMI_DATA_DESTROY handler. Also added
480 'level_bound' failure condition for RMI_RTT_MAP_UNPROTECTED and
481 RMI_RTT_UNMAP_UNPROTECTED command handlers.
482
483- Fixed issue with rsi_log_on_exit() and modified the logging format.
484
485- Fixed issue with change `ipa_align` failure condition.
486
487- Unified design of RSI/PSCI handlers.
488
489- The issue with RMM config ``RMM_FPU_USE_AT_REL2`` is fixed and the SIMD
490 registers are saved and restored depending on the live register context in
491 use which be one of FPU, SVE or SME.
492
493- The compatibility check for RMM-EL3 interface version is hardened.
494
495- Issue related to attestation token interruption flow is fixed.
496
497- Enhanced the `fake_host` sample application to do Realm token creation.
498
499- Fixed D-cache maintenance in fvp_set_dram_layout().
500
501- Updated t_cose submodule to use upstream version rather than a forked
502 version.
503
504============================
505Known issues and limitations
506============================
507
508- Some capabilities as mentioned in `RMM v1.0 EAC5 specification`_ are
509 restricted or absent in TF-RMM as listed below:
510
511 * The RMI_RTT_FOLD command only allows folding upto Level 2 even though
512 the specification allows upto Level 1.
513 * The support for Self-hosted debug in Realms is not implemented.
514 * Although the RMM allows CCA attestation token sizes of larger than 4KB,
515 there is a limitation on the size of the Platform attestation token part.
516 On the RMM-EL3 interface, there is only a shared buffer of 4KB that is
517 currently shared on the FVP. This needs to be enhanced so that larger
518 platform token sizes can be tested.
519
520- The `rmm-el3-ifc` component does not always reset the RMM to the correct
521 state on encountering an error. This needs to be corrected.
522
523- The invocation of mmio_emulation() and sea_inj() functions need to be
524 mutually exclusive during schedule of a REC. Currently both the cases
525 are allowed to be satisfied at the same time which is incorrect.
526
527=================
528Upcoming features
529=================
530
531- FEAT_LPA2 support for Stage 2 MMU code (s2tt) in RMM.
532
533- Add unit-tests for Stage 2 MMU code (s2tt) and also any associated rework
534 for the s2tt component.
535
536- Enhance CBMC analysis to more RMI commands.
537
538- Fuzz testing for RMM utilizing the `fake_host` architecture.
539
540- Support for new capabilities like Device assignment as mandated by future
541 versions of RMM specification.
542
543- Integrate more static analyzers into RMM build system.
544
545- Implement support for Self-hosted debug in realms.
546
547
548.. _TF-A v2.10: https://git.trustedfirmware.org/TF-A/trusted-firmware-a.git/tag/?h=v2.10.0
549.. _RMM v1.0 EAC5 specification: https://developer.arm.com/documentation/den0137/1-0eac5/?lang=en
550.. _rmm-spec-v1.0-eac5: https://git.trustedfirmware.org/TF-RMM/tf-rmm.git/tag/?h=rmm-spec-v1.0-eac5
551.. _rmm-spec-v1.0-eac2: https://git.trustedfirmware.org/TF-RMM/tf-rmm.git/tag/?h=rmm-spec-v1.0-eac2
552.. _TF-RMM coverity scan online: https://scan.coverity.com/projects/tf-rmm-tf-rmm
553.. _TF-RMM Threat Model: https://tf-rmm.readthedocs.io/en/latest/security/threat_model/index.html
554
555******
Soby Mathewa7e3caf2023-05-09 13:37:44 +0100556v0.3.0
557******
558
559The following sections have the details on the release. This release has been
560verified with `TF-A v2.9`_ release.
561
562============================
563New features in this release
564============================
565
566- Add support to create Realms which can make use of SVE, if present in
567 hardware.
568
569- Refactor the Stage 1 translation table library `lib/xlat` API to better
570 fit RMM usage. Also harden dynamic mapping via slot buffer mechanism by
571 use of ``TRANSIENT`` software defined attribute.
572
573- Add PMU support for Realms as described by RMM v1.0 Beta0 specification.
574
575- Support getting DRAM info from the Boot manifest dynamically at runtime.
576
577 * RMM can now support the 2nd DDR bank on FVP.
578
579==========================
580Build/Testing improvements
581==========================
582
583- Define a unit test framework using CppUTest for RMM.
584
585- Add unittests for `granule`, `slot-buffer` and Stage 1 translation table lib
586 `xlat`.
587
588- Improve the ``fake-host`` mock capability by adding support for per PE sysreg
589 emulation.
590
591- Improve the VA to PA mock layer for ``fake-host``.
592
593- Enable generation of gprof profiling data as part of ``fake-host`` runs.
594
595- Improve the sample application on ``host-build`` platform by adding the cold
596 attestation initialization flow. Also a sample minimal Realm create, run and
597 destroy sequence is added to showcase the RMI calls involved.
598
AlexeiFedorov47165422023-09-13 11:47:57 +0100599- Further improvements to the unit test framework :
Soby Mathewa7e3caf2023-05-09 13:37:44 +0100600
601 * Restore the sysreg state between test runs so each test gets a known
602 sysreg state.
603 * Add capability to test assertions.
604 * Support dynamic behaviour for test harness depending on requirement.
605 * Add support for coverage report generation as part of unit test run.
606
607- Build improvements in RMM:
608
609 * Move mbedTLS build from configure stage to build stage.
610 * Simplify QCBOR build.
611 * Fix build artefact directory path to better cater to multi-config builds.
612
613=========================
614Bug fixes in this release
615=========================
616
617- Remove HVC exit handling from RMI_REC_ENTER handler.
618
619- Fix parameter in measurement_extend_sha512().
620
621- Fix issues in `lib/xlat` for some corner cases.
622
623- Mask MTE capability from `id_aa64pfr1_el1` so that Realms
624 can see that MTE is not supported.
625
626- Add isb() after writes to `cptr_el2` system register.
627
628- Fix the granule alignment check on granule_addr.
629
630- Fix some cppcheck warnings.
631
632- Properly handle errors for granule (un)delegate calls.
633
634- Fix the incorrect bit map manipulation for tracking VMID for realms.
635
636- Fix some incorrect Block mapping cases in Stage 2 translation.
637
638=================
639Upcoming features
640=================
641
642- RMM EAC Specification alignment.
643
644- Support Self-Hosted Debug Realms.
645
646- Support FEAT_PAuth for Realms and utilize the same for RMM.
647
648- Support LPA2 for Stage 2 Realm translation tables.
649
650- Threat model covering RMM data flows.
651
652- Enable Bounded Model Checker (CBMC) for source analysis.
653
654- Save and restore SME/SME2 context belonging to NS Host. This allows NS Host
655 to make use of SME/SME2 when Realms are scheduled.
656
657============================
658Known issues and limitations
659============================
660
661- The size of ``RsiHostCall`` structure is 256 bytes in the implementation
662 and aligns to `RMM Beta1 specification`_ rather than the 4 KB size
663 specified in `RMM Beta0 specification`_.
664
665- The `RMM Beta0 specification`_ does not require to have a CBOR bytestream
666 wrapper around the cca-platform-token and cca-realm-delegated-token, but
667 the RMM implementation does so and this is aligned with later versions
668 of the RMM specification (Beta2 onwards).
669
670- The RMM config ``RMM_FPU_USE_AT_REL2`` does not work as intended and
671 this config is disabled by default. This will be fixed in a future release.
672
Soby Mathewedf5f802023-05-23 09:45:10 +0100673- When the ``RSI_ATTEST_TOKEN_CONTINUE`` call is interrupted and then resumed
674 later by Host via ``RMI_REC_ENTER``, the original SMC is replayed again
675 with the original arguments rather than returning ``RSI_INCOMPLETE`` error
676 code to Realm. The result is that the interrupted RSI call is continued
677 again till completion and then returns back to Realm with the appropriate
678 error code.
679
Soby Mathewa7e3caf2023-05-09 13:37:44 +0100680.. _TF-A v2.9: https://git.trustedfirmware.org/TF-A/trusted-firmware-a.git/tag/?h=v2.9.0
681
682
683******
Soby Mathew8fc82c52022-11-21 12:35:41 +0000684v0.2.0
685******
686
687- This release has been verified with `TF-A v2.8`_ release.
688
689- The release has the following fixes and enhancements:
690
691 * Add support to render documentation on read-the-docs.
692 * Fix the known issue with RSI_IPA_STATE_GET returning
693 ``RSI_ERROR_INPUT`` for a `destroyed` IPA instead of
694 emulating data abort to NS Host.
695 * Fix an issue with RSI_HOST_CALL not returning back to Host
696 to emulate a stage2 data abort.
697 * Harden an assertion check for ``do_host_call()``.
698
699- The other known issues and limitations remain the same as
700 listed for v0.1.0_.
701
702.. _TF-A v2.8: https://git.trustedfirmware.org/TF-A/trusted-firmware-a.git/tag/?h=v2.8.0
703
704******
Soby Mathewb4c6df42022-11-09 11:13:29 +0000705v0.1.0
706******
707
708- First TF-RMM source release aligned to `RMM Beta0 specification`_.
709 The specified interfaces : Realm Management Interface (RMI) and
710 Realm Service Interface (RSI) are implemented which can attest
711 and run Realm VMs as described by the `Arm CCA`_ Architecture.
712
713=================
714Upcoming features
715=================
716
717- Support SVE, Self-Hosted Debug and PMU in Realms
718- Support LPA2 for Stage 2 Realm translation tables.
719- Threat model covering RMM data flows.
720- Enable Bounded Model Checker (CBMC) for source analysis.
721- Unit test framework based on :ref:`RMM Fake host architecture`.
722
723============================
724Known issues and limitations
725============================
726
727The following is a list of issues which are expected to be fixed in the future
728releases of TF-RMM :
729
730- The size of ``RsiHostCall`` structure is 256 bytes in the implementation
731 and aligns to `RMM Beta1 specification`_ rather than the 4 KB size
732 specified in `RMM Beta0 specification`_.
733
734- The RSI_IPA_STATE_GET command returns error ``RSI_ERROR_INPUT`` for a
735 `destroyed` IPA instead of emulating data abort to Host.
736
737- The `RMM Beta0 specification`_ does not require to have a CBOR bytestream
738 wrapper around the cca-platform-token and cca-realm-delegated-token, but
739 the RMM implementation does so.
740
741---------------------------
742
743.. _RMM Beta0 specification: https://developer.arm.com/documentation/den0137/1-0bet0/?lang=en
744.. _RMM Beta1 specification: https://developer.arm.com/documentation/den0137/1-0bet1/?lang=en
745.. _Arm CCA: https://www.arm.com/architecture/security-features/arm-confidential-compute-architecture