Hi Everyone,
The baseline implementation aligning TF-RMM to the RMM v2.0 Beta0 specification has now been merged [1]. Corresponding updates to TF-A-Tests [2] and TF-A [3] for RMM v2.0 have also been merged.
In TF-A, the default behaviour (whether to follow RMM v1.x or v2.0) is controlled via the build flag RMM_V1_COMPAT. This flag defaults to 0, meaning TF-A expects RMM v2.0 behaviour. The TF-A changes are currently in the integration branch and are expected to appear in master within the next couple of days.
The major features included in this update are:
Base v2.0 ABI, including the new model for vGIC, VMID, and MECID programming
Base support for the new SRO flow for auxiliary granules in RMI_REC_CREATE and RMI_REC_DESTROY
Initial implementation of range-based RMI ABIs (currently still operating on a 4K page basis)
Alignment with RSI 1.1 as per the v2.0 Beta0 specification
Dummy PSMMU ABI support (memory is still expected to be statically carved out for PSMMU)
As noted in the previous email, this represents base-level support. Further hardening and additional v2.0 features will follow.
For users who need the previous RMM v1.x implementation:
Tag: https://git.trustedfirmware.org/plugins/gitiles/TF-RMM/tf-rmm/+/refs/tags/rmm-spec-v1.x-aligned
Branch: https://git.trustedfirmware.org/plugins/gitiles/TF-RMM/tf-rmm/+/refs/heads/topics/rmm-spec-v1.x-aligned (This branch will be updated as needed.)
The kernel team has also published a base v2.0 branch : https://lore.kernel.org/all/20260318155413.793430-1-steven.price@arm.com/ (Public branches for Linux and kvmtool are referenced in the cover letter.)
A new Shrinkwrap overlay for 3-world configuration (cca.yaml) is now available, which pulls in the above kernel and kvmtool branches aligned to the v2.0 specification. To run a 3-world smoke test, refer to: https://tf-rmm.readthedocs.io/en/latest/getting_started/building-with-shrinkwrap.html#world-testing
Note: The DA software stack is still based on RMM v1.x. You will need to use the v1.x implementation referenced above.