On 3/19/24 07:03, Peter Maydell wrote:
On Thu, 29 Feb 2024 at 23:02, Richard Henderson
wrote:
On 2/29/24 03:10, Jinjie Ruan via wrote:
+bool new_state = ((env->cp15.hcr_el2 & HCR_VI) &&
+ (env->cp15.hcrx_el2 & HCRX_VINMI)) ||
+ ((env->cp15.hcr_el2
On Thu, 29 Feb 2024 at 23:02, Richard Henderson
wrote:
>
> On 2/29/24 03:10, Jinjie Ruan via wrote:
> > +bool new_state = ((env->cp15.hcr_el2 & HCR_VI) &&
> > + (env->cp15.hcrx_el2 & HCRX_VINMI)) ||
> > + ((env->cp15.hcr_el2 & HCR_VF) &&
> > +
On 2/29/24 03:10, Jinjie Ruan via wrote:
+bool new_state = ((env->cp15.hcr_el2 & HCR_VI) &&
+ (env->cp15.hcrx_el2 & HCRX_VINMI)) ||
+ ((env->cp15.hcr_el2 & HCR_VF) &&
+ (env->cp15.hcrx_el2 & HCRX_VFNMI)) ||
+(env->irq_line_
On 2/29/24 03:10, Jinjie Ruan via wrote:
@@ -900,6 +945,31 @@ void arm_cpu_update_vfiq(ARMCPU *cpu)
}
}
+void arm_cpu_update_vnmi(ARMCPU *cpu)
+{
+/*
+ * Update the interrupt level for VNMI, which is the logical OR of
+ * the HCRX_EL2.VINMI or HCRX_EL2.VFNMI bit and the in
This only implements the external delivery method via the GICv3.
Signed-off-by: Jinjie Ruan
---
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_in