EDK2_00_15 - StandaloneMmPkg RPMI MM support
About
This project aims to implement and upstream the MM service group based on MPXY SBI extension and RPMI protocol in EDK2. This project helps the PoC project EDK2_00_02 - StandaloneMmPkg (PoC) and let it use the spec defined SBI interface.
Latest update (22-June-2025): Based on latest discussions, we will have 2 separate data paths to enable MM properly. 1. Communicate with m-mode over MPXY (using MM RPMI API). Have a monitor like code in OpenSBI to forward MM data packets to STMM using RPMI Req-Fwd APIs.
Project Scope and Timelines
The MM service group implementation includes.
Leverage the SBI MPXY extension and RPMI protocol, which carries the RPMI message in EDK2
Put MM inter-domain messaging payload in shared memory in EDK2
Add an MM Service in RPMI with APIs:
MM_VERSION
MM_COMMUNICATE
MM_COMPLETE
Components and Repos.
Baseline code (RPMI PoC)
OpenSBI : https://github.com/cap2k4-rivos/opensbi/tree/dev/cap2k4/MultiChannelV2
EDK2 : https://github.com/cap2k4-rivos/edk2-staging/tree/dev/cap2k4/multiChannel
Stakeholders and Partners
RISE
Dhaval Sharma <dhaval@rivosinc.com>
Akshay Behl <cap2k4@rivosinc.com>
Intel: Yong Li <yong.li@intel.com>
Dependencies
Here are the links to the draft specifications for RPMI and MPXY which were shared in the past on the riscv org mailing list for review.
RPMI: https://github.com/riscv-non-isa/riscv-rpmi
MPXY: https://lists.riscv.org/g/tech-prs/message/948
Measure of Success
Code upstream to EDK2 and OpenSBI
RISE Requirements
None,
Status
Dependency | MPXY/RPMI Specification |
|
|---|---|---|
Development | ONGOING | URL: NA |
Development Timeline | 2025 |
|
Upstreaming | WIP | URL: |
Upstream version |
|
|
Contacts | Yong Li, Akshay Behl <cap2k4@rivosinc.com> | Akshay Behl <cap2k4@rivosinc.com> |
Updates
Jul 3, 2025
Communicate with m-mode over MPXY (using MM RPMI API). Have a monitor like code in OpenSBI to forward MM data packets to STMM using RPMI Req-Fwd APIs. (In development, OpenSBI part works but not yet ready for upstream).
Currently a shared buffer between Non Secure(UPL) and Secure Mode(STMM) is setup for data transfer between them.
Jul 11, 2024
Rebased code with the latest RPMI PoC
https://github.com/yli147/edk2/tree/dev-standalonemm-mpxy-v3
Mar 6, 2024
Pending on RPMI spec ratification, will do the code rebase once spec has been ratified