Re: [PATCH 2/2] include: mailbox: Update RPMI notification structs and add Performance event definitions
Anup Patel <[email protected]> Mon, 8 Jun 2026 18:04:45 +0530
| Newsgroups | org.infradead.lists.opensbi |
|---|---|
| Message-ID | <CAK9=C2WSG=f0QN8Dcxt-Tpvou6gJd_mtLQiK2Wu2vXw3kd3-Tg@mail.gmail.com> |
On Thu, Apr 9, 2026 at 8:27 PM David E. Garcia Porras <[email protected]> wrote: > > Add RPMI notification header size and offset macros, and event header > composition macro. Add rpmi_event_notification_state enum with disable, > enable, and return current state IDs. Add req_state field to > rpmi_enable_notification_req and current_state field to > rpmi_enable_notification_resp for RPMI spec compliance. > > Add notification event ID enum and data structures for RPMI Performance > service group events: power change, limit change, and level change. > > Signed-off-by: David E. Garcia Porras <[email protected]> > --- > include/sbi_utils/mailbox/rpmi_msgprot.h | 49 ++++++++++++++++++++++++ > 1 file changed, 49 insertions(+) > > diff --git a/include/sbi_utils/mailbox/rpmi_msgprot.h b/include/sbi_utils/mailbox/rpmi_msgprot.h > index c35788f0..8526ace3 100644 > --- a/include/sbi_utils/mailbox/rpmi_msgprot.h > +++ b/include/sbi_utils/mailbox/rpmi_msgprot.h > @@ -87,6 +87,18 @@ > #define RPMI_DEF_TX_TIMEOUT 20 > #define RPMI_DEF_RX_TIMEOUT 20 > > +/** RPMI Notification header size */ > +#define RPMI_NOTIF_HDR_SIZE 16 > + > +/** RPMI Notification header offsets */ > +#define RPMI_NOTIF_HDR_REMAINING_OFFSET 0x00 > +#define RPMI_NOTIF_HDR_RETURNED_OFFSET 0x04 > +#define RPMI_NOTIF_HDR_LOST_OFFSET 0x08 > +#define RPMI_NOTIF_HDR_RESERVED_OFFSET 0x0C These above RPMI_NOTIF_HDR_xyz defines are not part of the RPMI specification. Rather these are defined by the SBI MPXY extension. Please add these as part of the sbi_ecall_interface.h and drop from this patch. > + > +/** RPMI Notification event header constructor */ > +#define RPMI_NOTIF_EVENT_HDR(eid, dlen) ((u32)(eid) << 16) | ((u32)(dlen) & 0xFFFF) > + > /** > * Common macro to generate composite version from major > * and minor version numbers. > @@ -232,14 +244,24 @@ enum rpmi_servicegroup_id { > RPMI_SRVGRP_VENDOR_END = 0xFFFF, > }; > > +/** RPMI event notification state IDs */ > +enum rpmi_event_notification_state { > + RPMI_EVENT_NOTIF_DISABLE_STATE = 0, > + RPMI_EVENT_NOTIF_ENABLE_STATE = 1, > + RPMI_EVENT_NOTIF_RET_CURR_STATE = 2, > + RPMI_EVENT_NOTIF_MAX_COUNT = 3, > +}; > + > /** RPMI enable notification request */ > struct rpmi_enable_notification_req { > u32 eventid; > + u32 req_state; > }; > > /** RPMI enable notification response */ > struct rpmi_enable_notification_resp { > s32 status; > + u32 current_state; > }; > > /** RPMI Base ServiceGroup Service IDs */ > @@ -846,6 +868,33 @@ enum rpmi_performance_service_id { > RPMI_PERF_SRV_MAX_COUNT, > }; > > +/** RPMI Performance ServiceGroup Notification Event IDs */ > +enum rpmi_performance_event_id { > + RPMI_PERF_EVENT_POWER_CHANGE = 0x01, > + RPMI_PERF_EVENT_LIMIT_CHANGE = 0x02, > + RPMI_PERF_EVENT_LEVEL_CHANGE = 0x03, > + RPMI_PERF_EVENT_MAX_COUNT, > +}; > + > +/** RPMI Performance power change notification data */ > +struct rpmi_perf_event_power_change { > + u32 domain_id; > + u32 power_uw; > +}; > + > +/** RPMI Performance limit change notification data */ > +struct rpmi_perf_event_limit_change { > + u32 domain_id; > + u32 max_level; > + u32 min_level; > +}; > + > +/** RPMI Performance level change notification data */ > +struct rpmi_perf_event_level_change { > + u32 domain_id; > + u32 level; > +}; > + > struct rpmi_perf_get_num_domain_resp { > s32 status; > u32 num_domains; > -- > 2.43.0 > > > -- > opensbi mailing list > [email protected] > http://lists.infradead.org/mailman/listinfo/opensbi Otherwise, this looks good to me. Reviewed-by: Anup Patel <[email protected]> Thanks, Anup -- opensbi mailing list [email protected] http://lists.infradead.org/mailman/listinfo/opensbi