@ -179,7 +179,6 @@
# define ID_AA64PFR0_AMU_SHIFT U(44)
# define ID_AA64PFR0_AMU_MASK ULL(0xf)
# define ID_AA64PFR0_AMU_NOT_SUPPORTED U(0x0)
# define ID_AA64PFR0_AMU_V1 ULL(0x1)
# define ID_AA64PFR0_AMU_V1P1 U(0x2)
@ -191,8 +190,8 @@
# define ID_AA64PFR0_SVE_SHIFT U(32)
# define ID_AA64PFR0_SVE_MASK ULL(0xf)
# define ID_AA64PFR0_SVE_SUPPORTED ULL(0x1)
# define ID_AA64PFR0_SVE_LENGTH U(4)
# define SVE_IMPLEMENTED ULL(0x1)
# define ID_AA64PFR0_SEL2_SHIFT U(36)
# define ID_AA64PFR0_SEL2_MASK ULL(0xf)
@ -203,23 +202,21 @@
# define ID_AA64PFR0_DIT_SHIFT U(48)
# define ID_AA64PFR0_DIT_MASK ULL(0xf)
# define ID_AA64PFR0_DIT_LENGTH U(4)
# define ID_AA64PFR0_DIT_SUPPORTED U (1)
# define DIT_IMPLEMENTED ULL (1)
# define ID_AA64PFR0_CSV2_SHIFT U(56)
# define ID_AA64PFR0_CSV2_MASK ULL(0xf)
# define ID_AA64PFR0_CSV2_LENGTH U(4)
# define ID_AA64PFR0_CSV2_2_SUPPORTED ULL(0x2)
# define ID_AA64PFR0_CSV2_3_SUPPORTED ULL(0x3)
# define CSV2_2_IMPLEMENTED ULL(0x2)
# define CSV2_3_IMPLEMENTED ULL(0x3)
# define ID_AA64PFR0_FEAT_RME_SHIFT U(52)
# define ID_AA64PFR0_FEAT_RME_MASK ULL(0xf)
# define ID_AA64PFR0_FEAT_RME_LENGTH U(4)
# define ID_AA64PFR0_FEAT_RME_NOT_SUPPORTED U(0)
# define ID_AA64PFR0_FEAT_RME_V1 U(1)
# define RME_NOT_IMPLEMENTED ULL(0)
# define ID_AA64PFR0_RAS_SHIFT U(28)
# define ID_AA64PFR0_RAS_MASK ULL(0xf)
# define ID_AA64PFR0_RAS_NOT_SUPPORTED ULL(0x0)
# define ID_AA64PFR0_RAS_LENGTH U(4)
/* Exception level handling */
@ -230,12 +227,13 @@
/* ID_AA64DFR0_EL1.TraceVer definitions */
# define ID_AA64DFR0_TRACEVER_SHIFT U(4)
# define ID_AA64DFR0_TRACEVER_MASK ULL(0xf)
# define ID_AA64DFR0_TRACEVER_SUPPORTED ULL(1)
# define ID_AA64DFR0_TRACEVER_LENGTH U(4)
# define ID_AA64DFR0_TRACEFILT_SHIFT U(40)
# define ID_AA64DFR0_TRACEFILT_MASK U(0xf)
# define ID_AA64DFR0_TRACEFILT_SUPPORTED U(1)
# define ID_AA64DFR0_TRACEFILT_LENGTH U(4)
# define TRACEFILT_IMPLEMENTED ULL(1)
# define ID_AA64DFR0_PMUVER_LENGTH U(4)
# define ID_AA64DFR0_PMUVER_SHIFT U(8)
# define ID_AA64DFR0_PMUVER_MASK U(0xf)
@ -251,24 +249,24 @@
/* ID_AA64DFR0_EL1.PMS definitions (for ARMv8.2+) */
# define ID_AA64DFR0_PMS_SHIFT U(32)
# define ID_AA64DFR0_PMS_MASK ULL(0xf)
# define ID_AA64DFR0_SPE_SUPPORTED ULL(0x1)
# define ID_AA64DFR0_SPE_NOT_SUPPORTED ULL(0x0)
# define SPE_IMPLEMENTED ULL(0x1)
# define SPE_NOT_IMPLEMENTED ULL(0x0)
/* ID_AA64DFR0_EL1.TraceBuffer definitions */
# define ID_AA64DFR0_TRACEBUFFER_SHIFT U(44)
# define ID_AA64DFR0_TRACEBUFFER_MASK ULL(0xf)
# define ID_AA64DFR0_TRACEBUFFER_SUPPORTED ULL(1)
# define TRACEBUFFER_IMPLEMENTED ULL(1)
/* ID_AA64DFR0_EL1.MTPMU definitions (for ARMv8.6+) */
# define ID_AA64DFR0_MTPMU_SHIFT U(48)
# define ID_AA64DFR0_MTPMU_MASK ULL(0xf)
# define ID_AA64DFR0_MTPMU_SUPPORTED ULL(1)
# define ID_AA64DFR0_MTPMU_DISABLED ULL(15)
# define MTPMU_IMPLEMENTED ULL(1)
# define MTPMU_NOT_IMPLEMENTED ULL(15)
/* ID_AA64DFR0_EL1.BRBE definitions */
# define ID_AA64DFR0_BRBE_SHIFT U(52)
# define ID_AA64DFR0_BRBE_MASK ULL(0xf)
# define ID_AA64DFR0_BRBE_SUPPORTED ULL(1)
# define BRBE_IMPLEMENTED ULL(1)
/* ID_AA64DFR1_EL1 definitions */
# define ID_AA64DFR1_EBEP_SHIFT U(48)
@ -294,8 +292,8 @@
# define ID_AA64ISAR1_SB_SHIFT U(36)
# define ID_AA64ISAR1_SB_MASK ULL(0xf)
# define ID_AA64ISAR1_SB_SUPPORTED ULL(0x1)
# define ID_AA64ISAR1_SB_NOT_SUPPORTED ULL(0x0)
# define SB_IMPLEMENTED ULL(0x1)
# define SB_NOT_IMPLEMENTED ULL(0x0)
/* ID_AA64ISAR2_EL1 definitions */
# define ID_AA64ISAR2_EL1 S3_0_C0_C6_2
@ -323,52 +321,41 @@
# define ID_AA64MMFR0_EL1_ECV_SHIFT U(60)
# define ID_AA64MMFR0_EL1_ECV_MASK ULL(0xf)
# define ID_AA64MMFR0_EL1_ECV_NOT_SUPPORTED ULL(0x0)
# define ID_AA64MMFR0_EL1_ECV_SUPPORTED ULL(0x1)
# define ID_AA64MMFR0_EL1_ECV_SELF_SYNCH ULL(0x2)
# define ECV_IMPLEMENTED ULL(0x1)
# define ID_AA64MMFR0_EL1_FGT_SHIFT U(56)
# define ID_AA64MMFR0_EL1_FGT_MASK ULL(0xf)
# define ID_AA64MMFR0_EL1_FGT_SUPPORTED ULL(0x1)
# define ID_AA64MMFR0_EL1_FGT_NOT_SUPPORTED ULL(0x0)
# define FGT_IMPLEMENTED ULL(0x1)
# define FGT_NOT_IMPLEMENTED ULL(0x0)
# define ID_AA64MMFR0_EL1_TGRAN4_SHIFT U(28)
# define ID_AA64MMFR0_EL1_TGRAN4_MASK ULL(0xf)
# define ID_AA64MMFR0_EL1_TGRAN4_SUPPORTED ULL(0x0)
# define ID_AA64MMFR0_EL1_TGRAN4_52B_SUPPORTED ULL(0x1)
# define ID_AA64MMFR0_EL1_TGRAN4_NOT_SUPPORTED ULL(0xf)
# define ID_AA64MMFR0_EL1_TGRAN64_SHIFT U(24)
# define ID_AA64MMFR0_EL1_TGRAN64_MASK ULL(0xf)
# define ID_AA64MMFR0_EL1_TGRAN64_SUPPORTED ULL(0x0)
# define ID_AA64MMFR0_EL1_TGRAN64_NOT_SUPPORTED ULL(0xf)
# define ID_AA64MMFR0_EL1_TGRAN16_SHIFT U(20)
# define ID_AA64MMFR0_EL1_TGRAN16_MASK ULL(0xf)
# define ID_AA64MMFR0_EL1_TGRAN16_SUPPORTED ULL(0x1)
# define ID_AA64MMFR0_EL1_TGRAN16_NOT_SUPPORTED ULL(0x0)
# define ID_AA64MMFR0_EL1_TGRAN16_52B_SUPPORTED ULL(0x2)
# define TGRAN16_IMPLEMENTED ULL(0x1)
/* ID_AA64MMFR1_EL1 definitions */
# define ID_AA64MMFR1_EL1_TWED_SHIFT U(32)
# define ID_AA64MMFR1_EL1_TWED_MASK ULL(0xf)
# define ID_AA64MMFR1_EL1_TWED_SUPPORTED ULL(0x1)
# define ID_AA64MMFR1_EL1_TWED_NOT_SUPPORTED ULL(0x0)
# define TWED_IMPLEMENTED ULL(0x1)
# define ID_AA64MMFR1_EL1_PAN_SHIFT U(20)
# define ID_AA64MMFR1_EL1_PAN_MASK ULL(0xf)
# define ID_AA64MMFR1_EL1_PAN_NOT_SUPPORTED ULL(0x0)
# define ID_AA64MMFR1_EL1_PAN_SUPPORTED ULL(0x1)
# define ID_AA64MMFR1_EL1_PAN2_SUPPORTED ULL(0x2)
# define ID_AA64MMFR1_EL1_PAN3_SUPPORTED ULL(0x3)
# define PAN_IMPLEMENTED ULL(0x1)
# define PAN2_IMPLEMENTED ULL(0x2)
# define PAN3_IMPLEMENTED ULL(0x3)
# define ID_AA64MMFR1_EL1_VHE_SHIFT U(8)
# define ID_AA64MMFR1_EL1_VHE_MASK ULL(0xf)
# define ID_AA64MMFR1_EL1_HCX_SHIFT U(40)
# define ID_AA64MMFR1_EL1_HCX_MASK ULL(0xf)
# define ID_AA64MMFR1_EL1_HCX_SUPPORTED ULL(0x1)
# define ID_AA64MMFR1_EL1_HCX_NOT_SUPPORTED ULL(0x0)
# define HCX_IMPLEMENTED ULL(0x1)
/* ID_AA64MMFR2_EL1 definitions */
# define ID_AA64MMFR2_EL1 S3_0_C0_C7_2
@ -388,9 +375,7 @@
# define ID_AA64MMFR2_EL1_NV_SHIFT U(24)
# define ID_AA64MMFR2_EL1_NV_MASK ULL(0xf)
# define ID_AA64MMFR2_EL1_NV_NOT_SUPPORTED ULL(0x0)
# define ID_AA64MMFR2_EL1_NV_SUPPORTED ULL(0x1)
# define ID_AA64MMFR2_EL1_NV2_SUPPORTED ULL(0x2)
# define NV2_IMPLEMENTED ULL(0x2)
/* ID_AA64MMFR3_EL1 definitions */
# define ID_AA64MMFR3_EL1 S3_0_C0_C7_3
@ -418,7 +403,7 @@
# define ID_AA64PFR1_EL1_SSBS_SHIFT U(4)
# define ID_AA64PFR1_EL1_SSBS_MASK ULL(0xf)
# define SSBS_UNAVAILABLE ULL(0) /* No architectural SSBS support */
# define SSBS_NOT_IMPLEMENTED ULL(0) /* No architectural SSBS support */
# define ID_AA64PFR1_EL1_MTE_SHIFT U(8)
# define ID_AA64PFR1_EL1_MTE_MASK ULL(0xf)
@ -434,8 +419,7 @@
# define ID_AA64PFR1_EL1_GCS_MASK ULL(0xf)
# define GCS_IMPLEMENTED ULL(1)
# define ID_AA64PFR1_EL1_RNG_TRAP_SUPPORTED ULL(0x1)
# define ID_AA64PFR1_EL1_RNG_TRAP_NOT_SUPPORTED ULL(0x0)
# define RNG_TRAP_IMPLEMENTED ULL(0x1)
/* ID_AA64PFR2_EL1 definitions */
# define ID_AA64PFR2_EL1_MTEPERM_SHIFT U(0)
@ -468,9 +452,9 @@
# define ID_AA64PFR1_EL1_SME_SHIFT U(24)
# define ID_AA64PFR1_EL1_SME_MASK ULL(0xf)
# define ID_AA64PFR1_EL1_SME_WIDTH U(4)
# define ID_AA64PFR1_EL1_SME_NOT_SUPPORTED ULL(0x0 )
# define ID_AA64PFR1_EL1_SME_SUPPORTED ULL(0x1 )
# define ID_AA64PFR1_EL1_SME2_SUPPORTED ULL(0x2 )
# define SME_IMPLEMENTED ULL(0x1 )
# define SME2_IMPLEMENTED ULL(0x2 )
# define SME_NOT_IMPLEMENTED ULL(0x0 )
/* ID_PFR1_EL1 definitions */
# define ID_PFR1_VIRTEXT_SHIFT U(12)
@ -1102,11 +1086,11 @@
/* ID_AA64SMFR0_EL1 definitions */
# define ID_AA64SMFR0_EL1_SME_FA64_SHIFT U(63)
# define ID_AA64SMFR0_EL1_SME_FA64_MASK U(0x1)
# define ID_AA64SMFR0_EL1_SME_FA64_SUPPORTED U(0x1)
# define SME_FA64_IMPLEMENTED U(0x1)
# define ID_AA64SMFR0_EL1_SME_VER_SHIFT U(55)
# define ID_AA64SMFR0_EL1_SME_VER_MASK ULL(0xf)
# define ID_AA64SMFR0_EL1_SME_INST_SUPPORTED ULL(0x0)
# define ID_AA64SMFR0_EL1_SME2_INST_SUPPORTED ULL(0x1)
# define SME_INST_IMPLEMENTED ULL(0x0)
# define SME2_INST_IMPLEMENTED ULL(0x1)
/* SMCR_ELx definitions */
# define SMCR_ELX_LEN_SHIFT U(0)