Skip to content

Commit

Permalink
Merge pull request #77 from pathakraul/rpathak_post_arcdraft
Browse files Browse the repository at this point in the history
Fixes across specification in the post ARC review spec
  • Loading branch information
pathakraul authored Nov 9, 2024
2 parents 667bbd4 + 1b1cb68 commit 17421ac
Show file tree
Hide file tree
Showing 10 changed files with 57 additions and 41 deletions.
8 changes: 4 additions & 4 deletions src/intro.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand Down
2 changes: 1 addition & 1 deletion src/message-protocol.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
2 changes: 1 addition & 1 deletion src/srvgrp-base.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
20 changes: 10 additions & 10 deletions src/srvgrp-clock.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -205,7 +205,7 @@ described in <<clock-notifications>>.
==== 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
Expand Down Expand Up @@ -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 <<table_error_codes>>
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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 <<table_error_codes>>
Expand Down
4 changes: 2 additions & 2 deletions src/srvgrp-cppc.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -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 <<table_error_codes>>

Expand Down
17 changes: 9 additions & 8 deletions src/srvgrp-hart-state-management.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -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 <<table_error_codes>>

Expand Down Expand Up @@ -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 <<table_error_codes>>

Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -620,4 +621,4 @@ _Only used for non-retentive suspend types._
! `HART_ID` or `SUSPEND_TYPE` is invalid.
!===
- Other errors <<table_error_codes>>
|===
|===
31 changes: 23 additions & 8 deletions src/srvgrp-system-reset.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -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 <<table_error_codes>>

Expand Down Expand Up @@ -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
Expand All @@ -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 <<table_error_codes>>
|===
8 changes: 4 additions & 4 deletions src/srvgrp-system-suspend.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -148,9 +148,6 @@ a resume address.

! RPMI_SUCCESS
! Attributes returned successfully.

! RPMI_ERR_INVALID_PARAM
! `SUSPEND_TYPE` is invalid.
!===
- Other errors <<table_error_codes>>

Expand Down Expand Up @@ -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 <<table_error_codes>>
|===
4 changes: 2 additions & 2 deletions src/srvgrp-voltage.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -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 <<table_error_codes>>
Expand Down
2 changes: 1 addition & 1 deletion src/terms.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down

0 comments on commit 17421ac

Please sign in to comment.