diff --git a/hw/intc/loongarch_extioi_kvm.c b/hw/intc/loongarch_extioi_kvm.c index e7699ad2ea0be46fe0b0a0b49c207acf5e9ebe5f..a7ee0a8ad7ae16ac2c1a12d72d6de803dd0e5d81 100644 --- a/hw/intc/loongarch_extioi_kvm.c +++ b/hw/intc/loongarch_extioi_kvm.c @@ -115,7 +115,7 @@ static void kvm_loongarch_extioi_realize(DeviceState *dev, Error **errp) } if (!extioi_class->is_created) { - cd.type = KVM_DEV_TYPE_LA_EXTIOI; + cd.type = KVM_DEV_TYPE_LOONGARCH_EIOINTC; ret = kvm_vm_ioctl(kvm_state, KVM_CREATE_DEVICE, &cd); if (ret < 0) { error_setg_errno(errp, errno, diff --git a/hw/intc/loongarch_ipi_kvm.c b/hw/intc/loongarch_ipi_kvm.c index fd308eb0c0433892609ef35e9d7e80967b7f7e8e..57fc05db778ddbfbcb02845801351525cadcddaf 100644 --- a/hw/intc/loongarch_ipi_kvm.c +++ b/hw/intc/loongarch_ipi_kvm.c @@ -128,7 +128,7 @@ static void kvm_loongarch_ipi_realize(DeviceState *dev, Error **errp) } if (!ipi_class->is_created) { - cd.type = KVM_DEV_TYPE_LA_IPI; + cd.type = KVM_DEV_TYPE_LOONGARCH_IPI; ret = kvm_vm_ioctl(kvm_state, KVM_CREATE_DEVICE, &cd); if (ret < 0) { error_setg_errno(errp, errno, "Creating the KVM device failed"); diff --git a/hw/intc/loongarch_pch_pic_kvm.c b/hw/intc/loongarch_pch_pic_kvm.c index 8f66d9a01fe1b153b13f3df1ec557005c0482923..e9cef02f9aacb9e9dbed5b173587e573fd012bcb 100644 --- a/hw/intc/loongarch_pch_pic_kvm.c +++ b/hw/intc/loongarch_pch_pic_kvm.c @@ -113,7 +113,7 @@ static void kvm_loongarch_pch_pic_realize(DeviceState *dev, Error **errp) } if (!pch_pic_class->is_created) { - cd.type = KVM_DEV_TYPE_LA_PCH_PIC; + cd.type = KVM_DEV_TYPE_LOONGARCH_PCHPIC; ret = kvm_vm_ioctl(kvm_state, KVM_CREATE_DEVICE, &cd); if (ret < 0) { error_setg_errno(errp, errno, diff --git a/linux-headers/asm-loongarch/kvm.h b/linux-headers/asm-loongarch/kvm.h index 92c32b7ec9f580bce210683caa0ac5864aae79a3..bc37a986f26617d8f8dba8b2f2e2e03356267beb 100644 --- a/linux-headers/asm-loongarch/kvm.h +++ b/linux-headers/asm-loongarch/kvm.h @@ -134,26 +134,23 @@ struct kvm_iocsr_entry { #define KVM_IRQCHIP_NUM_PINS 64 #define KVM_MAX_CORES 256 -#define KVM_LOONGARCH_VM_HAVE_IRQCHIP 0x40000001 +#define KVM_DEV_LOONGARCH_IPI_GRP_REGS 0x40000001 -#define KVM_DEV_LOONGARCH_IPI_GRP_REGS 0x40000002 +#define KVM_DEV_LOONGARCH_EXTIOI_GRP_REGS 0x40000002 -#define KVM_DEV_LOONGARCH_EXTIOI_GRP_REGS 0x40000003 - -#define KVM_DEV_LOONGARCH_EXTIOI_GRP_SW_STATUS 0x40000006 +#define KVM_DEV_LOONGARCH_EXTIOI_GRP_SW_STATUS 0x40000003 #define KVM_DEV_LOONGARCH_EXTIOI_SW_STATUS_NUM_CPU 0x0 #define KVM_DEV_LOONGARCH_EXTIOI_SW_STATUS_FEATURE 0x1 #define KVM_DEV_LOONGARCH_EXTIOI_SW_STATUS_STATE 0x2 -#define KVM_DEV_LOONGARCH_EXTIOI_GRP_CTRL 0x40000007 +#define KVM_DEV_LOONGARCH_EXTIOI_GRP_CTRL 0x40000004 #define KVM_DEV_LOONGARCH_EXTIOI_CTRL_INIT_NUM_CPU 0x0 #define KVM_DEV_LOONGARCH_EXTIOI_CTRL_INIT_FEATURE 0x1 #define KVM_DEV_LOONGARCH_EXTIOI_CTRL_LOAD_FINISHED 0x3 -#define KVM_DEV_LOONGARCH_PCH_PIC_GRP_CTRL 0x40000004 -#define KVM_DEV_LOONGARCH_PCH_PIC_CTRL_INIT 0 - #define KVM_DEV_LOONGARCH_PCH_PIC_GRP_REGS 0x40000005 +#define KVM_DEV_LOONGARCH_PCH_PIC_GRP_CTRL 0x40000006 +#define KVM_DEV_LOONGARCH_PCH_PIC_CTRL_INIT 0 #endif /* __UAPI_ASM_LOONGARCH_KVM_H */ diff --git a/linux-headers/linux/kvm.h b/linux-headers/linux/kvm.h index d2f6007fb8aeaa246efafcf2bf31599ca1254fdf..656b6163e6874d119c570a52c816357660f40ddc 100644 --- a/linux-headers/linux/kvm.h +++ b/linux-headers/linux/kvm.h @@ -1154,12 +1154,13 @@ enum kvm_device_type { #define KVM_DEV_TYPE_ARM_PV_TIME KVM_DEV_TYPE_ARM_PV_TIME KVM_DEV_TYPE_RISCV_AIA, #define KVM_DEV_TYPE_RISCV_AIA KVM_DEV_TYPE_RISCV_AIA - KVM_DEV_TYPE_LA_PCH_PIC = 0x100, -#define KVM_DEV_TYPE_LA_PCH_PIC KVM_DEV_TYPE_LA_PCH_PIC - KVM_DEV_TYPE_LA_IPI, -#define KVM_DEV_TYPE_LA_IPI KVM_DEV_TYPE_LA_IPI - KVM_DEV_TYPE_LA_EXTIOI, -#define KVM_DEV_TYPE_LA_EXTIOI KVM_DEV_TYPE_LA_EXTIOI + KVM_DEV_TYPE_LOONGARCH_IPI, +#define KVM_DEV_TYPE_LOONGARCH_IPI KVM_DEV_TYPE_LOONGARCH_IPI + KVM_DEV_TYPE_LOONGARCH_EIOINTC, +#define KVM_DEV_TYPE_LOONGARCH_EIOINTC KVM_DEV_TYPE_LOONGARCH_EIOINTC + KVM_DEV_TYPE_LOONGARCH_PCHPIC, +#define KVM_DEV_TYPE_LOONGARCH_PCHPIC KVM_DEV_TYPE_LOONGARCH_PCHPIC + KVM_DEV_TYPE_MAX, }; diff --git a/target/loongarch/kvm/kvm.c b/target/loongarch/kvm/kvm.c index 22177b6220cc86c3ec43a7babd6a5f917afc411b..f42b92d7c895be5ca258027d4da01b2683caa108 100644 --- a/target/loongarch/kvm/kvm.c +++ b/target/loongarch/kvm/kvm.c @@ -973,10 +973,6 @@ int kvm_arch_get_default_type(MachineState *ms) int kvm_arch_init(MachineState *ms, KVMState *s) { cap_has_mp_state = kvm_check_extension(s, KVM_CAP_MP_STATE); - if(!kvm_vm_check_attr(kvm_state, KVM_LOONGARCH_VM_HAVE_IRQCHIP, KVM_LOONGARCH_VM_HAVE_IRQCHIP)) { - s->kernel_irqchip_allowed = false; - } - return 0; }