[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH v2] target/arm: adjust program counter for wfi exception in A

From: Peter Maydell
Subject: Re: [PATCH v2] target/arm: adjust program counter for wfi exception in AArch32
Date: Thu, 16 Jan 2020 18:00:14 +0000

On Mon, 13 Jan 2020 at 15:59, Jeff Kubascik
<address@hidden> wrote:
> The wfi instruction can be configured to be trapped by a higher exception
> level, such as the EL2 hypervisor. When the instruction is trapped, the
> program counter should contain the address of the wfi instruction that
> caused the exception. The program counter is adjusted for this in the wfi op
> helper function.
> However, this correction is done to env->pc, which only applies to AArch64
> mode. For AArch32, the program counter is stored in env->regs[15]. This
> adds an if-else statement to modify the correct program counter location
> based on the the current CPU mode.
> Signed-off-by: Jeff Kubascik <address@hidden>
> ---
> Hello,
> I am using the ARMv8 version of QEMU to run the Xen hypervisor with a guest
> virtual machine compiled for AArch32/Thumb code. I have noticed that when
> the AArch32 guest VM executes the wfi instruction, the hypervisor trap of
> the wfi instruction sees the program counter contain the address of the
> instruction following the wfi. This does not occur for an AARch64 guest VM;
> in this case, the program counter contains the address of the wfi
> instruction. I am confident the correct behavior in both cases is for the
> program counter to contain the address of the wfi instruction, as this works
> on actual hardware (Xilinx Zynq UltraScale+ MPSoC).
> I have tested the above patch and it works for Xen with both an AArch64
> guest (Linux) and an AArch32 guest (RTEMS). I'm still getting accustomed to
> the QEMU code base, so it may not be correct. Any feedback would be greatly
> appreciated.
> Sincerely,
> Jeff Kubascik
> Changes in v2:
> - Added braces {} to if-else statement, per patchew feedback
> ---

Applied to target-arm.next, thanks.

-- PMM

reply via email to

[Prev in Thread] Current Thread [Next in Thread]