[RFC PATCH 0/3] iommu/riscv: Add irqbypass support without MSI page table

From: fangyu . yu

Date: Thu Oct 08 2026 - 10:00:35 EST


From: Fangyu Yu <fangyu.yu@xxxxxxxxxxxxxxxxx>

The MSI page table is an optional feature of the RISC-V IOMMU
specification. Hardware without the MSI_FLAT capability has no such
table, and MSI writes from devices are translated by the second-stage
page table like any other DMA.

Since the second-stage page table governs where those MSI writes land,
forwarding is still possible without an MSI page table: map the guest
IMSIC GPA to the host IMSIC HPA in the second-stage domain and device
MSI writes reach the vCPU's interrupt file directly, bypassing the host
MSI path entirely.

This patch implements irqbypass using second-stage page table, so it
is a functional supplement for IOMMU without MSI page table.

This series is based on Andrew Jones' v3 irqbypass support series [1]

[1] https://lore.kernel.org/linux-riscv/20260928143113.49838-1-andrew.jones@xxxxxxxxxxxxxxxx/

Fangyu Yu (3):
iommu/riscv: Add guest IMSIC GPA mapping helpers
iommu/riscv: Extract IRQ forwarding payload validation
iommu/riscv: Support IRQ forwarding without MSI page tables

drivers/iommu/riscv/iommu-ir.c | 179 +++++++++++++++++++++++++++++++--
drivers/iommu/riscv/iommu.c | 94 +++++++++++++++++
drivers/iommu/riscv/iommu.h | 12 +++
3 files changed, 276 insertions(+), 9 deletions(-)

--
2.50.1