This only implements the external delivery method via the GICv3.
Signed-off-by: Jinjie Ruan<ruanjinjie@huawei.com>
---
v6:
- env->cp15.hcr_el2 -> arm_hcr_el2_eff().
- env->cp15.hcrx_el2 -> arm_hcrx_el2_eff().
- Not include VF && VFNMI in CPU_INTERRUPT_VNMI.
v4:
- Accept NMI unconditionally for arm_cpu_has_work() but add comment.
- Change from & to && for EXCP_IRQ or EXCP_FIQ.
- Refator nmi mask in arm_excp_unmasked().
- Also handle VNMI in arm_cpu_exec_interrupt() and arm_cpu_set_irq().
- Rename virtual to Virtual.
v3:
- Not include CPU_INTERRUPT_NMI when FEAT_NMI not enabled
- Add ARM_CPU_VNMI.
- Refator nmi mask in arm_excp_unmasked().
- Test SCTLR_ELx.NMI for ALLINT mask for NMI.
---
target/arm/cpu-qom.h | 4 +-
target/arm/cpu.c | 85 +++++++++++++++++++++++++++++++++++++++---
target/arm/cpu.h | 4 ++
target/arm/helper.c | 2 +
target/arm/internals.h | 9 +++++
5 files changed, 97 insertions(+), 7 deletions(-)