[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