The REQUEST_FORWARD service group allows application processors to retrieve and process RPMI request messages which are forwarded by platform microcontroller from some other RPMI client. This service group also allows an SBI implementation to forward RPMI request messages from one system-level partition (or domain) to another using the SBI MPXY extension cite:[SBI].
The platform microcontroller (or SBI implementation) should maintain a first-in first-out queue of forwarded RPMI request messages. The first (or oldest) forwarded RPMI request message in the queue is referred to as the current forwarded RPMI request message. The RPMI services defined by the REQUEST_FORWARD service group allow application processors to retrieve and process one forwarded RPMI request message at a time.
The Request Forward Services below lists the services defined by the REQUEST_FORWARD service group:
Service ID | Service Name | Request Type |
---|---|---|
0x01 |
REQFWD_ENABLE_NOTIFICATION |
NORMAL_REQUEST |
0x02 |
REQFWD_RETRIEVE_CURRENT_MESSAGE |
NORMAL_REQUEST |
0x03 |
REQFWD_COMPLETE_CURRENT_MESSAGE |
NORMAL_REQUEST |
The Request Forward Notification Events below lists the notification events defined by the REQUEST_FORWARD service group.
Event ID | Name | Event Data | Description |
---|---|---|---|
0x01 |
REQFWD_NEW_MESSAGE |
An array of |
This RPMI notification event represents the arrival of a new forwarded RPMI request message when there were no other pending forwarded RPMI request message in the queue. |
This service allows the application processor to subscribe to REQUEST_FORWARD
service group notifications. The platform may optionally support notifications
for events that may occur. The platform microcontroller can send these
notification messages to the application processor if they are implemented and
the application processor has subscribed to them. The supported events are
described in Notifications.
Word | Name | Type | Description |
---|---|---|---|
0 |
EVENT_ID |
uint32 |
The event to be subscribed for notification. |
1 |
REQ_STATE |
uint32 |
Requested event notification state 0: Disable 1: Enable 2: Return current state. Any other values of |
Word | Name | Type | Description | ||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
0 |
STATUS |
int32 |
Return error code
|
||||||||
1 |
CURRENT_STATE |
uint32 |
Current 0: Notification is disabled 1: Notification is enabled. In case of |
This service allows application processors to retrieve the current forwarded RPMI request message. The current message may be the oldest forwarded RPMI request message in the platform microcontroller (or SBI implementation) queue.
Word | Name | Type | Description |
---|---|---|---|
0 |
START_INDEX |
uint32 |
Starting index of first byte of the current forwarded RPMI request message. Use
|
Word | Name | Type | Description | ||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
0 |
STATUS |
int32 |
Return error code
|
||||||||
1 |
REMAINING |
uint32 |
Remaining number of bytes in the current forwarded RPMI request message. |
||||||||
2 |
RETURNED |
uint32 |
Number of bytes |
||||||||
3 |
REQUEST_MESSAGE[N] |
uint8 |
An array of |
This service allows the application processors to inform the platform microcontroller (or SBI implementation) that:
-
The processing of the current forwarded RPMI request message has completed and RPMI response message must be sent to the original source of RPMI request message.
-
The current forwarded RPMI request message must now point to the next forwarded RPMI request message if available.
Word | Name | Type | Description |
---|---|---|---|
0 |
RESPONSE_DATA[N] |
uint8 |
An array of bytes representing the RPMI message data to be send as
response data for the current forwarded RPMI request message. The |
Word | Name | Type | Description | ||||||
---|---|---|---|---|---|---|---|---|---|
0 |
STATUS |
int32 |
Return error code
|