[PATCH v7 0/2] Support RISC-V IOPMP

Ethan Chen via posted 2 patches 1 month ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20240612031706.2927602-1-ethan84@andestech.com
Maintainers: Paolo Bonzini <pbonzini@redhat.com>, Palmer Dabbelt <palmer@dabbelt.com>, Alistair Francis <alistair.francis@wdc.com>, Bin Meng <bmeng.cn@gmail.com>, Weiwei Li <liwei1518@gmail.com>, Daniel Henrique Barboza <dbarboza@ventanamicro.com>, Liu Zhiwei <zhiwei_liu@linux.alibaba.com>
docs/system/riscv/virt.rst    |    6 +
hw/misc/Kconfig               |    3 +
hw/misc/meson.build           |    1 +
hw/misc/riscv_iopmp.c         | 1002 +++++++++++++++++++++++++++++++++
hw/misc/trace-events          |    4 +
hw/riscv/Kconfig              |    1 +
hw/riscv/virt.c               |   57 +-
include/hw/misc/riscv_iopmp.h |  152 +++++
include/hw/riscv/virt.h       |    5 +-
9 files changed, 1228 insertions(+), 3 deletions(-)
create mode 100644 hw/misc/riscv_iopmp.c
create mode 100644 include/hw/misc/riscv_iopmp.h
[PATCH v7 0/2] Support RISC-V IOPMP
Posted by Ethan Chen via 1 month ago
Due to changing the referenced specification version, this patch has changed
a lot in this version.

This series implements basic functions of IOPMP specification v0.9.1 rapid-k
model.
The specification url:
https://github.com/riscv-non-isa/iopmp-spec/releases/tag/v0.9.1

When IOPMP is enabled, memory access from devices will check by IOPMP.

CPU as an IOPMP requestor has not been implemented because the IOTLB does not
support recording sections outside the current CPU address space.

Changes for v7:

  - Change the specification version to v0.9.1
  - Remove the sps extension
  - Remove stall support, transaction information which need requestor device
    support.
  - Remove iopmp_cascade option for virt machine
  - Refine 'addr' range checks switch case (Daniel)


Ethan Chen (2):
  hw/misc/riscv_iopmp: Add RISC-V IOPMP device
  hw/riscv/virt: Add IOPMP support

 docs/system/riscv/virt.rst    |    6 +
 hw/misc/Kconfig               |    3 +
 hw/misc/meson.build           |    1 +
 hw/misc/riscv_iopmp.c         | 1002 +++++++++++++++++++++++++++++++++
 hw/misc/trace-events          |    4 +
 hw/riscv/Kconfig              |    1 +
 hw/riscv/virt.c               |   57 +-
 include/hw/misc/riscv_iopmp.h |  152 +++++
 include/hw/riscv/virt.h       |    5 +-
 9 files changed, 1228 insertions(+), 3 deletions(-)
 create mode 100644 hw/misc/riscv_iopmp.c
 create mode 100644 include/hw/misc/riscv_iopmp.h

-- 
2.34.1