qemu-cr16/target/arm
Peter Maydell 4f2b82f604 target/arm: Reinstate bogus AArch32 DBGDTRTX register for migration compat
In commit 655659a74a we fixed some bugs in the encoding of the
Debug Communications Channel registers, including that we were
incorrectly exposing an AArch32 register at p14, 3, c0, c5, 0.

Unfortunately removing a register is a break of forwards migration
compatibility for TCG, because we will fail the migration if the
source QEMU passes us a cpreg which the destination QEMU does not
have.  We don't have a mechanism for saying "it's OK to ignore this
sysreg in the inbound data", so for the 10.1 release reinstate the
incorrect AArch32 register.

(We probably have had other cases in the past of breaking migration
compatibility like this, but we didn't notice because we didn't test
and in any case not that many people care about TCG migration
compatibility.  KVM migration compat is not affected because for KVM
we treat the kernel as the source of truth for what system registers
are present.)

Fixes: 655659a74a ("target/arm: Correct encoding of Debug Communications Channel registers")
Reported-by: Fabiano Rosas <farosas@suse.de>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Fabiano Rosas <farosas@suse.de>
Reviewed-by: Pierrick Bouvier <pierrick.bouvier@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20250731134338.250203-1-peter.maydell@linaro.org
2025-08-01 16:48:50 +01:00
..
hvf target/arm: hvf: stubbing reads to LORC_EL1 2025-07-25 10:39:32 +01:00
tcg target/arm: Fix LD1W, LD1D to 128-bit elements 2025-07-25 10:31:45 +01:00
arch_dump.c target/arm/arch_dump: remove TARGET_AARCH64 conditionals 2025-05-14 15:12:40 +01:00
arm-powerctl.c include: Rename sysemu/ -> system/ 2024-12-20 17:44:56 +01:00
arm-powerctl.h
arm-qmp-cmds.c target/qmp: Use target_cpu_type() 2025-07-15 02:56:39 -04:00
common-semi-target.h target/arm/common-semi-target.h: Remove unnecessary boot.h include 2023-10-19 14:32:13 +01:00
cortex-regs.c target/arm: Saturate L2CTLR_EL1 core count field rather than overflowing 2023-05-18 11:39:33 +01:00
cpregs-pmu.c target/arm: add support for 64-bit PMCCNTR in AArch32 mode 2025-07-31 16:13:37 +01:00
cpregs.h target/arm: Split out performance monitor regs to cpregs-pmu.c 2025-07-10 09:21:45 +01:00
cpu-features.h target/arm: Add isar feature tests for SME2p1, SVE2p1 2025-07-04 15:52:21 +01:00
cpu-param.h accel/tcg: Move TARGET_TAGGED_ADDRESSES to TCGCPUOps.untagged_addr 2025-05-05 09:24:10 -07:00
cpu-qom.h target/arm: Remove TYPE_AARCH64_CPU 2025-05-14 14:29:46 +01:00
cpu-sysregs.h arm/cpu: Add sysreg definitions in cpu-sysregs.h 2025-07-01 15:08:26 +01:00
cpu-sysregs.h.inc arm/cpu: store clidr into the idregs array 2025-07-10 09:13:03 +01:00
cpu.c qemu: Declare all load/store helper in 'qemu/bswap.h' 2025-07-15 02:56:39 -04:00
cpu.h arm/cpu: store clidr into the idregs array 2025-07-10 09:13:03 +01:00
cpu32-stubs.c target/arm/cpu: remove TARGET_AARCH64 in arm_cpu_finalize_features 2025-05-14 15:12:40 +01:00
cpu64.c arm/cpu: store clidr into the idregs array 2025-07-10 09:13:03 +01:00
debug_helper.c target/arm: Reinstate bogus AArch32 DBGDTRTX register for migration compat 2025-08-01 16:48:50 +01:00
gdbstub.c target/arm: Handle AArch64 gdb read/write regs in TYPE_ARM_CPU 2025-04-25 17:00:42 +02:00
gdbstub64.c exec/cpu-all: remove exec/target_page include 2025-04-23 15:04:57 -07:00
gtimer.h target/arm: Document the architectural names of our GTIMERs 2025-03-07 10:08:21 +00:00
helper.c target/arm: Split out performance monitor regs to cpregs-pmu.c 2025-07-10 09:21:45 +01:00
helper.h target/arm/helper: extract common helpers 2025-05-14 15:12:40 +01:00
hvf-stub.c target/arm/hvf_arm: Avoid using poisoned CONFIG_HVF definition 2025-05-29 17:45:10 +01:00
hvf_arm.h target/arm/hvf: Include missing 'cpu-qom.h' header 2025-05-29 17:45:12 +01:00
hyp_gdbstub.c target/arm: Replace target_ulong -> vaddr for HWBreakpoint 2025-05-14 15:12:40 +01:00
idau.h
internals.h target/arm: Pack mtedesc into upper 32 bits of descriptor 2025-07-25 10:31:45 +01:00
Kconfig kconfig: express dependency of individual boards on libfdt 2024-05-10 15:45:15 +02:00
kvm-consts.h exec: Rename NEED_CPU_H -> COMPILING_PER_TARGET 2024-04-26 09:49:51 +02:00
kvm-stub.c target/arm/kvm: Add helper to detect EL2 when using KVM 2025-07-10 11:41:02 +01:00
kvm.c target/arm: Enable feature ARM_FEATURE_EL2 if EL2 is supported 2025-07-10 11:41:07 +01:00
kvm_arm.h target/arm: Provide always-false kvm_arm_*_supported() stubs for usermode 2025-07-21 10:07:53 +01:00
machine.c target/arm: Add ZT0 2025-07-04 15:52:21 +01:00
meson.build target/arm: Split out performance monitor regs to cpregs-pmu.c 2025-07-10 09:21:45 +01:00
multiprocessing.h target/arm: Expose arm_cpu_mp_affinity() in 'multiprocessing.h' header 2024-01-26 11:30:48 +00:00
ptw.c arm/cpu: Store aa64mmfr0-3 into the idregs array 2025-07-01 15:08:27 +01:00
syndrome.h target/arm: Implement SME2 ZERO ZT0 2025-07-04 15:52:21 +01:00
tcg-stubs.c target/arm: Drop stub for define_tlb_insn_regs 2025-07-10 09:16:46 +01:00
trace-events target/arm: Implement FEAT_ECV CNTPOFF_EL2 handling 2024-03-07 12:19:03 +00:00
trace.h
vfp_fpscr.c target/arm: Rename vfp_helper.c to vfp_fpscr.c 2025-02-25 15:32:58 +00:00