[PATCH v4 3/3] sbi_utils: mpxy: add FDT-based MPXY bridge driver

Rahul Pathak rahul.pathak at oss.qualcomm.com
Thu Sep 17 02:19:45 PDT 2026


On Fri, Sep 11, 2026 at 2:39 AM Pawandeep Oza
<pawandeep.oza at oss.qualcomm.com> wrote:
>
> From: Oza Pawandeep <pawandeep.oza at oss.qualcomm.com>
>
> Introduce an FDT-configured MPXY bridge driver that enables
> cooperative message passing between two SBI domains sharing the
> same physical hart via domain context switching.
>
> MPXY channels are registered at runtime when the named domains
> appear via the domain registration notifier:
>
>   - src_ch: used by the source domain to send messages
>   - dst_ch: used by the destination domain to retrieve and
>     complete forwarded messages via RPMI REQFWD service group
>
> Key design points:
>   - bridge_slot_put(): implements sbi_mpxy_send_message_without_response
>     stores message pointer and switches to destination domain
>   - bridge_src_send(): mplements sbi_mpxy_send_message_with_response
>     stores message and response buffer context then switches to destination
>   - bridge_dst_retrieve(): REQFWD retrieve path — if slot is
>     occupied delivers message immediately, otherwise saves
>     response buffer context and yields to source domain to wait
>   - bridge_switch_domain(): unified domain switch wrapper —
>     enters destination domain from source side or exits back
>     to source domain from destination side
>   - at present this bridge driver supports domains with same possible_harts.
>
> Signed-off-by: Oza Pawandeep <pawandeep.oza at oss.qualcomm.com>
> ---
>  lib/utils/mpxy/Kconfig             |   4 +
>  lib/utils/mpxy/fdt_mpxy_bridge.c   | 820 +++++++++++++++++++++++++++++
>  lib/utils/mpxy/objects.mk          |   3 +
>  platform/generic/configs/defconfig |   2 +
>  4 files changed, 829 insertions(+)
>  create mode 100644 lib/utils/mpxy/fdt_mpxy_bridge.c
>
> diff --git a/lib/utils/mpxy/Kconfig b/lib/utils/mpxy/Kconfig
> index a3ed1c22..017a6b06 100644
> --- a/lib/utils/mpxy/Kconfig
> +++ b/lib/utils/mpxy/Kconfig
> @@ -7,6 +7,10 @@ config FDT_MPXY
>         depends on FDT
>         default n
>
> +config FDT_MPXY_BRIDGE

It should also depend on the FDT_MPXY

> +       bool "MPXY bridge driver for interdomina communication"
> +       default n
> +
>  config FDT_MPXY_RPMI_MBOX
>         bool "MPXY drivers as RPMI mailbox client"
>         depends on FDT_MAILBOX && FDT_MPXY
> diff --git a/lib/utils/mpxy/fdt_mpxy_bridge.c b/lib/utils/mpxy/fdt_mpxy_bridge.c
> new file mode 100644
> index 00000000..578dc9b0
> --- /dev/null
> +++ b/lib/utils/mpxy/fdt_mpxy_bridge.c
> @@ -0,0 +1,820 @@
> +/*
> + * SPDX-License-Identifier: BSD-2-Clause
> + *
> + * Copyright (c) 2026 Qualcomm, Inc
> + *
> + * Authors:
> + *   Pawandeep Oza <pawandeep.oza at oss.qualcomm.com>
> + */
>



More information about the opensbi mailing list