This series implements IOPMP specification v1.0.0-draft4 rapid-k model and add IOPMP device to RISC-V virt machine.
Patch 1 add config STREAM make other device can reuse /hw/core/stream.c, IOPMP implementation will use it. Patch 2 implement IOPMP deivce. Patch 3 add IOPMP device to RISC-V virt machine. The IOPMP specification url: https://github.com/riscv-non-isa/iopmp-spec/blob/main/riscv_iopmp_specification.pdf Changes for v6: - Rebased - IOPMP: Fix MDLCK_MD and ENTRYLCK_F did not lock correspond registers Fix iopmp_write for ENTRY_ADDRH and ENTRYLCK_L - Refine coding style (Daniel Henrique Barboza) Thanks, Ethan Chen Ethan Chen (3): hw/core: Add config stream Add RISC-V IOPMP support hw/riscv/virt: Add IOPMP support docs/system/riscv/virt.rst | 12 + hw/Kconfig | 1 + hw/core/Kconfig | 3 + hw/core/meson.build | 2 +- hw/misc/Kconfig | 4 + hw/misc/meson.build | 1 + hw/misc/riscv_iopmp.c | 1202 +++++++++++++++++ hw/misc/trace-events | 4 + hw/riscv/Kconfig | 1 + hw/riscv/virt.c | 110 +- include/hw/misc/riscv_iopmp.h | 187 +++ .../hw/misc/riscv_iopmp_transaction_info.h | 28 + include/hw/riscv/virt.h | 8 +- 13 files changed, 1559 insertions(+), 4 deletions(-) create mode 100644 hw/misc/riscv_iopmp.c create mode 100644 include/hw/misc/riscv_iopmp.h create mode 100644 include/hw/misc/riscv_iopmp_transaction_info.h -- 2.34.1