@@ -437,6 +437,11 @@ static const struct arm64_ftr_bits ftr_id_aa64mmfr3[] = {
437
437
ARM64_FTR_END ,
438
438
};
439
439
440
+ static const struct arm64_ftr_bits ftr_id_aa64mmfr4 [] = {
441
+ S_ARM64_FTR_BITS (FTR_HIDDEN , FTR_STRICT , FTR_LOWER_SAFE , ID_AA64MMFR4_EL1_E2H0_SHIFT , 4 , 0 ),
442
+ ARM64_FTR_END ,
443
+ };
444
+
440
445
static const struct arm64_ftr_bits ftr_ctr [] = {
441
446
ARM64_FTR_BITS (FTR_VISIBLE , FTR_STRICT , FTR_EXACT , 31 , 1 , 1 ), /* RES1 */
442
447
ARM64_FTR_BITS (FTR_VISIBLE , FTR_STRICT , FTR_LOWER_SAFE , CTR_EL0_DIC_SHIFT , 1 , 1 ),
@@ -754,6 +759,7 @@ static const struct __ftr_reg_entry {
754
759
& id_aa64mmfr1_override ),
755
760
ARM64_FTR_REG (SYS_ID_AA64MMFR2_EL1 , ftr_id_aa64mmfr2 ),
756
761
ARM64_FTR_REG (SYS_ID_AA64MMFR3_EL1 , ftr_id_aa64mmfr3 ),
762
+ ARM64_FTR_REG (SYS_ID_AA64MMFR4_EL1 , ftr_id_aa64mmfr4 ),
757
763
758
764
/* Op1 = 1, CRn = 0, CRm = 0 */
759
765
ARM64_FTR_REG (SYS_GMID_EL1 , ftr_gmid ),
@@ -1078,6 +1084,7 @@ void __init init_cpu_features(struct cpuinfo_arm64 *info)
1078
1084
init_cpu_ftr_reg (SYS_ID_AA64MMFR1_EL1 , info -> reg_id_aa64mmfr1 );
1079
1085
init_cpu_ftr_reg (SYS_ID_AA64MMFR2_EL1 , info -> reg_id_aa64mmfr2 );
1080
1086
init_cpu_ftr_reg (SYS_ID_AA64MMFR3_EL1 , info -> reg_id_aa64mmfr3 );
1087
+ init_cpu_ftr_reg (SYS_ID_AA64MMFR4_EL1 , info -> reg_id_aa64mmfr4 );
1081
1088
init_cpu_ftr_reg (SYS_ID_AA64PFR0_EL1 , info -> reg_id_aa64pfr0 );
1082
1089
init_cpu_ftr_reg (SYS_ID_AA64PFR1_EL1 , info -> reg_id_aa64pfr1 );
1083
1090
init_cpu_ftr_reg (SYS_ID_AA64ZFR0_EL1 , info -> reg_id_aa64zfr0 );
0 commit comments