@@ -123,6 +123,11 @@ static struct arm64_ftr_bits ftr_id_aa64mmfr1[] = {
123123 ARM64_FTR_END ,
124124};
125125
126+ static struct arm64_ftr_bits ftr_id_aa64mmfr2 [] = {
127+ ARM64_FTR_BITS (FTR_STRICT , FTR_EXACT , ID_AA64MMFR2_UAO_SHIFT , 4 , 0 ),
128+ ARM64_FTR_END ,
129+ };
130+
126131static struct arm64_ftr_bits ftr_ctr [] = {
127132 U_ARM64_FTR_BITS (FTR_STRICT , FTR_EXACT , 31 , 1 , 1 ), /* RAO */
128133 ARM64_FTR_BITS (FTR_STRICT , FTR_EXACT , 28 , 3 , 0 ),
@@ -284,6 +289,7 @@ static struct arm64_ftr_reg arm64_ftr_regs[] = {
284289 /* Op1 = 0, CRn = 0, CRm = 7 */
285290 ARM64_FTR_REG (SYS_ID_AA64MMFR0_EL1 , ftr_id_aa64mmfr0 ),
286291 ARM64_FTR_REG (SYS_ID_AA64MMFR1_EL1 , ftr_id_aa64mmfr1 ),
292+ ARM64_FTR_REG (SYS_ID_AA64MMFR2_EL1 , ftr_id_aa64mmfr2 ),
287293
288294 /* Op1 = 3, CRn = 0, CRm = 0 */
289295 ARM64_FTR_REG (SYS_CTR_EL0 , ftr_ctr ),
@@ -408,6 +414,7 @@ void __init init_cpu_features(struct cpuinfo_arm64 *info)
408414 init_cpu_ftr_reg (SYS_ID_AA64ISAR1_EL1 , info -> reg_id_aa64isar1 );
409415 init_cpu_ftr_reg (SYS_ID_AA64MMFR0_EL1 , info -> reg_id_aa64mmfr0 );
410416 init_cpu_ftr_reg (SYS_ID_AA64MMFR1_EL1 , info -> reg_id_aa64mmfr1 );
417+ init_cpu_ftr_reg (SYS_ID_AA64MMFR2_EL1 , info -> reg_id_aa64mmfr2 );
411418 init_cpu_ftr_reg (SYS_ID_AA64PFR0_EL1 , info -> reg_id_aa64pfr0 );
412419 init_cpu_ftr_reg (SYS_ID_AA64PFR1_EL1 , info -> reg_id_aa64pfr1 );
413420 init_cpu_ftr_reg (SYS_ID_DFR0_EL1 , info -> reg_id_dfr0 );
@@ -517,6 +524,8 @@ void update_cpu_features(int cpu,
517524 info -> reg_id_aa64mmfr0 , boot -> reg_id_aa64mmfr0 );
518525 taint |= check_update_ftr_reg (SYS_ID_AA64MMFR1_EL1 , cpu ,
519526 info -> reg_id_aa64mmfr1 , boot -> reg_id_aa64mmfr1 );
527+ taint |= check_update_ftr_reg (SYS_ID_AA64MMFR2_EL1 , cpu ,
528+ info -> reg_id_aa64mmfr2 , boot -> reg_id_aa64mmfr2 );
520529
521530 /*
522531 * EL3 is not our concern.
@@ -831,6 +840,7 @@ static u64 __raw_read_system_reg(u32 sys_id)
831840 case SYS_ID_AA64DFR1_EL1 : return read_cpuid (SYS_ID_AA64DFR0_EL1 );
832841 case SYS_ID_AA64MMFR0_EL1 : return read_cpuid (SYS_ID_AA64MMFR0_EL1 );
833842 case SYS_ID_AA64MMFR1_EL1 : return read_cpuid (SYS_ID_AA64MMFR1_EL1 );
843+ case SYS_ID_AA64MMFR2_EL1 : return read_cpuid (SYS_ID_AA64MMFR2_EL1 );
834844 case SYS_ID_AA64ISAR0_EL1 : return read_cpuid (SYS_ID_AA64ISAR0_EL1 );
835845 case SYS_ID_AA64ISAR1_EL1 : return read_cpuid (SYS_ID_AA64ISAR1_EL1 );
836846
0 commit comments