From 243035c565ac22a3d694247bd7fc324743999978 Mon Sep 17 00:00:00 2001 From: "David E. Garcia Porras" Date: Fri, 27 Mar 2026 23:43:47 -0600 Subject: [PATCH] include: mailbox: rpmi_msgprot: Add RPMI performance domain flag defines Add bit-field defines for the RPMI performance domain attributes flags and fast-channel attributes flags as specified in the RPMI specification. These are needed by platform implementations that provide RPMI performance services (e.g. DVFS controllers). Also add the missing db_write_value field to rpmi_perf_get_fast_chn_attr_resp to match the RPMI spec layout. Signed-off-by: David E. Garcia Porras Reviewed-by: Anup Patel Link: https://lore.kernel.org/r/20260328054347.3706029-5-david.garcia@aheadcomputing.com Signed-off-by: Anup Patel --- include/sbi_utils/mailbox/rpmi_msgprot.h | 28 ++++++++++++++++++++---- 1 file changed, 24 insertions(+), 4 deletions(-) diff --git a/include/sbi_utils/mailbox/rpmi_msgprot.h b/include/sbi_utils/mailbox/rpmi_msgprot.h index c35788f0..46834877 100644 --- a/include/sbi_utils/mailbox/rpmi_msgprot.h +++ b/include/sbi_utils/mailbox/rpmi_msgprot.h @@ -857,6 +857,16 @@ struct rpmi_perf_get_attrs_req { struct rpmi_perf_get_attrs_resp { s32 status; +#define RPMI_PERF_DOMAIN_ATTRS_FLAGS_MASK (7U << 0) +#define RPMI_PERF_DOMAIN_ATTRS_FLAGS_FASTCHANNEL_SUPP_POS 0 +#define RPMI_PERF_DOMAIN_ATTRS_FLAGS_PERF_LVL_CHG_SUPP_POS 1 +#define RPMI_PERF_DOMAIN_ATTRS_FLAGS_PERF_LIMIT_CHG_SUPP_POS 2 +#define RPMI_PERF_DOMAIN_ATTRS_FLAGS_FASTCHANNEL_SUPP \ + (1U << RPMI_PERF_DOMAIN_ATTRS_FLAGS_FASTCHANNEL_SUPP_POS) +#define RPMI_PERF_DOMAIN_ATTRS_FLAGS_PERF_LVL_CHG_SUPP \ + (1U << RPMI_PERF_DOMAIN_ATTRS_FLAGS_PERF_LVL_CHG_SUPP_POS) +#define RPMI_PERF_DOMAIN_ATTRS_FLAGS_PERF_LIMIT_CHG_SUPP \ + (1U << RPMI_PERF_DOMAIN_ATTRS_FLAGS_PERF_LIMIT_CHG_SUPP_POS) u32 flags; u32 num_level; u32 latency; @@ -936,16 +946,26 @@ struct rpmi_perf_get_fast_chn_attr_req { struct rpmi_perf_get_fast_chn_attr_resp { s32 status; +#define RPMI_PERF_FASTCHAN_ATTRS_FLAGS_MASK (7U << 0) +#define RPMI_PERF_FASTCHAN_ATTRS_FLAGS_DB_SUPP_POS 0 +#define RPMI_PERF_FASTCHAN_ATTRS_FLAGS_DB_WIDTH_POS 1 +#define RPMI_PERF_FASTCHAN_ATTRS_FLAGS_DB_SUPP \ + (1U << RPMI_PERF_FASTCHAN_ATTRS_FLAGS_DB_SUPP_POS) +#define RPMI_PERF_FASTCHAN_ATTRS_FLAGS_DB_WIDTH_MASK \ + (3U << RPMI_PERF_FASTCHAN_ATTRS_FLAGS_DB_WIDTH_POS) +#define RPMI_PERF_FASTCHAN_ATTRS_FLAGS_DB_WIDTH_8 \ + (0U << RPMI_PERF_FASTCHAN_ATTRS_FLAGS_DB_WIDTH_POS) +#define RPMI_PERF_FASTCHAN_ATTRS_FLAGS_DB_WIDTH_16 \ + (1U << RPMI_PERF_FASTCHAN_ATTRS_FLAGS_DB_WIDTH_POS) +#define RPMI_PERF_FASTCHAN_ATTRS_FLAGS_DB_WIDTH_32 \ + (2U << RPMI_PERF_FASTCHAN_ATTRS_FLAGS_DB_WIDTH_POS) u32 flags; u32 region_offset_low; u32 region_offset_high; u32 region_size; u32 db_addr_low; u32 db_addr_high; - u32 db_id_low; - u32 db_id_high; - u32 db_perserved_low; - u32 db_perserved_high; + u32 db_write_value; }; /** RPMI MM ServiceGroup Service IDs */