diff --git a/src/intro.adoc b/src/intro.adoc index b3fb1a2..67e6ea7 100644 --- a/src/intro.adoc +++ b/src/intro.adoc @@ -44,10 +44,10 @@ only by that RISC-V privilege level. types of RPMI messages and the format for each RPMI message type. *RPMI Service Groups*: The services provided by the platform microcontrollers -to the application processors are grouped based functionality into RPMI service -groups. Each RPMI service group specifies the RISC-V privilege levels from which -the application processor can be access it. Platform vendors can implement -custom RPMI service groups. +to the application processors are grouped into RPMI service groups based on +functionality. Each RPMI service group specifies the RISC-V privilege levels +from which the application processor can access it. Platform vendors can +implement custom RPMI service groups. *RPMI Client*: An RPMI client is a software or a driver running on the application processor which is capable of sending and receiving RPMI messages. diff --git a/src/message-protocol.adoc b/src/message-protocol.adoc index 3c579e8..4224168 100644 --- a/src/message-protocol.adoc +++ b/src/message-protocol.adoc @@ -330,7 +330,7 @@ specification or the extension version mismatch. | RPMI_ERR_BAD_RANGE | -11 -| Index out of range. +| Bad or invalid range. | RPMI_ERR_TIMEOUT | -12 diff --git a/src/srvgrp-base.adoc b/src/srvgrp-base.adoc index a283b86..c35658a 100644 --- a/src/srvgrp-base.adoc +++ b/src/srvgrp-base.adoc @@ -48,7 +48,7 @@ The following table lists the services in the BASE service group: | NORMAL_REQUEST | 0x05 -| BASE_GET_HW_INFO +| BASE_GET_PLATFORM_INFO | NORMAL_REQUEST | 0x06 diff --git a/src/srvgrp-clock.adoc b/src/srvgrp-clock.adoc index dffdfa5..e7f49a4 100644 --- a/src/srvgrp-clock.adoc +++ b/src/srvgrp-clock.adoc @@ -205,7 +205,7 @@ described in <>. ==== Service: CLK_GET_NUM_CLOCKS (SERVICE_ID: 0x02) This service is used to query the number of clocks available in the system. All supported clocks in the system are designated by an integer identifier -called `CLOCK_ID`. `CLOCK_ID` are sequential starting from `0`. +called `CLOCK_ID`. [#table_clock_getnumclocks_request_data] .Request Data @@ -393,10 +393,7 @@ to get all the clock rates. In case the `CLOCK_FORMAT` is a linear range the ! Service completed successfully. ! RPMI_ERR_INVALID_PARAM -! `CLOCK_ID` is invalid. - -! RPMI_ERR_BAD_RANGE -! `CLOCK_RATE_INDEX` is not in valid range. +! `CLOCK_ID` or `CLOCK_RATE_INDEX` is invalid. !=== - Other errors <> @@ -579,16 +576,19 @@ This service is used to set the clock rate of a specific clock. ! Bits ! Description -! [31:30] ! Clock rate round up/round down +! [31:2] +! _Reserved_ and must be `0`. + +! [1:0] +! Clock rate rounding mode ---- 0b00: Round down 0b01: Round up 0b10: Auto 0b11: Reserved -Platform autonomously choose rate closest to the requested rate. ----- -! [29:0] ! _Reserved_ and must be `0`. +In Auto mode the platform can autonomously chooses a supported rate closest to the requested rate. +---- !=== | 2 @@ -625,7 +625,7 @@ Platform autonomously choose rate closest to the requested rate. ! Service completed successfully. ! RPMI_ERR_INVALID_PARAM -! `CLOCK_ID` or clock rate is invalid. +! `CLOCK_ID` or clock rate is invalid or the flags passed are invalid or reserved. !=== - Other errors <> diff --git a/src/srvgrp-cppc.adoc b/src/srvgrp-cppc.adoc index cf06534..ce4c543 100644 --- a/src/srvgrp-cppc.adoc +++ b/src/srvgrp-cppc.adoc @@ -693,8 +693,8 @@ may need to call this service again with the appropriate `START_INDEX` until the ! RPMI_SUCCESS ! Service completed successfully. -! RPMI_ERR_BAD_RANGE -! `START_INDEX` is not in valid range. +! RPMI_ERR_INVALID_PARAM +! `START_INDEX` is invalid. !=== - Other errors <> diff --git a/src/srvgrp-hart-state-management.adoc b/src/srvgrp-hart-state-management.adoc index ec8ab70..44dabae 100644 --- a/src/srvgrp-hart-state-management.adoc +++ b/src/srvgrp-hart-state-management.adoc @@ -241,8 +241,8 @@ may need to call this service again with the appropriate `START_INDEX` until the ! RPMI_SUCCESS ! Service completed successfully. -! RPMI_ERR_BAD_RANGE -! `START_INDEX` is not in valid range. +! RPMI_ERR_INVALID_PARAM +! `START_INDEX` is invalid. !=== - Other errors <> @@ -314,8 +314,8 @@ items. ! RPMI_SUCCESS ! Service completed successfully. -! RPMI_ERR_BAD_RANGE -! `START_INDEX` is not in valid range. +! RPMI_ERR_INVALID_PARAM +! `START_INDEX` is invalid. !=== - Other errors <> @@ -392,9 +392,10 @@ This service is used to get the attributes of a suspend type. ! _Reserved_, must be initialized to `0`. ! [0] -! - 0b0: Counter does not stop if this bit is cleared. - 0b1: Local timer stops when the hart is suspended if this bit is set. +! Local timer running status + + 0b1: Local timer stops when the hart is suspended. + 0b0: Local timer does not stop when hart is suspended. !=== | 2 | ENTRY_LATENCY @@ -620,4 +621,4 @@ _Only used for non-retentive suspend types._ ! `HART_ID` or `SUSPEND_TYPE` is invalid. !=== - Other errors <> -|=== \ No newline at end of file +|=== diff --git a/src/srvgrp-system-reset.adoc b/src/srvgrp-system-reset.adoc index e4e817e..998f7de 100644 --- a/src/srvgrp-system-reset.adoc +++ b/src/srvgrp-system-reset.adoc @@ -156,9 +156,6 @@ default. System Warm Reset support can be discovered with this service. ! RPMI_SUCCESS ! Attributes returned successfully. -! RPMI_ERR_INVALID_PARAM -! `RESET_TYPE` is invalid. - !=== - Other errors <> @@ -187,8 +184,8 @@ default. System Warm Reset support can be discovered with this service. This service is used to initiate the system reset or system shutdown. The application processor must only request supported reset types, discovered using the `SYSRST_GET_ATTRIBUTES` service except for System Shutdown and System -Cold Reset which are supported by default. Requesting an unsupported or -invalid reset type may result in the system entering a non-functional state. +Cold Reset which are supported by default. This service does not return response +message in case of successful reset. [#table_sysreset_sysreset_request_data] .Request Data @@ -208,7 +205,25 @@ invalid reset type may result in the system entering a non-functional state. [#table_sysreset_sysreset_response_data] .Response Data -[cols="1", width=100%, align="center", options="header"] -|=== -| NA +[cols="1, 2, 1, 7a", width=100%, align="center", options="header"] |=== +| Word +| Name +| Type +| Description + +| 0 +| STATUS +| int32 +| Return error code + +[cols="5,5a", options="header"] +!=== +! Error Code +! Description + +! RPMI_ERR_INVALID_PARAM +! `RESET_TYPE` is not supported or invalid. +!=== +- Other errors <> +|=== \ No newline at end of file diff --git a/src/srvgrp-system-suspend.adoc b/src/srvgrp-system-suspend.adoc index b01b57b..a89e3b2 100644 --- a/src/srvgrp-system-suspend.adoc +++ b/src/srvgrp-system-suspend.adoc @@ -148,9 +148,6 @@ a resume address. ! RPMI_SUCCESS ! Attributes returned successfully. - -! RPMI_ERR_INVALID_PARAM -! `SUSPEND_TYPE` is invalid. !=== - Other errors <> @@ -256,7 +253,10 @@ such as the `WFI` instruction. ! Service completed successfully. Suspend request has been accepted. ! RPMI_ERR_INVALID_PARAM -! `SUSPEND_TYPE` is invalid. +! `HART_ID` or `SUSPEND_TYPE` is invalid. + +! RPMI_ERR_INVALID_ADDR +! Resume address is invalid. !=== - Other errors <> |=== diff --git a/src/srvgrp-voltage.adoc b/src/srvgrp-voltage.adoc index 587e00a..2362f2e 100644 --- a/src/srvgrp-voltage.adoc +++ b/src/srvgrp-voltage.adoc @@ -417,8 +417,8 @@ calls may be necessary to retrieve all the voltage levels. ! RPMI_ERR_INVALID_PARAM ! Voltage `DOMAIN_ID` is invalid. -! RPMI_ERR_BAD_RANGE -! `VOLTAGE_LEVEL_INDEX` is not in valid range. +! RPMI_ERR_INVALID_PARAM +! `VOLTAGE_LEVEL_INDEX` is invalid. !=== - Other errors <> diff --git a/src/terms.adoc b/src/terms.adoc index 84c7246..14fb92c 100644 --- a/src/terms.adoc +++ b/src/terms.adoc @@ -6,7 +6,7 @@ | A2P | Application Processor to Platform Microcontroller | ACPI | Advanced Configuration and Power Interface Specification -| AEPI | ACPI Platform Error Interfaces +| APEI | ACPI Platform Error Interfaces | AP | Application Processor | CPPC | Collaborative Processor Performance Control | GHES | Generic Hardware Error Source