An RPMI service group is a collection of RPMI services that are logically grouped based on functionality. For example, all the voltage related services are grouped into a voltage service group. The functionality implemented by certain RPMI service groups may impact the architectural state of application processors due to this each RPMI service group specifies the RISC-V privilege levels of the application processor which can be access it. For example, the clock service groups can be accessed from M-mode and S-mode but the HSM service group can be only accessed from M-mode.
All RPMI service groups except the BASE service group are optional. If
the BASE_PROBE_SERVICE_GROUP
service indicates that a service group is
implemented then the RPMI service group version must conform to the RPMI
specification version returned by the BASE_GET_SPEC_VERSION
service.
All implemented RPMI service groups must satisfy the following requirements:
-
The RPMI service group must be accessible from the RISC-V privilege level associated with the RPMI context which includes it.
-
All RPMI services of the RPMI service groups must be supported except the dedicated notification service (
SERVICE_ID = 0x00
) which is reserved for RPMI notification messages. A RPMI service group may be partially implement its RPMI services only if defines mechanism to discover supported RPMI services. -
The RPMI service group must implement a dedicated RPMI service with
SERVICE_ID = 0x01
to subscribe for event notifications.
Note
|
The RPMI services listed within each RPMI service group do not have a specific order. Additionally, the sequence in which services are defined in the specification does not necessarily reflect the order in which they should be invoked. |
This specification defines standard RPMI service groups and RPMI services with the provision to add more service groups as required in the future. The platform vendors can provide implementation specific RPMI service groups. The RPMI Service Groups below list all standard RPMI service groups defined by this specification.
Service Group ID | RPMI Version (Major:Minor) | Service Group Name | Allowed RISC-V Privilege Levels on Application Processors |
---|---|---|---|
0x0001 |
1.0 |
BASE |
M-mode, S-mode |
0x0002 |
1.0 |
SYSTEM_RESET |
M-mode |
0x0003 |
1.0 |
SYSTEM_SUSPEND |
M-mode |
0x0004 |
1.0 |
HART_STATE_MANAGEMENT |
M-mode |
0x0005 |
1.0 |
CPPC |
M-mode, S-mode |
0x0006 |
1.0 |
VOLTAGE |
M-mode, S-mode |
0x0007 |
1.0 |
CLOCK |
M-mode, S-mode |
0x0008 |
1.0 |
DEVICE_POWER |
M-mode, S-mode |
0x0009 |
1.0 |
PERFORMANCE |
M-mode, S-mode |
0x000A |
1.0 |
MANAGEMENT_MODE |
M-mode, S-mode |
0x000B |
1.0 |
RAS_AGENT |
M-mode, S-mode |
0x000C |
1.0 |
REQUEST_FORWARD |
M-mode, S-mode |
0x000D - 0x7FFF |
Reserved for Future Use |
||
0x8000 - 0xFFFF |
Implementation Specific Service Groups |