qemu-cr16/target/arm
Peter Maydell a23e719ca8 target/arm: Don't set HCR.RW for AArch32 only CPUs
In commit 39ec3fc030 we fixed a bug where we were not implementing
HCR_EL2.RW as RAO/WI for CPUs where EL1 doesn't support AArch32.
However, we got the condition wrong, so we now set this bit even on
CPUs which have no AArch64 support at all.  This is wrong because the
AArch32 HCR register defines this bit as RES0.

Correct the condition we use for forcing HCR_RW to be set.

Cc: qemu-stable@nongnu.org
Resolves: https://gitlab.com/qemu-project/qemu/-/issues/3128
Fixes: 39ec3fc030 ("target/arm: HCR_EL2.RW should be RAO/WI if EL1 doesn't support AArch32")
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20250925115723.1293233-1-peter.maydell@linaro.org
2025-10-07 10:32:21 +01:00
..
hvf target/arm: Implement ID_AA64PFR2_EL1 2025-09-26 13:43:33 +01:00
tcg target/arm: Redirect VHE FOO_EL12 to FOO_EL1 during translation 2025-09-25 15:56:26 +01:00
arch_dump.c target/arm/arch_dump: remove TARGET_AARCH64 conditionals 2025-05-14 15:12:40 +01:00
arm-powerctl.c target/arm: Convert power control DPRINTF() uses to trace events 2025-09-26 11:08: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.c include/semihosting/common-semi: extract common_semi API 2025-09-26 09:55:19 +01:00
cortex-regs.c
cpregs-pmu.c target/arm: Trap PMCR when MDCR_EL2.TPMCR is set 2025-08-30 16:37:22 +01:00
cpregs.h target/arm: Remove define_arm_vh_e2h_redirects_aliases 2025-09-25 15:57:18 +01:00
cpu-features.h target/arm: Implement ID_AA64PFR2_EL1 2025-09-26 13:43:33 +01:00
cpu-irq.c target-arm: remove uses of cpu_interrupt() for user-mode emulation 2025-09-17 19:00:55 +02: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 target/arm: Implement ID_AA64PFR2_EL1 2025-09-26 13:43:33 +01:00
cpu.c target/arm: Trace vCPU reset call 2025-09-26 11:12:22 +01:00
cpu.h target/arm: Move ID register field defs to cpu-features.h 2025-09-26 13:40:43 +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
el2-stubs.c target-arm: remove uses of cpu_interrupt() for user-mode emulation 2025-09-17 19:00:55 +02:00
gdbstub.c target/arm: Redirect VHE FOO_EL12 to FOO_EL1 during translation 2025-09-25 15:56:26 +01:00
gdbstub64.c target/arm: Added support for SME register exposure to GDB 2025-09-16 17:31:54 +01:00
gtimer.h target/arm: Document the architectural names of our GTIMERs 2025-03-07 10:08:21 +00:00
helper.c target/arm: Don't set HCR.RW for AArch32 only CPUs 2025-10-07 10:32:21 +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: Move compare_u64 to helper.c 2025-09-25 15:42:34 +01:00
Kconfig kconfig: express dependency of individual boards on libfdt 2024-05-10 15:45:15 +02:00
kvm-consts.h target/arm: Remove cp argument to ENCODE_AA64_CP_REG 2025-09-25 15:42:34 +01: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 acpi/ghes: don't hard-code the number of sources for HEST table 2025-10-04 10:53:38 -04: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: Drop ARM_FEATURE_IWMMXT handling 2025-09-16 17:31:54 +01:00
meson.build include/semihosting/common-semi: extract common_semi API 2025-09-26 09:55:19 +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 target/arm: Drop ARM_FEATURE_XSCALE handling 2025-09-16 17:31:54 +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: Trace vCPU reset call 2025-09-26 11:12:22 +01:00
trace.h
vfp_fpscr.c target/arm: Rename vfp_helper.c to vfp_fpscr.c 2025-02-25 15:32:58 +00:00