summary refs log tree commit diff stats
path: root/util/qemu-timer.c
diff options
context:
space:
mode:
authorPeter Maydell <peter.maydell@linaro.org>2025-02-28 16:24:24 +0000
committerPeter Maydell <peter.maydell@linaro.org>2025-03-07 10:33:41 +0000
commitcc503abf4ba30ed34bbf18b3fd8eaa8046fae48b (patch)
tree122be10b3d7c156870dd5163da4cf10d272437c7 /util/qemu-timer.c
parent5be4419c573e78c21be953a4c31947f3087931a5 (diff)
downloadfocaccia-qemu-cc503abf4ba30ed34bbf18b3fd8eaa8046fae48b.tar.gz
focaccia-qemu-cc503abf4ba30ed34bbf18b3fd8eaa8046fae48b.zip
target/arm: Make dummy debug registers RAZ, not NOP
In debug_helper.c we provide a few dummy versions of
debug registers:
 * DBGVCR (AArch32 only): enable bits for vector-catch
   debug events
 * MDCCINT_EL1: interrupt enable bits for the DCC
   debug communications channel
 * DBGVCR32_EL2: the AArch64 accessor for the state in
   DBGVCR

We implemented these only to stop Linux crashing on startup,
but we chose to implement them as ARM_CP_NOP. This worked
for Linux where it only cares about trying to write to these
registers, but is very confusing behaviour for anything that
wants to read the registers (perhaps for context state switches),
because the destination register will be left with whatever
random value it happened to have before the read.

Model these registers instead as RAZ.

Fixes: 5e8b12ffbb8c68 ("target-arm: Implement minimal DBGVCR, OSDLR_EL1, MDCCSR_EL0")
Fixes: 5dbdc4342f479d ("target-arm: Implement dummy MDCCINT_EL1")
Resolves: https://gitlab.com/qemu-project/qemu/-/issues/2708
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20250228162424.1917269-1-peter.maydell@linaro.org
Diffstat (limited to 'util/qemu-timer.c')
0 files changed, 0 insertions, 0 deletions