Changeset View
Changeset View
Standalone View
Standalone View
sys/arm64/include/armreg.h
Show First 20 Lines • Show All 44 Lines • ▼ Show 20 Lines | |||||
#define MRS_CRn_SHIFT 12 | #define MRS_CRn_SHIFT 12 | ||||
#define MRS_CRn_MASK 0x0000f000 | #define MRS_CRn_MASK 0x0000f000 | ||||
#define MRS_CRm_SHIFT 8 | #define MRS_CRm_SHIFT 8 | ||||
#define MRS_CRm_MASK 0x00000f00 | #define MRS_CRm_MASK 0x00000f00 | ||||
#define MRS_Op2_SHIFT 5 | #define MRS_Op2_SHIFT 5 | ||||
#define MRS_Op2_MASK 0x000000e0 | #define MRS_Op2_MASK 0x000000e0 | ||||
#define MRS_Rt_SHIFT 0 | #define MRS_Rt_SHIFT 0 | ||||
#define MRS_Rt_MASK 0x0000001f | #define MRS_Rt_MASK 0x0000001f | ||||
#define MRS_REG(op0, op1, crn, crm, op2) \ | #define __MRS_REG(op0, op1, crn, crm, op2) \ | ||||
(((op0) << MRS_Op0_SHIFT) | ((op1) << MRS_Op1_SHIFT) | \ | (((op0) << MRS_Op0_SHIFT) | ((op1) << MRS_Op1_SHIFT) | \ | ||||
((crn) << MRS_CRn_SHIFT) | ((crm) << MRS_CRm_SHIFT) | \ | ((crn) << MRS_CRn_SHIFT) | ((crm) << MRS_CRm_SHIFT) | \ | ||||
((op2) << MRS_Op2_SHIFT)) | ((op2) << MRS_Op2_SHIFT)) | ||||
#define MRS_REG(reg) \ | |||||
__MRS_REG(reg##_op0, reg##_op1, reg##_CRn, reg##_CRm, reg##_op2) | |||||
#define READ_SPECIALREG(reg) \ | #define READ_SPECIALREG(reg) \ | ||||
({ uint64_t _val; \ | ({ uint64_t _val; \ | ||||
__asm __volatile("mrs %0, " __STRING(reg) : "=&r" (_val)); \ | __asm __volatile("mrs %0, " __STRING(reg) : "=&r" (_val)); \ | ||||
_val; \ | _val; \ | ||||
}) | }) | ||||
#define WRITE_SPECIALREG(reg, _val) \ | #define WRITE_SPECIALREG(reg, _val) \ | ||||
__asm __volatile("msr " __STRING(reg) ", %0" : : "r"((uint64_t)_val)) | __asm __volatile("msr " __STRING(reg) ", %0" : : "r"((uint64_t)_val)) | ||||
▲ Show 20 Lines • Show All 187 Lines • ▼ Show 20 Lines | |||||
#define ICC_SGI1R_EL1_AFF3_SHIFT 48 | #define ICC_SGI1R_EL1_AFF3_SHIFT 48 | ||||
#define ICC_SGI1R_EL1_SGIID_MASK 0xfUL | #define ICC_SGI1R_EL1_SGIID_MASK 0xfUL | ||||
#define ICC_SGI1R_EL1_IRM (0x1UL << 40) | #define ICC_SGI1R_EL1_IRM (0x1UL << 40) | ||||
/* ICC_SRE_EL1 */ | /* ICC_SRE_EL1 */ | ||||
#define ICC_SRE_EL1_SRE (1U << 0) | #define ICC_SRE_EL1_SRE (1U << 0) | ||||
/* ID_AA64DFR0_EL1 */ | /* ID_AA64DFR0_EL1 */ | ||||
#define ID_AA64DFR0_EL1 MRS_REG(3, 0, 0, 5, 0) | #define ID_AA64DFR0_EL1 MRS_REG(ID_AA64DFR0_EL1) | ||||
#define ID_AA64DFR0_EL1_op0 0x3 | |||||
#define ID_AA64DFR0_EL1_op1 0x0 | |||||
#define ID_AA64DFR0_EL1_CRn 0x0 | |||||
#define ID_AA64DFR0_EL1_CRm 0x5 | |||||
#define ID_AA64DFR0_EL1_op2 0x0 | |||||
#define ID_AA64DFR0_DebugVer_SHIFT 0 | #define ID_AA64DFR0_DebugVer_SHIFT 0 | ||||
#define ID_AA64DFR0_DebugVer_MASK (UL(0xf) << ID_AA64DFR0_DebugVer_SHIFT) | #define ID_AA64DFR0_DebugVer_MASK (UL(0xf) << ID_AA64DFR0_DebugVer_SHIFT) | ||||
#define ID_AA64DFR0_DebugVer_VAL(x) ((x) & ID_AA64DFR0_DebugVer_MASK) | #define ID_AA64DFR0_DebugVer_VAL(x) ((x) & ID_AA64DFR0_DebugVer_MASK) | ||||
#define ID_AA64DFR0_DebugVer_8 (UL(0x6) << ID_AA64DFR0_DebugVer_SHIFT) | #define ID_AA64DFR0_DebugVer_8 (UL(0x6) << ID_AA64DFR0_DebugVer_SHIFT) | ||||
#define ID_AA64DFR0_DebugVer_8_VHE (UL(0x7) << ID_AA64DFR0_DebugVer_SHIFT) | #define ID_AA64DFR0_DebugVer_8_VHE (UL(0x7) << ID_AA64DFR0_DebugVer_SHIFT) | ||||
#define ID_AA64DFR0_DebugVer_8_2 (UL(0x8) << ID_AA64DFR0_DebugVer_SHIFT) | #define ID_AA64DFR0_DebugVer_8_2 (UL(0x8) << ID_AA64DFR0_DebugVer_SHIFT) | ||||
#define ID_AA64DFR0_DebugVer_8_4 (UL(0x9) << ID_AA64DFR0_DebugVer_SHIFT) | #define ID_AA64DFR0_DebugVer_8_4 (UL(0x9) << ID_AA64DFR0_DebugVer_SHIFT) | ||||
#define ID_AA64DFR0_TraceVer_SHIFT 4 | #define ID_AA64DFR0_TraceVer_SHIFT 4 | ||||
Show All 35 Lines | |||||
#define ID_AA64DFR0_DoubleLock_NONE (UL(0xf) << ID_AA64DFR0_DoubleLock_SHIFT) | #define ID_AA64DFR0_DoubleLock_NONE (UL(0xf) << ID_AA64DFR0_DoubleLock_SHIFT) | ||||
#define ID_AA64DFR0_TraceFilt_SHIFT 40 | #define ID_AA64DFR0_TraceFilt_SHIFT 40 | ||||
#define ID_AA64DFR0_TraceFilt_MASK (UL(0xf) << ID_AA64DFR0_TraceFilt_SHIFT) | #define ID_AA64DFR0_TraceFilt_MASK (UL(0xf) << ID_AA64DFR0_TraceFilt_SHIFT) | ||||
#define ID_AA64DFR0_TraceFilt_VAL(x) ((x) & ID_AA64DFR0_TraceFilt_MASK) | #define ID_AA64DFR0_TraceFilt_VAL(x) ((x) & ID_AA64DFR0_TraceFilt_MASK) | ||||
#define ID_AA64DFR0_TraceFilt_NONE (UL(0x0) << ID_AA64DFR0_TraceFilt_SHIFT) | #define ID_AA64DFR0_TraceFilt_NONE (UL(0x0) << ID_AA64DFR0_TraceFilt_SHIFT) | ||||
#define ID_AA64DFR0_TraceFilt_8_4 (UL(0x1) << ID_AA64DFR0_TraceFilt_SHIFT) | #define ID_AA64DFR0_TraceFilt_8_4 (UL(0x1) << ID_AA64DFR0_TraceFilt_SHIFT) | ||||
/* ID_AA64ISAR0_EL1 */ | /* ID_AA64ISAR0_EL1 */ | ||||
#define ID_AA64ISAR0_EL1 MRS_REG(3, 0, 0, 6, 0) | #define ID_AA64ISAR0_EL1 MRS_REG(ID_AA64ISAR0_EL1) | ||||
#define ID_AA64ISAR0_EL1_op0 0x3 | |||||
#define ID_AA64ISAR0_EL1_op1 0x0 | |||||
#define ID_AA64ISAR0_EL1_CRn 0x0 | |||||
#define ID_AA64ISAR0_EL1_CRm 0x6 | |||||
#define ID_AA64ISAR0_EL1_op2 0x0 | |||||
#define ID_AA64ISAR0_AES_SHIFT 4 | #define ID_AA64ISAR0_AES_SHIFT 4 | ||||
#define ID_AA64ISAR0_AES_MASK (UL(0xf) << ID_AA64ISAR0_AES_SHIFT) | #define ID_AA64ISAR0_AES_MASK (UL(0xf) << ID_AA64ISAR0_AES_SHIFT) | ||||
#define ID_AA64ISAR0_AES_VAL(x) ((x) & ID_AA64ISAR0_AES_MASK) | #define ID_AA64ISAR0_AES_VAL(x) ((x) & ID_AA64ISAR0_AES_MASK) | ||||
#define ID_AA64ISAR0_AES_NONE (UL(0x0) << ID_AA64ISAR0_AES_SHIFT) | #define ID_AA64ISAR0_AES_NONE (UL(0x0) << ID_AA64ISAR0_AES_SHIFT) | ||||
#define ID_AA64ISAR0_AES_BASE (UL(0x1) << ID_AA64ISAR0_AES_SHIFT) | #define ID_AA64ISAR0_AES_BASE (UL(0x1) << ID_AA64ISAR0_AES_SHIFT) | ||||
#define ID_AA64ISAR0_AES_PMULL (UL(0x2) << ID_AA64ISAR0_AES_SHIFT) | #define ID_AA64ISAR0_AES_PMULL (UL(0x2) << ID_AA64ISAR0_AES_SHIFT) | ||||
#define ID_AA64ISAR0_SHA1_SHIFT 8 | #define ID_AA64ISAR0_SHA1_SHIFT 8 | ||||
#define ID_AA64ISAR0_SHA1_MASK (UL(0xf) << ID_AA64ISAR0_SHA1_SHIFT) | #define ID_AA64ISAR0_SHA1_MASK (UL(0xf) << ID_AA64ISAR0_SHA1_SHIFT) | ||||
▲ Show 20 Lines • Show All 60 Lines • ▼ Show 20 Lines | |||||
#define ID_AA64ISAR0_TLB_TLBIOSR (UL(0x2) << ID_AA64ISAR0_TLB_SHIFT) | #define ID_AA64ISAR0_TLB_TLBIOSR (UL(0x2) << ID_AA64ISAR0_TLB_SHIFT) | ||||
#define ID_AA64ISAR0_RNDR_SHIFT 60 | #define ID_AA64ISAR0_RNDR_SHIFT 60 | ||||
#define ID_AA64ISAR0_RNDR_MASK (UL(0xf) << ID_AA64ISAR0_RNDR_SHIFT) | #define ID_AA64ISAR0_RNDR_MASK (UL(0xf) << ID_AA64ISAR0_RNDR_SHIFT) | ||||
#define ID_AA64ISAR0_RNDR_VAL(x) ((x) & ID_AA64ISAR0_RNDR_MASK) | #define ID_AA64ISAR0_RNDR_VAL(x) ((x) & ID_AA64ISAR0_RNDR_MASK) | ||||
#define ID_AA64ISAR0_RNDR_NONE (UL(0x0) << ID_AA64ISAR0_RNDR_SHIFT) | #define ID_AA64ISAR0_RNDR_NONE (UL(0x0) << ID_AA64ISAR0_RNDR_SHIFT) | ||||
#define ID_AA64ISAR0_RNDR_IMPL (UL(0x1) << ID_AA64ISAR0_RNDR_SHIFT) | #define ID_AA64ISAR0_RNDR_IMPL (UL(0x1) << ID_AA64ISAR0_RNDR_SHIFT) | ||||
/* ID_AA64ISAR1_EL1 */ | /* ID_AA64ISAR1_EL1 */ | ||||
#define ID_AA64ISAR1_EL1 MRS_REG(3, 0, 0, 6, 1) | #define ID_AA64ISAR1_EL1 MRS_REG(ID_AA64ISAR1_EL1) | ||||
#define ID_AA64ISAR1_EL1_op0 0x3 | |||||
#define ID_AA64ISAR1_EL1_op1 0x0 | |||||
#define ID_AA64ISAR1_EL1_CRn 0x0 | |||||
#define ID_AA64ISAR1_EL1_CRm 0x6 | |||||
#define ID_AA64ISAR1_EL1_op2 0x1 | |||||
#define ID_AA64ISAR1_DPB_SHIFT 0 | #define ID_AA64ISAR1_DPB_SHIFT 0 | ||||
#define ID_AA64ISAR1_DPB_MASK (UL(0xf) << ID_AA64ISAR1_DPB_SHIFT) | #define ID_AA64ISAR1_DPB_MASK (UL(0xf) << ID_AA64ISAR1_DPB_SHIFT) | ||||
#define ID_AA64ISAR1_DPB_VAL(x) ((x) & ID_AA64ISAR1_DPB_MASK) | #define ID_AA64ISAR1_DPB_VAL(x) ((x) & ID_AA64ISAR1_DPB_MASK) | ||||
#define ID_AA64ISAR1_DPB_NONE (UL(0x0) << ID_AA64ISAR1_DPB_SHIFT) | #define ID_AA64ISAR1_DPB_NONE (UL(0x0) << ID_AA64ISAR1_DPB_SHIFT) | ||||
#define ID_AA64ISAR1_DPB_DCCVAP (UL(0x1) << ID_AA64ISAR1_DPB_SHIFT) | #define ID_AA64ISAR1_DPB_DCCVAP (UL(0x1) << ID_AA64ISAR1_DPB_SHIFT) | ||||
#define ID_AA64ISAR1_DPB_DCCVADP (UL(0x2) << ID_AA64ISAR1_DPB_SHIFT) | #define ID_AA64ISAR1_DPB_DCCVADP (UL(0x2) << ID_AA64ISAR1_DPB_SHIFT) | ||||
#define ID_AA64ISAR1_APA_SHIFT 4 | #define ID_AA64ISAR1_APA_SHIFT 4 | ||||
#define ID_AA64ISAR1_APA_MASK (UL(0xf) << ID_AA64ISAR1_APA_SHIFT) | #define ID_AA64ISAR1_APA_MASK (UL(0xf) << ID_AA64ISAR1_APA_SHIFT) | ||||
▲ Show 20 Lines • Show All 60 Lines • ▼ Show 20 Lines | |||||
#define ID_AA64ISAR1_DGH_IMPL (UL(0x1) << ID_AA64ISAR1_DGH_SHIFT) | #define ID_AA64ISAR1_DGH_IMPL (UL(0x1) << ID_AA64ISAR1_DGH_SHIFT) | ||||
#define ID_AA64ISAR1_I8MM_SHIFT 52 | #define ID_AA64ISAR1_I8MM_SHIFT 52 | ||||
#define ID_AA64ISAR1_I8MM_MASK (UL(0xf) << ID_AA64ISAR1_I8MM_SHIFT) | #define ID_AA64ISAR1_I8MM_MASK (UL(0xf) << ID_AA64ISAR1_I8MM_SHIFT) | ||||
#define ID_AA64ISAR1_I8MM_VAL(x) ((x) & ID_AA64ISAR1_I8MM_MASK) | #define ID_AA64ISAR1_I8MM_VAL(x) ((x) & ID_AA64ISAR1_I8MM_MASK) | ||||
#define ID_AA64ISAR1_I8MM_NONE (UL(0x0) << ID_AA64ISAR1_I8MM_SHIFT) | #define ID_AA64ISAR1_I8MM_NONE (UL(0x0) << ID_AA64ISAR1_I8MM_SHIFT) | ||||
#define ID_AA64ISAR1_I8MM_IMPL (UL(0x1) << ID_AA64ISAR1_I8MM_SHIFT) | #define ID_AA64ISAR1_I8MM_IMPL (UL(0x1) << ID_AA64ISAR1_I8MM_SHIFT) | ||||
/* ID_AA64MMFR0_EL1 */ | /* ID_AA64MMFR0_EL1 */ | ||||
#define ID_AA64MMFR0_EL1 MRS_REG(3, 0, 0, 7, 0) | #define ID_AA64MMFR0_EL1 MRS_REG(ID_AA64MMFR0_EL1) | ||||
#define ID_AA64MMFR0_EL1_op0 0x3 | |||||
#define ID_AA64MMFR0_EL1_op1 0x0 | |||||
#define ID_AA64MMFR0_EL1_CRn 0x0 | |||||
#define ID_AA64MMFR0_EL1_CRm 0x7 | |||||
#define ID_AA64MMFR0_EL1_op2 0x0 | |||||
#define ID_AA64MMFR0_PARange_SHIFT 0 | #define ID_AA64MMFR0_PARange_SHIFT 0 | ||||
#define ID_AA64MMFR0_PARange_MASK (UL(0xf) << ID_AA64MMFR0_PARange_SHIFT) | #define ID_AA64MMFR0_PARange_MASK (UL(0xf) << ID_AA64MMFR0_PARange_SHIFT) | ||||
#define ID_AA64MMFR0_PARange_VAL(x) ((x) & ID_AA64MMFR0_PARange_MASK) | #define ID_AA64MMFR0_PARange_VAL(x) ((x) & ID_AA64MMFR0_PARange_MASK) | ||||
#define ID_AA64MMFR0_PARange_4G (UL(0x0) << ID_AA64MMFR0_PARange_SHIFT) | #define ID_AA64MMFR0_PARange_4G (UL(0x0) << ID_AA64MMFR0_PARange_SHIFT) | ||||
#define ID_AA64MMFR0_PARange_64G (UL(0x1) << ID_AA64MMFR0_PARange_SHIFT) | #define ID_AA64MMFR0_PARange_64G (UL(0x1) << ID_AA64MMFR0_PARange_SHIFT) | ||||
#define ID_AA64MMFR0_PARange_1T (UL(0x2) << ID_AA64MMFR0_PARange_SHIFT) | #define ID_AA64MMFR0_PARange_1T (UL(0x2) << ID_AA64MMFR0_PARange_SHIFT) | ||||
#define ID_AA64MMFR0_PARange_4T (UL(0x3) << ID_AA64MMFR0_PARange_SHIFT) | #define ID_AA64MMFR0_PARange_4T (UL(0x3) << ID_AA64MMFR0_PARange_SHIFT) | ||||
#define ID_AA64MMFR0_PARange_16T (UL(0x4) << ID_AA64MMFR0_PARange_SHIFT) | #define ID_AA64MMFR0_PARange_16T (UL(0x4) << ID_AA64MMFR0_PARange_SHIFT) | ||||
▲ Show 20 Lines • Show All 54 Lines • ▼ Show 20 Lines | |||||
#define ID_AA64MMFR0_TGran4_2_IMPL (UL(0x2) << ID_AA64MMFR0_TGran4_2_SHIFT) | #define ID_AA64MMFR0_TGran4_2_IMPL (UL(0x2) << ID_AA64MMFR0_TGran4_2_SHIFT) | ||||
#define ID_AA64MMFR0_ExS_SHIFT 44 | #define ID_AA64MMFR0_ExS_SHIFT 44 | ||||
#define ID_AA64MMFR0_ExS_MASK (UL(0xf) << ID_AA64MMFR0_ExS_SHIFT) | #define ID_AA64MMFR0_ExS_MASK (UL(0xf) << ID_AA64MMFR0_ExS_SHIFT) | ||||
#define ID_AA64MMFR0_ExS_VAL(x) ((x) & ID_AA64MMFR0_ExS_MASK) | #define ID_AA64MMFR0_ExS_VAL(x) ((x) & ID_AA64MMFR0_ExS_MASK) | ||||
#define ID_AA64MMFR0_ExS_ALL (UL(0x0) << ID_AA64MMFR0_ExS_SHIFT) | #define ID_AA64MMFR0_ExS_ALL (UL(0x0) << ID_AA64MMFR0_ExS_SHIFT) | ||||
#define ID_AA64MMFR0_ExS_IMPL (UL(0x1) << ID_AA64MMFR0_ExS_SHIFT) | #define ID_AA64MMFR0_ExS_IMPL (UL(0x1) << ID_AA64MMFR0_ExS_SHIFT) | ||||
/* ID_AA64MMFR1_EL1 */ | /* ID_AA64MMFR1_EL1 */ | ||||
#define ID_AA64MMFR1_EL1 MRS_REG(3, 0, 0, 7, 1) | #define ID_AA64MMFR1_EL1 MRS_REG(ID_AA64MMFR1_EL1) | ||||
#define ID_AA64MMFR1_EL1_op0 0x3 | |||||
#define ID_AA64MMFR1_EL1_op1 0x0 | |||||
#define ID_AA64MMFR1_EL1_CRn 0x0 | |||||
#define ID_AA64MMFR1_EL1_CRm 0x7 | |||||
#define ID_AA64MMFR1_EL1_op2 0x1 | |||||
#define ID_AA64MMFR1_HAFDBS_SHIFT 0 | #define ID_AA64MMFR1_HAFDBS_SHIFT 0 | ||||
#define ID_AA64MMFR1_HAFDBS_MASK (UL(0xf) << ID_AA64MMFR1_HAFDBS_SHIFT) | #define ID_AA64MMFR1_HAFDBS_MASK (UL(0xf) << ID_AA64MMFR1_HAFDBS_SHIFT) | ||||
#define ID_AA64MMFR1_HAFDBS_VAL(x) ((x) & ID_AA64MMFR1_HAFDBS_MASK) | #define ID_AA64MMFR1_HAFDBS_VAL(x) ((x) & ID_AA64MMFR1_HAFDBS_MASK) | ||||
#define ID_AA64MMFR1_HAFDBS_NONE (UL(0x0) << ID_AA64MMFR1_HAFDBS_SHIFT) | #define ID_AA64MMFR1_HAFDBS_NONE (UL(0x0) << ID_AA64MMFR1_HAFDBS_SHIFT) | ||||
#define ID_AA64MMFR1_HAFDBS_AF (UL(0x1) << ID_AA64MMFR1_HAFDBS_SHIFT) | #define ID_AA64MMFR1_HAFDBS_AF (UL(0x1) << ID_AA64MMFR1_HAFDBS_SHIFT) | ||||
#define ID_AA64MMFR1_HAFDBS_AF_DBS (UL(0x2) << ID_AA64MMFR1_HAFDBS_SHIFT) | #define ID_AA64MMFR1_HAFDBS_AF_DBS (UL(0x2) << ID_AA64MMFR1_HAFDBS_SHIFT) | ||||
#define ID_AA64MMFR1_VMIDBits_SHIFT 4 | #define ID_AA64MMFR1_VMIDBits_SHIFT 4 | ||||
#define ID_AA64MMFR1_VMIDBits_MASK (UL(0xf) << ID_AA64MMFR1_VMIDBits_SHIFT) | #define ID_AA64MMFR1_VMIDBits_MASK (UL(0xf) << ID_AA64MMFR1_VMIDBits_SHIFT) | ||||
Show All 29 Lines | |||||
#define ID_AA64MMFR1_SpecSEI_IMPL (UL(0x1) << ID_AA64MMFR1_SpecSEI_SHIFT) | #define ID_AA64MMFR1_SpecSEI_IMPL (UL(0x1) << ID_AA64MMFR1_SpecSEI_SHIFT) | ||||
#define ID_AA64MMFR1_XNX_SHIFT 28 | #define ID_AA64MMFR1_XNX_SHIFT 28 | ||||
#define ID_AA64MMFR1_XNX_MASK (UL(0xf) << ID_AA64MMFR1_XNX_SHIFT) | #define ID_AA64MMFR1_XNX_MASK (UL(0xf) << ID_AA64MMFR1_XNX_SHIFT) | ||||
#define ID_AA64MMFR1_XNX_VAL(x) ((x) & ID_AA64MMFR1_XNX_MASK) | #define ID_AA64MMFR1_XNX_VAL(x) ((x) & ID_AA64MMFR1_XNX_MASK) | ||||
#define ID_AA64MMFR1_XNX_NONE (UL(0x0) << ID_AA64MMFR1_XNX_SHIFT) | #define ID_AA64MMFR1_XNX_NONE (UL(0x0) << ID_AA64MMFR1_XNX_SHIFT) | ||||
#define ID_AA64MMFR1_XNX_IMPL (UL(0x1) << ID_AA64MMFR1_XNX_SHIFT) | #define ID_AA64MMFR1_XNX_IMPL (UL(0x1) << ID_AA64MMFR1_XNX_SHIFT) | ||||
/* ID_AA64MMFR2_EL1 */ | /* ID_AA64MMFR2_EL1 */ | ||||
#define ID_AA64MMFR2_EL1 MRS_REG(3, 0, 0, 7, 2) | #define ID_AA64MMFR2_EL1 MRS_REG(ID_AA64MMFR2_EL1) | ||||
#define ID_AA64MMFR2_EL1_op0 0x3 | |||||
#define ID_AA64MMFR2_EL1_op1 0x0 | |||||
#define ID_AA64MMFR2_EL1_CRn 0x0 | |||||
#define ID_AA64MMFR2_EL1_CRm 0x7 | |||||
#define ID_AA64MMFR2_EL1_op2 0x2 | |||||
#define ID_AA64MMFR2_CnP_SHIFT 0 | #define ID_AA64MMFR2_CnP_SHIFT 0 | ||||
#define ID_AA64MMFR2_CnP_MASK (UL(0xf) << ID_AA64MMFR2_CnP_SHIFT) | #define ID_AA64MMFR2_CnP_MASK (UL(0xf) << ID_AA64MMFR2_CnP_SHIFT) | ||||
#define ID_AA64MMFR2_CnP_VAL(x) ((x) & ID_AA64MMFR2_CnP_MASK) | #define ID_AA64MMFR2_CnP_VAL(x) ((x) & ID_AA64MMFR2_CnP_MASK) | ||||
#define ID_AA64MMFR2_CnP_NONE (UL(0x0) << ID_AA64MMFR2_CnP_SHIFT) | #define ID_AA64MMFR2_CnP_NONE (UL(0x0) << ID_AA64MMFR2_CnP_SHIFT) | ||||
#define ID_AA64MMFR2_CnP_IMPL (UL(0x1) << ID_AA64MMFR2_CnP_SHIFT) | #define ID_AA64MMFR2_CnP_IMPL (UL(0x1) << ID_AA64MMFR2_CnP_SHIFT) | ||||
#define ID_AA64MMFR2_UAO_SHIFT 4 | #define ID_AA64MMFR2_UAO_SHIFT 4 | ||||
#define ID_AA64MMFR2_UAO_MASK (UL(0xf) << ID_AA64MMFR2_UAO_SHIFT) | #define ID_AA64MMFR2_UAO_MASK (UL(0xf) << ID_AA64MMFR2_UAO_SHIFT) | ||||
#define ID_AA64MMFR2_UAO_VAL(x) ((x) & ID_AA64MMFR2_UAO_MASK) | #define ID_AA64MMFR2_UAO_VAL(x) ((x) & ID_AA64MMFR2_UAO_MASK) | ||||
▲ Show 20 Lines • Show All 64 Lines • ▼ Show 20 Lines | |||||
#define ID_AA64MMFR2_EVT_8_5 (UL(0x2) << ID_AA64MMFR2_EVT_SHIFT) | #define ID_AA64MMFR2_EVT_8_5 (UL(0x2) << ID_AA64MMFR2_EVT_SHIFT) | ||||
#define ID_AA64MMFR2_E0PD_SHIFT 60 | #define ID_AA64MMFR2_E0PD_SHIFT 60 | ||||
#define ID_AA64MMFR2_E0PD_MASK (UL(0xf) << ID_AA64MMFR2_E0PD_SHIFT) | #define ID_AA64MMFR2_E0PD_MASK (UL(0xf) << ID_AA64MMFR2_E0PD_SHIFT) | ||||
#define ID_AA64MMFR2_E0PD_VAL(x) ((x) & ID_AA64MMFR2_E0PD_MASK) | #define ID_AA64MMFR2_E0PD_VAL(x) ((x) & ID_AA64MMFR2_E0PD_MASK) | ||||
#define ID_AA64MMFR2_E0PD_NONE (UL(0x0) << ID_AA64MMFR2_E0PD_SHIFT) | #define ID_AA64MMFR2_E0PD_NONE (UL(0x0) << ID_AA64MMFR2_E0PD_SHIFT) | ||||
#define ID_AA64MMFR2_E0PD_IMPL (UL(0x1) << ID_AA64MMFR2_E0PD_SHIFT) | #define ID_AA64MMFR2_E0PD_IMPL (UL(0x1) << ID_AA64MMFR2_E0PD_SHIFT) | ||||
/* ID_AA64PFR0_EL1 */ | /* ID_AA64PFR0_EL1 */ | ||||
#define ID_AA64PFR0_EL1 MRS_REG(3, 0, 0, 4, 0) | #define ID_AA64PFR0_EL1 MRS_REG(ID_AA64PFR0_EL1) | ||||
#define ID_AA64PFR0_EL1_op0 0x3 | |||||
#define ID_AA64PFR0_EL1_op1 0x0 | |||||
#define ID_AA64PFR0_EL1_CRn 0x0 | |||||
#define ID_AA64PFR0_EL1_CRm 0x4 | |||||
#define ID_AA64PFR0_EL1_op2 0x0 | |||||
#define ID_AA64PFR0_EL0_SHIFT 0 | #define ID_AA64PFR0_EL0_SHIFT 0 | ||||
#define ID_AA64PFR0_EL0_MASK (UL(0xf) << ID_AA64PFR0_EL0_SHIFT) | #define ID_AA64PFR0_EL0_MASK (UL(0xf) << ID_AA64PFR0_EL0_SHIFT) | ||||
#define ID_AA64PFR0_EL0_VAL(x) ((x) & ID_AA64PFR0_EL0_MASK) | #define ID_AA64PFR0_EL0_VAL(x) ((x) & ID_AA64PFR0_EL0_MASK) | ||||
#define ID_AA64PFR0_EL0_64 (UL(0x1) << ID_AA64PFR0_EL0_SHIFT) | #define ID_AA64PFR0_EL0_64 (UL(0x1) << ID_AA64PFR0_EL0_SHIFT) | ||||
#define ID_AA64PFR0_EL0_64_32 (UL(0x2) << ID_AA64PFR0_EL0_SHIFT) | #define ID_AA64PFR0_EL0_64_32 (UL(0x2) << ID_AA64PFR0_EL0_SHIFT) | ||||
#define ID_AA64PFR0_EL1_SHIFT 4 | #define ID_AA64PFR0_EL1_SHIFT 4 | ||||
#define ID_AA64PFR0_EL1_MASK (UL(0xf) << ID_AA64PFR0_EL1_SHIFT) | #define ID_AA64PFR0_EL1_MASK (UL(0xf) << ID_AA64PFR0_EL1_SHIFT) | ||||
#define ID_AA64PFR0_EL1_VAL(x) ((x) & ID_AA64PFR0_EL1_MASK) | #define ID_AA64PFR0_EL1_VAL(x) ((x) & ID_AA64PFR0_EL1_MASK) | ||||
▲ Show 20 Lines • Show All 68 Lines • ▼ Show 20 Lines | |||||
#define ID_AA64PFR0_CSV2_SCXTNUM (UL(0x2) << ID_AA64PFR0_CSV2_SHIFT) | #define ID_AA64PFR0_CSV2_SCXTNUM (UL(0x2) << ID_AA64PFR0_CSV2_SHIFT) | ||||
#define ID_AA64PFR0_CSV3_SHIFT 60 | #define ID_AA64PFR0_CSV3_SHIFT 60 | ||||
#define ID_AA64PFR0_CSV3_MASK (UL(0xf) << ID_AA64PFR0_CSV3_SHIFT) | #define ID_AA64PFR0_CSV3_MASK (UL(0xf) << ID_AA64PFR0_CSV3_SHIFT) | ||||
#define ID_AA64PFR0_CSV3_VAL(x) ((x) & ID_AA64PFR0_CSV3_MASK) | #define ID_AA64PFR0_CSV3_VAL(x) ((x) & ID_AA64PFR0_CSV3_MASK) | ||||
#define ID_AA64PFR0_CSV3_NONE (UL(0x0) << ID_AA64PFR0_CSV3_SHIFT) | #define ID_AA64PFR0_CSV3_NONE (UL(0x0) << ID_AA64PFR0_CSV3_SHIFT) | ||||
#define ID_AA64PFR0_CSV3_ISOLATED (UL(0x1) << ID_AA64PFR0_CSV3_SHIFT) | #define ID_AA64PFR0_CSV3_ISOLATED (UL(0x1) << ID_AA64PFR0_CSV3_SHIFT) | ||||
/* ID_AA64PFR1_EL1 */ | /* ID_AA64PFR1_EL1 */ | ||||
#define ID_AA64PFR1_EL1 MRS_REG(3, 0, 0, 4, 1) | #define ID_AA64PFR1_EL1 MRS_REG(ID_AA64PFR1_EL1) | ||||
#define ID_AA64PFR1_EL1_op0 0x3 | |||||
#define ID_AA64PFR1_EL1_op1 0x0 | |||||
#define ID_AA64PFR1_EL1_CRn 0x0 | |||||
#define ID_AA64PFR1_EL1_CRm 0x4 | |||||
#define ID_AA64PFR1_EL1_op2 0x1 | |||||
#define ID_AA64PFR1_BT_SHIFT 0 | #define ID_AA64PFR1_BT_SHIFT 0 | ||||
#define ID_AA64PFR1_BT_MASK (UL(0xf) << ID_AA64PFR1_BT_SHIFT) | #define ID_AA64PFR1_BT_MASK (UL(0xf) << ID_AA64PFR1_BT_SHIFT) | ||||
#define ID_AA64PFR1_BT_VAL(x) ((x) & ID_AA64PFR1_BT_MASK) | #define ID_AA64PFR1_BT_VAL(x) ((x) & ID_AA64PFR1_BT_MASK) | ||||
#define ID_AA64PFR1_BT_NONE (UL(0x0) << ID_AA64PFR1_BT_SHIFT) | #define ID_AA64PFR1_BT_NONE (UL(0x0) << ID_AA64PFR1_BT_SHIFT) | ||||
#define ID_AA64PFR1_BT_IMPL (UL(0x1) << ID_AA64PFR1_BT_SHIFT) | #define ID_AA64PFR1_BT_IMPL (UL(0x1) << ID_AA64PFR1_BT_SHIFT) | ||||
#define ID_AA64PFR1_SSBS_SHIFT 4 | #define ID_AA64PFR1_SSBS_SHIFT 4 | ||||
#define ID_AA64PFR1_SSBS_MASK (UL(0xf) << ID_AA64PFR1_SSBS_SHIFT) | #define ID_AA64PFR1_SSBS_MASK (UL(0xf) << ID_AA64PFR1_SSBS_SHIFT) | ||||
#define ID_AA64PFR1_SSBS_VAL(x) ((x) & ID_AA64PFR1_SSBS_MASK) | #define ID_AA64PFR1_SSBS_VAL(x) ((x) & ID_AA64PFR1_SSBS_MASK) | ||||
#define ID_AA64PFR1_SSBS_NONE (UL(0x0) << ID_AA64PFR1_SSBS_SHIFT) | #define ID_AA64PFR1_SSBS_NONE (UL(0x0) << ID_AA64PFR1_SSBS_SHIFT) | ||||
#define ID_AA64PFR1_SSBS_PSTATE (UL(0x1) << ID_AA64PFR1_SSBS_SHIFT) | #define ID_AA64PFR1_SSBS_PSTATE (UL(0x1) << ID_AA64PFR1_SSBS_SHIFT) | ||||
#define ID_AA64PFR1_SSBS_PSTATE_MSR (UL(0x2) << ID_AA64PFR1_SSBS_SHIFT) | #define ID_AA64PFR1_SSBS_PSTATE_MSR (UL(0x2) << ID_AA64PFR1_SSBS_SHIFT) | ||||
#define ID_AA64PFR1_MTE_SHIFT 8 | #define ID_AA64PFR1_MTE_SHIFT 8 | ||||
#define ID_AA64PFR1_MTE_MASK (UL(0xf) << ID_AA64PFR1_MTE_SHIFT) | #define ID_AA64PFR1_MTE_MASK (UL(0xf) << ID_AA64PFR1_MTE_SHIFT) | ||||
#define ID_AA64PFR1_MTE_VAL(x) ((x) & ID_AA64PFR1_MTE_MASK) | #define ID_AA64PFR1_MTE_VAL(x) ((x) & ID_AA64PFR1_MTE_MASK) | ||||
#define ID_AA64PFR1_MTE_NONE (UL(0x0) << ID_AA64PFR1_MTE_SHIFT) | #define ID_AA64PFR1_MTE_NONE (UL(0x0) << ID_AA64PFR1_MTE_SHIFT) | ||||
#define ID_AA64PFR1_MTE_IMPL_EL0 (UL(0x1) << ID_AA64PFR1_MTE_SHIFT) | #define ID_AA64PFR1_MTE_IMPL_EL0 (UL(0x1) << ID_AA64PFR1_MTE_SHIFT) | ||||
#define ID_AA64PFR1_MTE_IMPL (UL(0x2) << ID_AA64PFR1_MTE_SHIFT) | #define ID_AA64PFR1_MTE_IMPL (UL(0x2) << ID_AA64PFR1_MTE_SHIFT) | ||||
#define ID_AA64PFR1_RAS_frac_SHIFT 12 | #define ID_AA64PFR1_RAS_frac_SHIFT 12 | ||||
#define ID_AA64PFR1_RAS_frac_MASK (UL(0xf) << ID_AA64PFR1_RAS_frac_SHIFT) | #define ID_AA64PFR1_RAS_frac_MASK (UL(0xf) << ID_AA64PFR1_RAS_frac_SHIFT) | ||||
#define ID_AA64PFR1_RAS_frac_VAL(x) ((x) & ID_AA64PFR1_RAS_frac_MASK) | #define ID_AA64PFR1_RAS_frac_VAL(x) ((x) & ID_AA64PFR1_RAS_frac_MASK) | ||||
#define ID_AA64PFR1_RAS_frac_V1 (UL(0x0) << ID_AA64PFR1_RAS_frac_SHIFT) | #define ID_AA64PFR1_RAS_frac_V1 (UL(0x0) << ID_AA64PFR1_RAS_frac_SHIFT) | ||||
#define ID_AA64PFR1_RAS_frac_V2 (UL(0x1) << ID_AA64PFR1_RAS_frac_SHIFT) | #define ID_AA64PFR1_RAS_frac_V2 (UL(0x1) << ID_AA64PFR1_RAS_frac_SHIFT) | ||||
/* ID_ISAR5_EL1 */ | /* ID_ISAR5_EL1 */ | ||||
#define ID_ISAR5_EL1 MRS_REG(3, 0, 0, 2, 5) | #define ID_ISAR5_EL1 MRS_REG(ID_ISAR5_EL1) | ||||
#define ID_ISAR5_EL1_op0 0x3 | |||||
#define ID_ISAR5_EL1_op1 0x0 | |||||
#define ID_ISAR5_EL1_CRn 0x0 | |||||
#define ID_ISAR5_EL1_CRm 0x2 | |||||
#define ID_ISAR5_EL1_op2 0x5 | |||||
#define ID_ISAR5_SEVL_SHIFT 0 | #define ID_ISAR5_SEVL_SHIFT 0 | ||||
#define ID_ISAR5_SEVL_MASK (UL(0xf) << ID_ISAR5_SEVL_SHIFT) | #define ID_ISAR5_SEVL_MASK (UL(0xf) << ID_ISAR5_SEVL_SHIFT) | ||||
#define ID_ISAR5_SEVL_VAL(x) ((x) & ID_ISAR5_SEVL_MASK) | #define ID_ISAR5_SEVL_VAL(x) ((x) & ID_ISAR5_SEVL_MASK) | ||||
#define ID_ISAR5_SEVL_NOP (UL(0x0) << ID_ISAR5_SEVL_SHIFT) | #define ID_ISAR5_SEVL_NOP (UL(0x0) << ID_ISAR5_SEVL_SHIFT) | ||||
#define ID_ISAR5_SEVL_IMPL (UL(0x1) << ID_ISAR5_SEVL_SHIFT) | #define ID_ISAR5_SEVL_IMPL (UL(0x1) << ID_ISAR5_SEVL_SHIFT) | ||||
#define ID_ISAR5_AES_SHIFT 4 | #define ID_ISAR5_AES_SHIFT 4 | ||||
#define ID_ISAR5_AES_MASK (UL(0xf) << ID_ISAR5_AES_SHIFT) | #define ID_ISAR5_AES_MASK (UL(0xf) << ID_ISAR5_AES_SHIFT) | ||||
#define ID_ISAR5_AES_VAL(x) ((x) & ID_ISAR5_AES_MASK) | #define ID_ISAR5_AES_VAL(x) ((x) & ID_ISAR5_AES_MASK) | ||||
Show All 31 Lines | |||||
#define MAIR_ATTR(attr, idx) ((attr) << ((idx) * 8)) | #define MAIR_ATTR(attr, idx) ((attr) << ((idx) * 8)) | ||||
#define MAIR_DEVICE_nGnRnE 0x00 | #define MAIR_DEVICE_nGnRnE 0x00 | ||||
#define MAIR_DEVICE_nGnRE 0x04 | #define MAIR_DEVICE_nGnRE 0x04 | ||||
#define MAIR_NORMAL_NC 0x44 | #define MAIR_NORMAL_NC 0x44 | ||||
#define MAIR_NORMAL_WT 0xbb | #define MAIR_NORMAL_WT 0xbb | ||||
#define MAIR_NORMAL_WB 0xff | #define MAIR_NORMAL_WB 0xff | ||||
/* MVFR0_EL1 */ | /* MVFR0_EL1 */ | ||||
#define MVFR0_EL1 MRS_REG(3, 0, 0, 3, 0) | #define MVFR0_EL1 MRS_REG(MVFR0_EL1) | ||||
#define MVFR0_EL1_op0 0x3 | |||||
#define MVFR0_EL1_op1 0x0 | |||||
#define MVFR0_EL1_CRn 0x0 | |||||
#define MVFR0_EL1_CRm 0x3 | |||||
#define MVFR0_EL1_op2 0x0 | |||||
#define MVFR0_SIMDReg_SHIFT 0 | #define MVFR0_SIMDReg_SHIFT 0 | ||||
#define MVFR0_SIMDReg_MASK (UL(0xf) << MVFR0_SIMDReg_SHIFT) | #define MVFR0_SIMDReg_MASK (UL(0xf) << MVFR0_SIMDReg_SHIFT) | ||||
#define MVFR0_SIMDReg_VAL(x) ((x) & MVFR0_SIMDReg_MASK) | #define MVFR0_SIMDReg_VAL(x) ((x) & MVFR0_SIMDReg_MASK) | ||||
#define MVFR0_SIMDReg_NONE (UL(0x0) << MVFR0_SIMDReg_SHIFT) | #define MVFR0_SIMDReg_NONE (UL(0x0) << MVFR0_SIMDReg_SHIFT) | ||||
#define MVFR0_SIMDReg_FP (UL(0x1) << MVFR0_SIMDReg_SHIFT) | #define MVFR0_SIMDReg_FP (UL(0x1) << MVFR0_SIMDReg_SHIFT) | ||||
#define MVFR0_SIMDReg_AdvSIMD (UL(0x2) << MVFR0_SIMDReg_SHIFT) | #define MVFR0_SIMDReg_AdvSIMD (UL(0x2) << MVFR0_SIMDReg_SHIFT) | ||||
#define MVFR0_FPSP_SHIFT 4 | #define MVFR0_FPSP_SHIFT 4 | ||||
#define MVFR0_FPSP_MASK (UL(0xf) << MVFR0_FPSP_SHIFT) | #define MVFR0_FPSP_MASK (UL(0xf) << MVFR0_FPSP_SHIFT) | ||||
Show All 29 Lines | |||||
#define MVFR0_FPShVec_IMPL (UL(0x1) << MVFR0_FPShVec_SHIFT) | #define MVFR0_FPShVec_IMPL (UL(0x1) << MVFR0_FPShVec_SHIFT) | ||||
#define MVFR0_FPRound_SHIFT 28 | #define MVFR0_FPRound_SHIFT 28 | ||||
#define MVFR0_FPRound_MASK (UL(0xf) << MVFR0_FPRound_SHIFT) | #define MVFR0_FPRound_MASK (UL(0xf) << MVFR0_FPRound_SHIFT) | ||||
#define MVFR0_FPRound_VAL(x) ((x) & MVFR0_FPRound_MASK) | #define MVFR0_FPRound_VAL(x) ((x) & MVFR0_FPRound_MASK) | ||||
#define MVFR0_FPRound_NONE (UL(0x0) << MVFR0_FPRound_SHIFT) | #define MVFR0_FPRound_NONE (UL(0x0) << MVFR0_FPRound_SHIFT) | ||||
#define MVFR0_FPRound_IMPL (UL(0x1) << MVFR0_FPRound_SHIFT) | #define MVFR0_FPRound_IMPL (UL(0x1) << MVFR0_FPRound_SHIFT) | ||||
/* MVFR1_EL1 */ | /* MVFR1_EL1 */ | ||||
#define MVFR1_EL1 MRS_REG(3, 0, 0, 3, 1) | #define MVFR1_EL1 MRS_REG(MVFR1_EL1) | ||||
#define MVFR1_EL1_op0 0x3 | |||||
#define MVFR1_EL1_op1 0x0 | |||||
#define MVFR1_EL1_CRn 0x0 | |||||
#define MVFR1_EL1_CRm 0x3 | |||||
#define MVFR1_EL1_op2 0x1 | |||||
#define MVFR1_FPFtZ_SHIFT 0 | #define MVFR1_FPFtZ_SHIFT 0 | ||||
#define MVFR1_FPFtZ_MASK (UL(0xf) << MVFR1_FPFtZ_SHIFT) | #define MVFR1_FPFtZ_MASK (UL(0xf) << MVFR1_FPFtZ_SHIFT) | ||||
#define MVFR1_FPFtZ_VAL(x) ((x) & MVFR1_FPFtZ_MASK) | #define MVFR1_FPFtZ_VAL(x) ((x) & MVFR1_FPFtZ_MASK) | ||||
#define MVFR1_FPFtZ_NONE (UL(0x0) << MVFR1_FPFtZ_SHIFT) | #define MVFR1_FPFtZ_NONE (UL(0x0) << MVFR1_FPFtZ_SHIFT) | ||||
#define MVFR1_FPFtZ_IMPL (UL(0x1) << MVFR1_FPFtZ_SHIFT) | #define MVFR1_FPFtZ_IMPL (UL(0x1) << MVFR1_FPFtZ_SHIFT) | ||||
#define MVFR1_FPDNaN_SHIFT 4 | #define MVFR1_FPDNaN_SHIFT 4 | ||||
#define MVFR1_FPDNaN_MASK (UL(0xf) << MVFR1_FPDNaN_SHIFT) | #define MVFR1_FPDNaN_MASK (UL(0xf) << MVFR1_FPDNaN_SHIFT) | ||||
#define MVFR1_FPDNaN_VAL(x) ((x) & MVFR1_FPDNaN_MASK) | #define MVFR1_FPDNaN_VAL(x) ((x) & MVFR1_FPDNaN_MASK) | ||||
▲ Show 20 Lines • Show All 322 Lines • Show Last 20 Lines |