From: Bibo Mao Date: Fri, 6 Jun 2025 06:35:23 +0000 (+0800) Subject: hw/loongarch/virt: Disable emulation with IOCSR misc register X-Git-Tag: v10.1.0-rc0~47^2~2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=17fb88a0fa0a13b0e2976a2fe04756337d95fe1f;p=thirdparty%2Fqemu.git hw/loongarch/virt: Disable emulation with IOCSR misc register Register IOCSR MISC_FUNC_REG is to enable features about EXTIOI irqchip. If EXTIOI is emulated in kernel, MISC_FUNC_REG register should be emulated in kernel also. Reviewed-by: Song Gao Signed-off-by: Bibo Mao Message-ID: <20250606063523.2557513-1-maobibo@loongson.cn> Signed-off-by: Song Gao --- diff --git a/hw/loongarch/virt.c b/hw/loongarch/virt.c index 34dfbd13e5c..e5468b6af90 100644 --- a/hw/loongarch/virt.c +++ b/hw/loongarch/virt.c @@ -522,6 +522,10 @@ static MemTxResult virt_iocsr_misc_write(void *opaque, hwaddr addr, switch (addr) { case MISC_FUNC_REG: + if (kvm_irqchip_in_kernel()) { + return MEMTX_OK; + } + if (!virt_is_veiointc_enabled(lvms)) { return MEMTX_OK; } @@ -572,6 +576,10 @@ static MemTxResult virt_iocsr_misc_read(void *opaque, hwaddr addr, ret = 0x303030354133ULL; /* "3A5000" */ break; case MISC_FUNC_REG: + if (kvm_irqchip_in_kernel()) { + return MEMTX_OK; + } + if (!virt_is_veiointc_enabled(lvms)) { ret |= BIT_ULL(IOCSRM_EXTIOI_EN); break;