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

Pawandeep Oza pawandeep.oza at oss.qualcomm.com
Tue Oct 13 12:47:35 PDT 2026


On Tue, Sep 22, 2026 at 8:24 PM Anup Patel <anup.patel at oss.qualcomm.com> wrote:
>
> 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
>
>
> --
> opensbi mailing list
> opensbi at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/opensbi

Reviewed-by: Pawandeep Oza <pawandeep.oza at oss.qualcomm.com>
Tested-by: Pawandeep Oza <pawandeep.oza at oss.qualcomm.com>



More information about the opensbi mailing list