target/arm: Don't implement *32_EL2 registers when EL1 is AArch64 only
authorPeter Maydell <peter.maydell@linaro.org>
Tue, 19 Dec 2023 17:57:48 +0000 (17:57 +0000)
committerPeter Maydell <peter.maydell@linaro.org>
Tue, 19 Dec 2023 17:57:48 +0000 (17:57 +0000)
commitc36a0d577b82afaa2a5a9d7332cf96b44247ed6d
tree2e77bd859cb2aca4a436590de40f6d5345f24043
parent366bf10e1104fda9e68db6a975064aa6e5169372
target/arm: Don't implement *32_EL2 registers when EL1 is AArch64 only

The system registers DBGVCR32_EL2, FPEXC32_EL2, DACR32_EL2 and
IFSR32_EL2 are present only to allow an AArch64 EL2 or EL3 to read
and write the contents of an AArch32-only system register.  The
architecture requires that they are present only when EL1 can be
AArch32, but we implement them unconditionally.  This was OK when all
our CPUs supported AArch32 EL1, but we have quite a lot of CPU models
now which only support AArch64 at EL1:
 a64fx
 cortex-a76
 cortex-a710
 neoverse-n1
 neoverse-n2
 neoverse-v1

Only define these registers for CPUs which allow AArch32 EL1.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20231121144605.3980419-1-peter.maydell@linaro.org
target/arm/debug_helper.c
target/arm/helper.c