qemu-cr16/target/arm
Peter Maydell 40b200279c target/arm: Suppress debug exceptions when OS Lock set
The "OS Lock" in the Arm debug architecture is a way for software
to suppress debug exceptions while it is trying to power down
a CPU and save the state of the breakpoint and watchpoint
registers. In QEMU we implemented the support for writing
the OS Lock bit via OSLAR_EL1 and reading it via OSLSR_EL1,
but didn't implement the actual behaviour.

The required behaviour with the OS Lock set is:
 * debug exceptions (apart from BKPT insns) are suppressed
 * some MDSCR_EL1 bits allow write access to the corresponding
   EDSCR external debug status register that they shadow
   (we can ignore this because we don't implement external debug)
 * similarly with the OSECCR_EL1 which shadows the EDECCR
   (but we don't implement OSECCR_EL1 anyway)

Implement the missing behaviour of suppressing debug
exceptions.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20220630194116.3438513-4-peter.maydell@linaro.org
2022-07-07 11:37:33 +01:00
..
hvf Fix 'writeable' typos 2022-06-08 19:38:47 +01:00
a32-uncond.decode
a32.decode
arch_dump.c target/arm: Rename sve_zcr_len_for_el to sve_vqm1_for_el 2022-06-08 19:38:57 +01:00
arm-powerctl.c
arm-powerctl.h
arm_ldst.h
common-semi-target.h semihosting: Split out common-semi-target.h 2022-06-28 04:35:07 +05:30
cpregs.h target/arm: Move define_debug_regs() to debug_helper.c 2022-07-07 11:37:33 +01:00
cpu-param.h
cpu-qom.h
cpu.c disas: Remove libvixl disassembler 2022-07-05 10:15:49 +02:00
cpu.h target/arm: Add SVL to TB flags 2022-06-27 11:18:17 +01:00
cpu64.c target/arm: Add cpu properties for SME 2022-06-27 11:18:17 +01:00
cpu_tcg.c
crypto_helper.c
debug_helper.c target/arm: Suppress debug exceptions when OS Lock set 2022-07-07 11:37:33 +01:00
gdbstub.c Fix 'writeable' typos 2022-06-08 19:38:47 +01:00
gdbstub64.c target/arm: Rename sve_zcr_len_for_el to sve_vqm1_for_el 2022-06-08 19:38:57 +01:00
helper-a64.c
helper-a64.h
helper-mve.h
helper-sme.h target/arm: Implement SMSTART, SMSTOP 2022-06-27 11:18:17 +01:00
helper-sve.h
helper.c target/arm: Move define_debug_regs() to debug_helper.c 2022-07-07 11:37:33 +01:00
helper.h target/arm: Implement SMSTART, SMSTOP 2022-06-27 11:18:17 +01:00
hvf_arm.h
idau.h
internals.h target/arm: Move define_debug_regs() to debug_helper.c 2022-07-07 11:37:33 +01:00
iwmmxt_helper.c
Kconfig
kvm-consts.h
kvm-stub.c
kvm.c
kvm64.c target/arm: Create ARMVQMap 2022-06-27 11:18:17 +01:00
kvm_arm.h target/arm: Use uint32_t instead of bitmap for sve vq's 2022-06-08 19:38:57 +01:00
m-nocp.decode
m_helper.c semihosting: Return void from do_common_semihosting 2022-06-28 04:35:07 +05:30
machine.c target/arm: Add the SME ZA storage to CPUARMState 2022-06-27 11:18:17 +01:00
meson.build target/arm: Implement SMSTART, SMSTOP 2022-06-27 11:18:17 +01:00
monitor.c
mte_helper.c
mve.decode
mve_helper.c target/arm: Use expand_pred_b in mve_helper.c 2022-06-08 19:38:58 +01:00
neon-dp.decode
neon-ls.decode
neon-shared.decode
neon_helper.c
op_addsub.h
op_helper.c target/arm: Introduce helper_exception_with_syndrome 2022-06-10 14:32:34 +01:00
pauth_helper.c
psci.c
ptw.c target/arm: Check V7VE as well as LPAE in arm_pamax 2022-06-27 11:18:17 +01:00
sme_helper.c target/arm: Implement SMSTART, SMSTOP 2022-06-27 11:18:17 +01:00
sve.decode target/arm: Use TRANS_FEAT for FMMLA 2022-05-30 17:05:09 +01:00
sve_helper.c target/arm: Record tagged bit for user-only in sve_probe_page 2022-07-07 11:36:08 +01:00
sve_ldst_internal.h target/arm: Export sve contiguous ldst support functions 2022-06-08 19:38:58 +01:00
syndrome.h target/arm: Add syn_smetrap 2022-06-27 11:18:17 +01:00
t16.decode
t32.decode
tlb_helper.c target/arm: Move {arm_s1_, }regime_using_lpae_format to tlb_helper.c 2022-06-08 19:38:52 +01:00
trace-events
trace.h
translate-a32.h
translate-a64.c target/arm: Add SVL to TB flags 2022-06-27 11:18:17 +01:00
translate-a64.h target/arm: Move pred_{full, gvec}_reg_{offset, size} to translate-a64.h 2022-06-27 11:18:17 +01:00
translate-m-nocp.c target/arm: Introduce gen_exception_insn 2022-06-10 14:32:32 +01:00
translate-mve.c target/arm: Introduce gen_exception_insn 2022-06-10 14:32:32 +01:00
translate-neon.c
translate-sve.c target/arm: Move pred_{full, gvec}_reg_{offset, size} to translate-a64.h 2022-06-27 11:18:17 +01:00
translate-vfp.c target/arm: Rename gen_exception_insn to gen_exception_insn_el 2022-06-10 14:32:32 +01:00
translate.c target/arm: Remove default_exception_el 2022-06-10 14:32:34 +01:00
translate.h target/arm: Add SVL to TB flags 2022-06-27 11:18:17 +01:00
vec_helper.c target/arm: Export bfdotadd from vec_helper.c 2022-06-08 19:38:58 +01:00
vec_internal.h target/arm: Export bfdotadd from vec_helper.c 2022-06-08 19:38:58 +01:00
vfp-uncond.decode
vfp.decode
vfp_helper.c