Re: [RFC PATCH v5 06/22] target/arm: Add support for Non-maskable Interrupt

2024-03-19 Thread Richard Henderson
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

Re: [RFC PATCH v5 06/22] target/arm: Add support for Non-maskable Interrupt

2024-03-19 Thread Peter Maydell
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) && > > +

Re: [RFC PATCH v5 06/22] target/arm: Add support for Non-maskable Interrupt

2024-02-29 Thread Richard Henderson
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_

Re: [RFC PATCH v5 06/22] target/arm: Add support for Non-maskable Interrupt

2024-02-29 Thread Richard Henderson
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

[RFC PATCH v5 06/22] target/arm: Add support for Non-maskable Interrupt

2024-02-29 Thread Jinjie Ruan via
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