[PATCH 09/11] lib: utils/mpxy: Add domain parameter to setup_group() callback

Anup Patel anup.patel at oss.qualcomm.com
Tue Sep 22 20:23:57 PDT 2026


The MPXY channels can be domain specific so the setup_group() callback
must know which domain the MPXY RPMI instance is associated with.

Signed-off-by: Anup Patel <anup.patel at oss.qualcomm.com>
---
 include/sbi_utils/mpxy/fdt_mpxy_rpmi.h | 1 +
 lib/utils/mpxy/fdt_mpxy_rpmi.c         | 2 +-
 lib/utils/mpxy/fdt_mpxy_rpmi_mm.c      | 6 +++---
 lib/utils/mpxy/fdt_mpxy_rpmi_sysmsi.c  | 1 +
 4 files changed, 6 insertions(+), 4 deletions(-)

diff --git a/include/sbi_utils/mpxy/fdt_mpxy_rpmi.h b/include/sbi_utils/mpxy/fdt_mpxy_rpmi.h
index ae7e537a..7193a5fe 100644
--- a/include/sbi_utils/mpxy/fdt_mpxy_rpmi.h
+++ b/include/sbi_utils/mpxy/fdt_mpxy_rpmi.h
@@ -41,6 +41,7 @@ struct mpxy_rpmi_data {
 
 	/** Setup RPMI service group context for MPXY */
 	int (*setup_group)(void **context, struct mbox_chan *chan,
+			   struct sbi_domain *dom,
 			   const struct mpxy_rpmi_data *data);
 
 	/** Cleanup RPMI service group context for MPXY */
diff --git a/lib/utils/mpxy/fdt_mpxy_rpmi.c b/lib/utils/mpxy/fdt_mpxy_rpmi.c
index c0493ecb..69fd608a 100644
--- a/lib/utils/mpxy/fdt_mpxy_rpmi.c
+++ b/lib/utils/mpxy/fdt_mpxy_rpmi.c
@@ -286,7 +286,7 @@ static int __mpxy_rpmi_init(const struct mpxy_rpmi_data *data,
 
 	/* Setup RPMI service group context */
 	if (data->setup_group) {
-		rc = data->setup_group(&rmb->group_context, chan, data);
+		rc = data->setup_group(&rmb->group_context, chan, dom, data);
 		if (rc)
 			goto fail_free_client;
 	}
diff --git a/lib/utils/mpxy/fdt_mpxy_rpmi_mm.c b/lib/utils/mpxy/fdt_mpxy_rpmi_mm.c
index 0263a105..57e6707e 100644
--- a/lib/utils/mpxy/fdt_mpxy_rpmi_mm.c
+++ b/lib/utils/mpxy/fdt_mpxy_rpmi_mm.c
@@ -39,6 +39,7 @@ static struct mpxy_rpmi_service_data mm_srvcdata[] = {
 };
 
 static int mpxy_rpmi_mm_setup(void **context, struct mbox_chan *chan,
+			      struct sbi_domain *dom,
 			      const struct mpxy_rpmi_data *data)
 {
 	unsigned long mm_region_addr = 0;
@@ -63,9 +64,8 @@ static int mpxy_rpmi_mm_setup(void **context, struct mbox_chan *chan,
 	mm_region_size = rsp.mma.shmem_size;
 	mm_region_flags = SBI_DOMAIN_MEMREGION_SHARED_SURW_MRW;
 
-	rc = sbi_domain_root_add_memrange(mm_region_addr, mm_region_size,
-					  PAGE_SIZE, mm_region_flags);
-	return rc;
+	return sbi_domain_add_memrange(dom, mm_region_addr, mm_region_size,
+				       PAGE_SIZE, mm_region_flags);
 }
 
 static int mpxy_rpmi_mm_xfer(void *context, struct mbox_chan *chan,
diff --git a/lib/utils/mpxy/fdt_mpxy_rpmi_sysmsi.c b/lib/utils/mpxy/fdt_mpxy_rpmi_sysmsi.c
index f7c3c3db..6268a437 100644
--- a/lib/utils/mpxy/fdt_mpxy_rpmi_sysmsi.c
+++ b/lib/utils/mpxy/fdt_mpxy_rpmi_sysmsi.c
@@ -85,6 +85,7 @@ static void mpxy_rpmi_sysmsi_cleanup(void *context)
 }
 
 static int mpxy_rpmi_sysmsi_setup(void **context, struct mbox_chan *chan,
+				  struct sbi_domain *dom,
 				  const struct mpxy_rpmi_data *data)
 {
 	struct rpmi_sysmsi_get_msi_attributes_resp gmaresp;
-- 
2.43.0




More information about the opensbi mailing list