]> git.proxmox.com Git - mirror_qemu.git/commit
hw/intc/arm_gicv3: Handle icv_nmiar1_read() for icc_nmiar1_read()
authorPeter Maydell <peter.maydell@linaro.org>
Fri, 19 Apr 2024 13:36:33 +0000 (14:36 +0100)
committerPeter Maydell <peter.maydell@linaro.org>
Thu, 25 Apr 2024 09:21:05 +0000 (10:21 +0100)
commitd2c0c6aab6c6748726149c37159a75751ec6ac92
tree41f74d548f2e380b4155aa16ad279e77a0a61ada
parent28cca59c469b16f1352e784b566fd36ace2be4b4
hw/intc/arm_gicv3: Handle icv_nmiar1_read() for icc_nmiar1_read()

Implement icv_nmiar1_read() for icc_nmiar1_read(), so add definition for
ICH_LR_EL2.NMI and ICH_AP1R_EL2.NMI bit.

If FEAT_GICv3_NMI is supported, ich_ap_write() should consider ICV_AP1R_EL1.NMI
bit. In icv_activate_irq() and icv_eoir_write(), the ICV_AP1R_EL1.NMI bit
should be set or clear according to the Non-maskable property. And the RPR
priority should also update the NMI bit according to the APR priority NMI bit.

By the way, add gicv3_icv_nmiar1_read trace event.

If the hpp irq is a NMI, the icv iar read should return 1022 and trap for
NMI again

Signed-off-by: Jinjie Ruan <ruanjinjie@huawei.com>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
[PMM: use cs->nmi_support instead of cs->gic->nmi_support]
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Message-id: 20240407081733.3231820-20-ruanjinjie@huawei.com
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
hw/intc/arm_gicv3_cpuif.c
hw/intc/gicv3_internal.h
hw/intc/trace-events