hw/intc/arm_gicv3: Report the NMI interrupt in gicv3_cpuif_update()
In CPU Interface, if the IRQ has the non-maskable property, report NMI to the corresponding PE. Signed-off-by: Jinjie Ruan <ruanjinjie@huawei.com> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Reviewed-by: Peter Maydell <peter.maydell@linaro.org> Message-id: 20240407081733.3231820-22-ruanjinjie@huawei.com Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
parent
d89daa893f
commit
f3c26a44fe
@ -1038,6 +1038,7 @@ void gicv3_cpuif_update(GICv3CPUState *cs)
|
||||
/* Tell the CPU about its highest priority pending interrupt */
|
||||
int irqlevel = 0;
|
||||
int fiqlevel = 0;
|
||||
int nmilevel = 0;
|
||||
ARMCPU *cpu = ARM_CPU(cs->cpu);
|
||||
CPUARMState *env = &cpu->env;
|
||||
|
||||
@ -1076,6 +1077,8 @@ void gicv3_cpuif_update(GICv3CPUState *cs)
|
||||
|
||||
if (isfiq) {
|
||||
fiqlevel = 1;
|
||||
} else if (cs->hppi.nmi) {
|
||||
nmilevel = 1;
|
||||
} else {
|
||||
irqlevel = 1;
|
||||
}
|
||||
@ -1085,6 +1088,7 @@ void gicv3_cpuif_update(GICv3CPUState *cs)
|
||||
|
||||
qemu_set_irq(cs->parent_fiq, fiqlevel);
|
||||
qemu_set_irq(cs->parent_irq, irqlevel);
|
||||
qemu_set_irq(cs->parent_nmi, nmilevel);
|
||||
}
|
||||
|
||||
static uint64_t icc_pmr_read(CPUARMState *env, const ARMCPRegInfo *ri)
|
||||
|
Loading…
Reference in New Issue
Block a user