[PATCH v8 00/24] Linux SBI MPXY and RPMI drivers

Anup Patel apatel at ventanamicro.com
Wed Jul 16 08:35:58 PDT 2025


On Wed, Jul 16, 2025 at 6:52 PM Alexandre Ghiti <alex at ghiti.fr> wrote:
>
> Hi Anup,
>
> On 7/4/25 09:03, Anup Patel wrote:
> > The SBI v3.0 (MPXY extension) [1] and RPMI v1.0 [2] specifications
> > are frozen and finished public review at the RISC-V International.
> >
> > Currently, most of the RPMI and MPXY drivers are in OpenSBI whereas
> > Linux only has SBI MPXY mailbox controller driver, RPMI clock driver
> > and RPMI system MSI driver This series also includes ACPI support
> > for SBI MPXY mailbox controller and RPMI system MSI drivers.
> >
> > These patches can be found in the riscv_sbi_mpxy_mailbox_v8 branch
> > at: https://github.com/avpatel/linux.git
> >
> > To test these patches, boot Linux on "virt,rpmi=on,aia=aplic-imsic"
> > machine with OpenSBI and QEMU from the dev-upstream branch at:
> > https://github.com/ventanamicro/opensbi.git
> > https://github.com/ventanamicro/qemu.git
> >
> > [1] https://github.com/riscv-non-isa/riscv-sbi-doc/releases
> > [2] https://github.com/riscv-non-isa/riscv-rpmi/releases
> >
> > Changes since v7:
> >   - Addressed comments on PATCH3, PATCH7, PATCH10, PATCH14, and PATCH21
> >
> > Changes since v6:
> >   - Rebased the series on Linux-6.16-rc4
> >   - Added Stephen's Reviewed-by in appropriate patches
> >   - Addressed Andy's comments on PATCH5, PATCH6, PATCH9, and PATCH14
> >   - New PATCH6 in this series which is factored-out from PATCH7
> >
> > Changes since v5:
> >   - Rebased the series on Linux-6.16-rc2
> >   - Added Conor's Reviewed-by in all DT binding patches
> >   - Addressed Andy's comments on PATCH5
> >   - Addressed Tglx's comments on PATCH12 and PATCH21
> >
> > Changes since v4:
> >   - Rebased the series on Linux-6.16-rc1
> >   - Dropped PATCH1 since a similar change is already merged
> >     https://lore.kernel.org/linux-riscv/20250523101932.1594077-4-cleger@rivosinc.com/
> >   - Addressed Andy's comments on PATCH4, PATCH5, PATCH6, PATCH7,
> >     PATCH13, and PATCH17
> >   - Addressed Atish's comments on PATCH11 and PATCH12
> >   - Addressed Conor's comments on PATCH9
> >
> > Changes since v3:
> >   - Rebased the series on Linux-6.15-rc7
> >   - Updated PATCH2 DT bindings as-per Rob's suggestion
> >   - Improved request_threaded_irq() usage in PATCH7
> >   - Updated PATCH10 clk-rpmi driver as-per commments from Andy
> >   - Updated PATCH13 irq-riscv-rpmi-sysmsi driver as-per comments
> >     from Andy and Tglx
> >   - Addressed ACPI related comments in PATCH14, PATCH15, PATCH18,
> >     PATCH20 and PATCH21
> >
> > Changes since v2:
> >   - Dropped the "RFC" tag from series since the SBI v3.0 and
> >     RPMI v1.0 specifications are now frozen
> >   - Rebased the series on Linux-6.15-rc5
> >   - Split PATCH8 of v2 into two patches adding separate DT
> >     bindings for "riscv,rpmi-mpxy-clock" and "riscv,rpmi-clock"
> >   - Split PATCH10 of v2 into two patches adding separate DT
> >     bindings for "riscv,rpmi-mpxy-system-msi" and
> >     "riscv,rpmi-system-msi"
> >   - Addressed comments from TGLX on PATCH11 of v2 adding irqchip
> >     driver for RPMI system MSI
> >   - Addressed ACPI related comments in PATCH15 and PATCH16 of v2
> >   - New PATCH17 and PATCH18 in this series
> >
> > Changes since v1:
> >   - Addressed DT bindings related comments in PATCH2, PATCH3, and
> >     PATCH7 of v1 series
> >   - Addressed comments in PATCH6 and PATCH8 of v1 series
> >   - New PATCH6 in v2 series to allow fwnode based mailbox channel
> >     request
> >   - New PATCH10 and PATCH11 to add RPMI system MSI based interrupt
> >     controller driver
> >   - New PATCH12 to PATCH16 which adds ACPI support in SBI MPXY
> >     mailbox driver and RPMI system MSI driver
> >   - New PATCH17 to enable required kconfig option to allow graceful
> >     shutdown on QEMU virt machine
> >
> > Anup Patel (14):
> >    dt-bindings: mailbox: Add bindings for RPMI shared memory transport
> >    dt-bindings: mailbox: Add bindings for RISC-V SBI MPXY extension
> >    RISC-V: Add defines for the SBI message proxy extension
> >    mailbox: Add common header for RPMI messages sent via mailbox
> >    mailbox: Allow controller specific mapping using fwnode
> >    byteorder: Add memcpy_to_le32() and memcpy_from_le32()
> >    mailbox: Add RISC-V SBI message proxy (MPXY) based mailbox driver
> >    dt-bindings: clock: Add RPMI clock service message proxy bindings
> >    dt-bindings: clock: Add RPMI clock service controller bindings
> >    dt-bindings: Add RPMI system MSI message proxy bindings
> >    dt-bindings: Add RPMI system MSI interrupt controller bindings
> >    irqchip: Add driver for the RPMI system MSI service group
> >    RISC-V: Enable GPIO keyboard and event device in RV64 defconfig
> >    MAINTAINERS: Add entry for RISC-V RPMI and MPXY drivers
> >
> > Rahul Pathak (1):
> >    clk: Add clock driver for the RISC-V RPMI clock service group
> >
> > Sunil V L (9):
> >    ACPI: property: Refactor acpi_fwnode_get_reference_args() to support
> >      nargs_prop
> >    ACPI: Add support for nargs_prop in acpi_fwnode_get_reference_args()
> >    ACPI: scan: Update honor list for RPMI System MSI
> >    ACPI: RISC-V: Create interrupt controller list in sorted order
> >    ACPI: RISC-V: Add support to update gsi range
> >    ACPI: RISC-V: Add RPMI System MSI to GSI mapping
> >    irqchip/irq-riscv-imsic-early: Export imsic_acpi_get_fwnode()
> >    mailbox/riscv-sbi-mpxy: Add ACPI support
> >    irqchip/riscv-rpmi-sysmsi: Add ACPI support
> >
> >   .../bindings/clock/riscv,rpmi-clock.yaml      |   64 ++
> >   .../bindings/clock/riscv,rpmi-mpxy-clock.yaml |   64 ++
> >   .../riscv,rpmi-mpxy-system-msi.yaml           |   67 ++
> >   .../riscv,rpmi-system-msi.yaml                |   74 ++
> >   .../mailbox/riscv,rpmi-shmem-mbox.yaml        |  124 ++
> >   .../bindings/mailbox/riscv,sbi-mpxy-mbox.yaml |   51 +
> >   MAINTAINERS                                   |   15 +
> >   arch/riscv/configs/defconfig                  |    2 +
> >   arch/riscv/include/asm/irq.h                  |    6 +
> >   arch/riscv/include/asm/sbi.h                  |   63 +
> >   drivers/acpi/property.c                       |  128 ++-
> >   drivers/acpi/riscv/irq.c                      |   75 +-
> >   drivers/acpi/scan.c                           |    2 +
> >   drivers/base/property.c                       |    2 +-
> >   drivers/clk/Kconfig                           |    8 +
> >   drivers/clk/Makefile                          |    1 +
> >   drivers/clk/clk-rpmi.c                        |  616 ++++++++++
> >   drivers/irqchip/Kconfig                       |    7 +
> >   drivers/irqchip/Makefile                      |    1 +
> >   drivers/irqchip/irq-riscv-imsic-early.c       |    2 +
> >   drivers/irqchip/irq-riscv-rpmi-sysmsi.c       |  328 ++++++
> >   drivers/mailbox/Kconfig                       |   11 +
> >   drivers/mailbox/Makefile                      |    2 +
> >   drivers/mailbox/mailbox.c                     |   65 +-
> >   drivers/mailbox/riscv-sbi-mpxy-mbox.c         | 1017 +++++++++++++++++
> >   include/linux/byteorder/generic.h             |   16 +
> >   include/linux/mailbox/riscv-rpmi-message.h    |  243 ++++
> >   include/linux/mailbox_controller.h            |    3 +
> >   include/linux/wordpart.h                      |   16 +
> >   29 files changed, 2990 insertions(+), 83 deletions(-)
> >   create mode 100644 Documentation/devicetree/bindings/clock/riscv,rpmi-clock.yaml
> >   create mode 100644 Documentation/devicetree/bindings/clock/riscv,rpmi-mpxy-clock.yaml
> >   create mode 100644 Documentation/devicetree/bindings/interrupt-controller/riscv,rpmi-mpxy-system-msi.yaml
> >   create mode 100644 Documentation/devicetree/bindings/interrupt-controller/riscv,rpmi-system-msi.yaml
> >   create mode 100644 Documentation/devicetree/bindings/mailbox/riscv,rpmi-shmem-mbox.yaml
> >   create mode 100644 Documentation/devicetree/bindings/mailbox/riscv,sbi-mpxy-mbox.yaml
> >   create mode 100644 drivers/clk/clk-rpmi.c
> >   create mode 100644 drivers/irqchip/irq-riscv-rpmi-sysmsi.c
> >   create mode 100644 drivers/mailbox/riscv-sbi-mpxy-mbox.c
> >   create mode 100644 include/linux/mailbox/riscv-rpmi-message.h
> >
>
> Most of the patches have been AB/RB by their respective maintainers, so
> how do you expect the patchset to be merged? Should it go through the
> riscv tree?
>
> Let me know how you want to proceed, I'd be happy to merge it if that's
> easier for everyone.
>

We discussed this series in today's patchwork meeting and
Palmer has agreed to take this through the RISC-V tree. He
will also provide a shared tag for the benefit of other maintainers.

Please sync-up with Palmer whenever you can.

Thanks,
Anup



More information about the linux-riscv mailing list