Skip to content

Latest commit

 

History

History
127 lines (105 loc) · 3.1 KB

service-groups.adoc

File metadata and controls

127 lines (105 loc) · 3.1 KB

Service Groups

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:

  1. The RPMI service group must be accessible from the RISC-V privilege level associated with the RPMI context which includes it.

  2. 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.

  3. 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.

Table 1. RPMI Service Groups
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