diff options
author | Peter Maydell <peter.maydell@linaro.org> | 2016-02-19 14:07:43 +0000 |
---|---|---|
committer | Timothy Pearson <tpearson@raptorengineering.com> | 2019-11-29 19:46:49 -0600 |
commit | 8cc18d45ed23aa5dcb24dccb4dbc9c8951464ccc (patch) | |
tree | 9a6f488e6a4d2e6dd4fda722bf28d46e20d87ee5 /include | |
parent | 77324bb10936239619d8df427c6e03fdbc859ade (diff) | |
download | hqemu-8cc18d45ed23aa5dcb24dccb4dbc9c8951464ccc.zip hqemu-8cc18d45ed23aa5dcb24dccb4dbc9c8951464ccc.tar.gz |
target-arm: Make reserved ranges in ID_AA64* spaces RAZ, not UNDEF
The v8 ARM ARM defines that unused spaces in the ID_AA64* system
register ranges are Reserved and must RAZ, rather than being UNDEF.
Implement this.
In particular, ARM v8.2 adds a new feature register ID_AA64MMFR2,
and newer versions of the Linux kernel will attempt to read this,
which causes them not to boot up on versions of QEMU missing this fix.
Since the encoding .opc0 = 3, .opc1 = 0, .crn = 0, .crm = 2, .opc2 = 6
is actually defined in ARMv8 (as ID_MMFR4), we give it an entry in
the ARMCPU struct so CPUs can override it, though since none do
this too will just RAZ.
Cc: qemu-stable@nongnu.org
Reported-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Message-id: 1455890863-11203-1-git-send-email-peter.maydell@linaro.org
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Tested-by: Alex Bennée <alex.bennee@linaro.org>
Diffstat (limited to 'include')
0 files changed, 0 insertions, 0 deletions