aboutsummaryrefslogtreecommitdiff
path: root/target/sparc/cpu.h
diff options
context:
space:
mode:
authorPeter Maydell <peter.maydell@linaro.org>2018-02-22 15:12:51 +0000
committerPeter Maydell <peter.maydell@linaro.org>2018-02-22 15:12:51 +0000
commit36476562d57a3b64bbe86db26e63677dd21907c5 (patch)
treee0e388f54b222a16d8ae5cd5aac53b9940e45288 /target/sparc/cpu.h
parentff8689611a1d954897d857b28f7ef404e11cfa2c (diff)
downloadqemu-36476562d57a3b64bbe86db26e63677dd21907c5.zip
qemu-36476562d57a3b64bbe86db26e63677dd21907c5.tar.gz
qemu-36476562d57a3b64bbe86db26e63677dd21907c5.tar.bz2
target/arm: Fix register definitions for VMIDR and VMPIDR
The register definitions for VMIDR and VMPIDR have separate reginfo structs for the AArch32 and AArch64 registers. However the 32-bit versions are wrong: * they use offsetof instead of offsetoflow32 to mark where the 32-bit value lives in the uint64_t CPU state field * they don't mark themselves as ARM_CP_ALIAS In particular this means that if you try to use an Arm guest CPU which enables EL2 on a big-endian host it will assert at reset: target/arm/cpu.c:114: cp_reg_check_reset: Assertion `oldvalue == newvalue' failed. because the reset of the 32-bit register writes to the top half of the uint64_t. Correct the errors in the structures. Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org> --- This is necessary for 'make check' to pass on big endian systems with the 'raspi3' board enabled, which is the first board which has an EL2-enabled-by-default CPU.
Diffstat (limited to 'target/sparc/cpu.h')
0 files changed, 0 insertions, 0 deletions