On LoongArch, IRQs can be routed to four vcpus with hardware extioi. This patch adds the extioi virt extension support so that the IRQ can route to 256 vcpus.
v4: - Put patch3 ahead of patch2; - patch1 Introduce two IRQ model(Extended IRQ model and Virt extended IRQ model); - Link to v3: https://patchew.org/QEMU/20240521123225.231072-1-gaos...@loongson.cn/ v3: - Split patch2 to two small patch. - remove unused code. - loongarch_extioi_reset() clear status without checking virt extioi features. - Link to v2: https://patchew.org/QEMU/20240514090756.988096-1-gaos...@loongson.cn/ v2: - Split the patch to two small patch. - Drop 'RFC' title. extioi virt extension suport only enable on kvm mode and the extioi driver need patch[1]. but this series do not affect the old codes in any way. - Link to v1: https://lore.kernel.org/all/20240116022526.498613-1-gaos...@loongson.cn/#r [1]: https://gitee.com/openeuler/kernel/commit/5d97cff72f91f4f20a536efd60eca75bfcb78a64 Thanks. Song Gao Song Gao (3): hw/intc/loongarch_extioi: Add extioi virt extension definition hw/loongarch/virt: Use MemTxAttrs interface for misc ops hw/loongarch/virt: Enable extioi virt extension include/hw/intc/loongarch_extioi.h | 21 ++++ include/hw/loongarch/virt.h | 1 + target/loongarch/cpu.h | 1 + hw/intc/loongarch_extioi.c | 88 +++++++++++++- hw/loongarch/virt.c | 182 +++++++++++++++++++++++------ 5 files changed, 256 insertions(+), 37 deletions(-) -- 2.34.1