5.1. Integration with SBI MPXY Extension
A platform with a limited number of RPMI transport instances can share an M-mode RPMI transport instance with the supervisor software using the SBI MPXY extension [1]. An M-mode firmware or hypervisor can also virtualize RPMI message communication for the supervisor software using the SBI MPXY extension. As shown in the Figure 1 below, the SBI implementation acts as a RPMI proxy for the supervisor software when sending RPMI messages through an SBI MPXY channel.
The RPMI communication via the SBI MPXY extension must satisfy the following requirements:
-
The SBI MPXY channel must correspond to a single RPMI service group which is allowed in S-mode except BASE and CPPC service groups. The [table_service_groups] list the RPMI service groups allowed in S-mode.
-
The SBI MPXY channel corresponding to the RPMI SYSTEM_MSI service group must not support the P2A doorbell system MSI.
-
The
message_idparameter passed to thesbi_mpxy_send_message_with_response()andsbi_mpxy_send_message_without_response()must represent theSERVICE_IDof an RPMI service belonging to the RPMI service group bound to the SBI MPXY channel. -
The format of the message data passed via the SBI MPXY shared memory to the
sbi_mpxy_send_message_with_response()andsbi_mpxy_send_message_without_response()must match the request data format of the RPMI service represented by themessage_idparameter. -
The format of the response message data returned in the SBI MPXY shared memory by the
sbi_mpxy_send_message_with_response()must match the response data format of the RPMI service represented by themessage_idparameter. -
The format of the protocol-specific data returned in the SBI MPXY shared memory by the
sbi_mpxy_get_notification_events()must match the RPMI notifications message data format. -
The SBI MPXY channel must support message protocol attributes listed in the Table 1 below.
| Attribute Name | Attribute ID | Access | Description |
|---|---|---|---|
SERVICEGROUP_ID |
0x80000000 |
RO |
RPMI service group ID. |
SERVICEGROUP_VERSION |
0x80000001 |
RO |
RPMI service group version. |
IMPLEMENTATION_ID |
0x80000002 |
RO |
RPMI implementation ID. |
IMPLEMENTATION_VERSION |
0x80000003 |
RO |
RPMI implementation version. |