This series introduces the user-space AIA MSI emulation when using KVM acceleration.
After this series, RISC-V QEMU virt machine with KVM acceleration has 3 parameters to control the type of irqchip and its emulation method: - Machine prop "aia" controls the type of irqchip - none: use PLIC and emulated in user-space - aplic: use AIA wired and emulated in user-space - aplic-imsic: use AIA MSI, emulation mode is determined by "kernel-irqchip" and "riscv-imsic" - Accel prop "kernel-irqchip", effective with AIA MSI - on: in-kernel APLIC and in-kernel IMSIC - off: user-space APLIC and user-space IMSIC - split: user-space APLIC and in-kernel IMSIC - Accel prop "kernel-irqchip", effective with in-kernel IMSIC - emul: use MRIF as in-kernel IMSIC - hw: use hardware guest IMSIC file as in-kernel IMSIC - auto: use the hardware guest IMSICs whenever available otherwise fallback to MRIF Yong-Xuan Wang (8): target/riscv/kvm: rewrite get/set for KVM_REG_RISCV_CSR target/riscv/kvm: add KVM_REG_RISCV_CSR_AIA target/riscv/kvm: add KVM_REG_RISCV_CSR_SMSTATEEN target/riscv: add helper to get CSR name target/riscv/kvm: rewrite kvm_riscv_handle_csr target/riscv/kvm: add CSR_SIREG and CSR_STOPEI emulation target/riscv/kvm: rename riscv-aia to riscv-imsic docs: update the description about RISC-V AIA docs/specs/riscv-aia.rst | 24 +++- docs/system/riscv/virt.rst | 10 +- target/riscv/cpu.h | 8 +- target/riscv/csr.c | 30 ++-- target/riscv/kvm/kvm-cpu.c | 287 +++++++++++++++++++++++++++++-------- 5 files changed, 266 insertions(+), 93 deletions(-) -- 2.17.1