summaryrefslogtreecommitdiffstats
path: root/arch/arm64/include/asm/cpufeature.h
diff options
context:
space:
mode:
authorArd Biesheuvel <ard.biesheuvel@linaro.org>2018-03-06 17:15:34 +0000
committerWill Deacon <will.deacon@arm.com>2018-03-09 13:23:08 +0000
commite8002e02abf052c07bb87b867789034bc79aac10 (patch)
treedc8c80d2d0f704cde4b20a9c6e0fb3cc270bc406 /arch/arm64/include/asm/cpufeature.h
parenta257e02579e42703de1b7825cbd56cd7191f97b0 (diff)
downloadop-kernel-dev-e8002e02abf052c07bb87b867789034bc79aac10.zip
op-kernel-dev-e8002e02abf052c07bb87b867789034bc79aac10.tar.gz
arm64/errata: add REVIDR handling to framework
In some cases, core variants that are affected by a certain erratum also exist in versions that have the erratum fixed, and this fact is recorded in a dedicated bit in system register REVIDR_EL1. Since the architecture does not require that a certain bit retains its meaning across different variants of the same model, each such REVIDR bit is tightly coupled to a certain revision/variant value, and so we need a list of revidr_mask/midr pairs to carry this information. So add the struct member and the associated macros and handling to allow REVIDR fixes to be taken into account. Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> Signed-off-by: Will Deacon <will.deacon@arm.com>
Diffstat (limited to 'arch/arm64/include/asm/cpufeature.h')
-rw-r--r--arch/arm64/include/asm/cpufeature.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/arch/arm64/include/asm/cpufeature.h b/arch/arm64/include/asm/cpufeature.h
index 060e3a4..fbf0aab 100644
--- a/arch/arm64/include/asm/cpufeature.h
+++ b/arch/arm64/include/asm/cpufeature.h
@@ -105,6 +105,10 @@ struct arm64_cpu_capabilities {
struct { /* To be used for erratum handling only */
u32 midr_model;
u32 midr_range_min, midr_range_max;
+ const struct arm64_midr_revidr {
+ u32 midr_rv; /* revision/variant */
+ u32 revidr_mask;
+ } * const fixed_revs;
};
struct { /* Feature register checking */
OpenPOWER on IntegriCloud