[PATCH 1/5] lib: utils: Add RPMI REQUEST_FORWARD service group defines

marouene.boubakri at oss.nxp.com marouene.boubakri at oss.nxp.com
Mon Sep 7 04:59:09 PDT 2026


From: Marouene Boubakri <marouene.boubakri at nxp.com>

Add the service group ID, service IDs, notification event ID and the
request and response data layouts of the RPMI REQUEST_FORWARD service
group (SERVICEGROUP_ID 0x000D) defined by RPMI v1.0.

The forwarded request message carried by REQFWD_RETRIEVE_CURRENT_MESSAGE
is a complete RPMI message including its 8-byte message header, unlike
the message data exchanged over an SBI MPXY channel.

Signed-off-by: Marouene Boubakri <marouene.boubakri at nxp.com>
---
 include/sbi_utils/mailbox/rpmi_msgprot.h | 50 ++++++++++++++++++++++++
 1 file changed, 50 insertions(+)

diff --git a/include/sbi_utils/mailbox/rpmi_msgprot.h b/include/sbi_utils/mailbox/rpmi_msgprot.h
index 7ae4abe..a479f07 100644
--- a/include/sbi_utils/mailbox/rpmi_msgprot.h
+++ b/include/sbi_utils/mailbox/rpmi_msgprot.h
@@ -225,6 +225,7 @@ enum rpmi_servicegroup_id {
 	RPMI_SRVGRP_DEVICE_POWER = 0x0009,
 	RPMI_SRVGRP_PERFORMANCE = 0x0000A,
 	RPMI_SRVGRP_MANAGEMENT_MODE = 0x000B,
+	RPMI_SRVGRP_REQUEST_FORWARD = 0x000D,
 	RPMI_SRVGRP_LOGGING = 0x000E,
 	RPMI_SRVGRP_ID_MAX_COUNT,
 
@@ -1046,6 +1047,55 @@ struct rpmi_mm_communicate_rsp {
 	u32 mm_comm_retdata_size;
 };
 
+/** RPMI REQUEST_FORWARD ServiceGroup Service IDs */
+enum rpmi_reqfwd_service_id {
+	RPMI_REQFWD_SRV_ENABLE_NOTIFICATION = 0x01,
+	RPMI_REQFWD_SRV_RETRIEVE_CURRENT_MESSAGE = 0x02,
+	RPMI_REQFWD_SRV_COMPLETE_CURRENT_MESSAGE = 0x03,
+	RPMI_REQFWD_SRV_MAX_COUNT,
+};
+
+/** RPMI REQUEST_FORWARD ServiceGroup notification event IDs */
+enum rpmi_reqfwd_event_id {
+	RPMI_REQFWD_EVENT_NEW_MESSAGE = 0x01,
+};
+
+/** RPMI REQUEST_FORWARD retrieve current message request struct */
+struct rpmi_reqfwd_retrieve_current_message_req {
+	u32 start_index;
+};
+
+/**
+ * RPMI REQUEST_FORWARD retrieve current message response struct
+ *
+ * The request_message array carries the returned part of the current
+ * forwarded RPMI request message, which is a complete RPMI message
+ * including its message header.
+ */
+struct rpmi_reqfwd_retrieve_current_message_rsp {
+	s32 status;
+	u32 remaining;
+	u32 returned;
+	u8 request_message[];
+};
+
+/**
+ * RPMI REQUEST_FORWARD complete current message request struct
+ *
+ * The response_data array carries the RPMI message data to be sent as
+ * the response of the current forwarded RPMI request message. Its length
+ * is inferred from the length of the service message.
+ */
+struct rpmi_reqfwd_complete_current_message_req {
+	u8 response_data[];
+};
+
+/** RPMI REQUEST_FORWARD complete current message response struct */
+struct rpmi_reqfwd_complete_current_message_rsp {
+	s32 status;
+	u32 num_messages;
+};
+
 /** RPMI LOGGING ServiceGroup Service IDs */
 enum rpmi_logging_service_id {
 	RPMI_LOGGING_SRV_ENABLE_NOTIFICATION = 0x01,
-- 
2.43.0




More information about the opensbi mailing list