diff options
author | Peter Maydell <peter.maydell@linaro.org> | 2025-02-28 16:24:24 +0000 |
---|---|---|
committer | Peter Maydell <peter.maydell@linaro.org> | 2025-03-07 10:33:41 +0000 |
commit | cc503abf4ba30ed34bbf18b3fd8eaa8046fae48b (patch) | |
tree | 122be10b3d7c156870dd5163da4cf10d272437c7 /rust/qemu-api/src | |
parent | 5be4419c573e78c21be953a4c31947f3087931a5 (diff) | |
download | qemu-cc503abf4ba30ed34bbf18b3fd8eaa8046fae48b.zip qemu-cc503abf4ba30ed34bbf18b3fd8eaa8046fae48b.tar.gz qemu-cc503abf4ba30ed34bbf18b3fd8eaa8046fae48b.tar.bz2 |
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 'rust/qemu-api/src')
0 files changed, 0 insertions, 0 deletions