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>
This commit is contained in:

committed by
Will Deacon

parent
a257e02579
commit
e8002e02ab
@@ -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 */
|
||||
|
Reference in New Issue
Block a user