Re: [PATCH v6 00/23] Linux SBI MPXY and RPMI drivers
From: Anup Patel
Date: Wed Jul 02 2025 - 01:12:55 EST
Hi Jassi,
On Sun, Jun 22, 2025 at 9:56 PM Jassi Brar <jassisinghbrar@xxxxxxxxx> wrote:
>
> On Wed, Jun 18, 2025 at 7:14 AM Anup Patel <apatel@xxxxxxxxxxxxxxxx> wrote:
> >
> > The SBI v3.0 (MPXY extension) [1] and RPMI v1.0 [2] specifications
> > are frozen and in 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_v6 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 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@xxxxxxxxxxxx/
> > - 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 (13):
> > 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
> > 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()
> > ACPI: property: Add support for cells property
> > 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 | 123 +-
> > 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 | 590 ++++++++++
> > drivers/irqchip/Kconfig | 7 +
> > drivers/irqchip/Makefile | 1 +
> > drivers/irqchip/irq-riscv-imsic-early.c | 2 +
> > drivers/irqchip/irq-riscv-rpmi-sysmsi.c | 324 ++++++
> > drivers/mailbox/Kconfig | 11 +
> > drivers/mailbox/Makefile | 2 +
> > drivers/mailbox/mailbox.c | 65 +-
> > drivers/mailbox/riscv-sbi-mpxy-mbox.c | 1012 +++++++++++++++++
> > include/linux/byteorder/generic.h | 16 +
> > include/linux/mailbox/riscv-rpmi-message.h | 238 ++++
> > include/linux/mailbox_controller.h | 3 +
> > include/linux/wordpart.h | 16 +
> > 29 files changed, 2948 insertions(+), 80 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
> >
> I am ok with the mailbox patches. How are these to be picked into
> mailbox and other subsystems? Maybe sculpt out a separate patchset for
> the mailbox?
The usual mechanism for a series touching multiple
subsystems is to provide a shared tag so that other
maintainers can avoid conflicts.
I will post a v7 pretty soon so Alexandre Ghiti (RISC-V)
or yourself (mailbox) can push it to your -next branch
and provide a shared tag at appropriate time.
Regards,
Anup