On 7/21/23 15:32, Peter Maydell wrote:
A lot of the code called from helper_exception_bkpt_insn() is written
assuming A-profile, but we will also call this helper on M-profile
CPUs when they execute a BKPT insn.  This used to work by accident,
but recent changes mean that we will hit an assert when some of this
code calls down into lower level functions that end up calling
arm_security_space_below_el3(), arm_el_is_aa64(), and other functions
that now explicitly assert that the guest CPU is not M-profile.

Handle M-profile directly to avoid the assertions:
  * in arm_debug_target_el(), M-profile debug exceptions always
    go to EL1
  * in arm_debug_exception_fsr(), M-profile always uses the short
    format FSR (compare commit d7fe699be54b2, though in this case
    the code in arm_v7m_cpu_do_interrupt() does not need to
    look at the FSR value at all)

Cc:qemu-sta...@nongnu.org
Resolves:https://gitlab.com/qemu-project/qemu/-/issues/1775
Signed-off-by: Peter Maydell<peter.mayd...@linaro.org>
---
Not sure exactly when this assert() got in (probably in the
semi-recent refactorings for realm support), but it won't hurt
to backport the fix even if the older QEMU doesn't assert().
---

Reviewed-by: Richard Henderson <richard.hender...@linaro.org>

r~

Reply via email to