]> git.ipfire.org Git - thirdparty/qemu.git/commit
target-arm: Make reserved ranges in ID_AA64* spaces RAZ, not UNDEF
authorPeter Maydell <peter.maydell@linaro.org>
Fri, 19 Feb 2016 14:07:43 +0000 (14:07 +0000)
committerMichael Roth <mdroth@linux.vnet.ibm.com>
Thu, 17 Mar 2016 22:48:45 +0000 (17:48 -0500)
commitcab1cc724572a1e418249f827b5f958bd23b1004
treeac5b86da1fd99eb86b0f95a7e1b027976e5d9a3b
parent9ae02175b49dba462feab8f37c9c51ff76bc3809
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>
(cherry picked from commit e20d84c1407d43d5a2e2ac95dbb46db3b0af8f9f)

Conflicts:
target-arm/helper.c

* remove context dep on 4054bfa9

Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
target-arm/cpu-qom.h
target-arm/helper.c