From: Oliver Upton <oliver.upton@linux.dev>
To: kvmarm@lists.linux.dev
Cc: kvm@vger.kernel.org, Marc Zyngier <maz@kernel.org>,
James Morse <james.morse@arm.com>,
Suzuki K Poulose <suzuki.poulose@arm.com>,
Zenghui Yu <yuzenghui@huawei.com>,
Mark Brown <broonie@kernel.org>,
Jing Zhang <jingzhangos@google.com>,
Oliver Upton <oliver.upton@linux.dev>
Subject: [PATCH 1/2] tools: arm64: Add a copy of sysreg-defs.h generated from the kernel
Date: Thu, 5 Oct 2023 18:03:23 +0000 [thread overview]
Message-ID: <20231005180325.525236-2-oliver.upton@linux.dev> (raw)
In-Reply-To: <20231005180325.525236-1-oliver.upton@linux.dev>
Wiring up the build infrastructure necessary to generate the sysreg
definitions for dependent targets (e.g. perf, KVM selftests) is a bit of
an undertaking with near zero benefit. Just take what the kernel
generated instead.
Cc: Mark Brown <broonie@kernel.org>
Signed-off-by: Oliver Upton <oliver.upton@linux.dev>
---
tools/arch/arm64/include/asm/sysreg-defs.h | 6806 ++++++++++++++++++++
1 file changed, 6806 insertions(+)
create mode 100644 tools/arch/arm64/include/asm/sysreg-defs.h
diff --git a/tools/arch/arm64/include/asm/sysreg-defs.h b/tools/arch/arm64/include/asm/sysreg-defs.h
new file mode 100644
index 000000000000..570c27fd696f
--- /dev/null
+++ b/tools/arch/arm64/include/asm/sysreg-defs.h
@@ -0,0 +1,6806 @@
+#ifndef __ASM_SYSREG_DEFS_H
+#define __ASM_SYSREG_DEFS_H
+
+/* Generated file - do not edit */
+
+#define REG_OSDTRRX_EL1 S2_0_C0_C0_2
+#define SYS_OSDTRRX_EL1 sys_reg(2, 0, 0, 0, 2)
+#define SYS_OSDTRRX_EL1_Op0 2
+#define SYS_OSDTRRX_EL1_Op1 0
+#define SYS_OSDTRRX_EL1_CRn 0
+#define SYS_OSDTRRX_EL1_CRm 0
+#define SYS_OSDTRRX_EL1_Op2 2
+
+#define OSDTRRX_EL1_DTRRX GENMASK(31, 0)
+#define OSDTRRX_EL1_DTRRX_MASK GENMASK(31, 0)
+#define OSDTRRX_EL1_DTRRX_SHIFT 0
+#define OSDTRRX_EL1_DTRRX_WIDTH 32
+
+#define OSDTRRX_EL1_RES0 (UL(0) | GENMASK_ULL(63, 32))
+#define OSDTRRX_EL1_RES1 (UL(0))
+#define OSDTRRX_EL1_UNKN (UL(0))
+
+#define REG_MDCCINT_EL1 S2_0_C0_C2_0
+#define SYS_MDCCINT_EL1 sys_reg(2, 0, 0, 2, 0)
+#define SYS_MDCCINT_EL1_Op0 2
+#define SYS_MDCCINT_EL1_Op1 0
+#define SYS_MDCCINT_EL1_CRn 0
+#define SYS_MDCCINT_EL1_CRm 2
+#define SYS_MDCCINT_EL1_Op2 0
+
+#define MDCCINT_EL1_RX GENMASK(30, 30)
+#define MDCCINT_EL1_RX_MASK GENMASK(30, 30)
+#define MDCCINT_EL1_RX_SHIFT 30
+#define MDCCINT_EL1_RX_WIDTH 1
+
+#define MDCCINT_EL1_TX GENMASK(29, 29)
+#define MDCCINT_EL1_TX_MASK GENMASK(29, 29)
+#define MDCCINT_EL1_TX_SHIFT 29
+#define MDCCINT_EL1_TX_WIDTH 1
+
+#define MDCCINT_EL1_RES0 (UL(0) | GENMASK_ULL(63, 31) | GENMASK_ULL(28, 0))
+#define MDCCINT_EL1_RES1 (UL(0))
+#define MDCCINT_EL1_UNKN (UL(0))
+
+#define REG_MDSCR_EL1 S2_0_C0_C2_2
+#define SYS_MDSCR_EL1 sys_reg(2, 0, 0, 2, 2)
+#define SYS_MDSCR_EL1_Op0 2
+#define SYS_MDSCR_EL1_Op1 0
+#define SYS_MDSCR_EL1_CRn 0
+#define SYS_MDSCR_EL1_CRm 2
+#define SYS_MDSCR_EL1_Op2 2
+
+#define MDSCR_EL1_EHBWE GENMASK(35, 35)
+#define MDSCR_EL1_EHBWE_MASK GENMASK(35, 35)
+#define MDSCR_EL1_EHBWE_SHIFT 35
+#define MDSCR_EL1_EHBWE_WIDTH 1
+
+#define MDSCR_EL1_EnSPM GENMASK(34, 34)
+#define MDSCR_EL1_EnSPM_MASK GENMASK(34, 34)
+#define MDSCR_EL1_EnSPM_SHIFT 34
+#define MDSCR_EL1_EnSPM_WIDTH 1
+
+#define MDSCR_EL1_TTA GENMASK(33, 33)
+#define MDSCR_EL1_TTA_MASK GENMASK(33, 33)
+#define MDSCR_EL1_TTA_SHIFT 33
+#define MDSCR_EL1_TTA_WIDTH 1
+
+#define MDSCR_EL1_EMBWE GENMASK(32, 32)
+#define MDSCR_EL1_EMBWE_MASK GENMASK(32, 32)
+#define MDSCR_EL1_EMBWE_SHIFT 32
+#define MDSCR_EL1_EMBWE_WIDTH 1
+
+#define MDSCR_EL1_TFO GENMASK(31, 31)
+#define MDSCR_EL1_TFO_MASK GENMASK(31, 31)
+#define MDSCR_EL1_TFO_SHIFT 31
+#define MDSCR_EL1_TFO_WIDTH 1
+
+#define MDSCR_EL1_RXfull GENMASK(30, 30)
+#define MDSCR_EL1_RXfull_MASK GENMASK(30, 30)
+#define MDSCR_EL1_RXfull_SHIFT 30
+#define MDSCR_EL1_RXfull_WIDTH 1
+
+#define MDSCR_EL1_TXfull GENMASK(29, 29)
+#define MDSCR_EL1_TXfull_MASK GENMASK(29, 29)
+#define MDSCR_EL1_TXfull_SHIFT 29
+#define MDSCR_EL1_TXfull_WIDTH 1
+
+#define MDSCR_EL1_RXO GENMASK(27, 27)
+#define MDSCR_EL1_RXO_MASK GENMASK(27, 27)
+#define MDSCR_EL1_RXO_SHIFT 27
+#define MDSCR_EL1_RXO_WIDTH 1
+
+#define MDSCR_EL1_TXU GENMASK(26, 26)
+#define MDSCR_EL1_TXU_MASK GENMASK(26, 26)
+#define MDSCR_EL1_TXU_SHIFT 26
+#define MDSCR_EL1_TXU_WIDTH 1
+
+#define MDSCR_EL1_INTdis GENMASK(23, 22)
+#define MDSCR_EL1_INTdis_MASK GENMASK(23, 22)
+#define MDSCR_EL1_INTdis_SHIFT 22
+#define MDSCR_EL1_INTdis_WIDTH 2
+
+#define MDSCR_EL1_TDA GENMASK(21, 21)
+#define MDSCR_EL1_TDA_MASK GENMASK(21, 21)
+#define MDSCR_EL1_TDA_SHIFT 21
+#define MDSCR_EL1_TDA_WIDTH 1
+
+#define MDSCR_EL1_SC2 GENMASK(19, 19)
+#define MDSCR_EL1_SC2_MASK GENMASK(19, 19)
+#define MDSCR_EL1_SC2_SHIFT 19
+#define MDSCR_EL1_SC2_WIDTH 1
+
+#define MDSCR_EL1_MDE GENMASK(15, 15)
+#define MDSCR_EL1_MDE_MASK GENMASK(15, 15)
+#define MDSCR_EL1_MDE_SHIFT 15
+#define MDSCR_EL1_MDE_WIDTH 1
+
+#define MDSCR_EL1_HDE GENMASK(14, 14)
+#define MDSCR_EL1_HDE_MASK GENMASK(14, 14)
+#define MDSCR_EL1_HDE_SHIFT 14
+#define MDSCR_EL1_HDE_WIDTH 1
+
+#define MDSCR_EL1_KDE GENMASK(13, 13)
+#define MDSCR_EL1_KDE_MASK GENMASK(13, 13)
+#define MDSCR_EL1_KDE_SHIFT 13
+#define MDSCR_EL1_KDE_WIDTH 1
+
+#define MDSCR_EL1_TDCC GENMASK(12, 12)
+#define MDSCR_EL1_TDCC_MASK GENMASK(12, 12)
+#define MDSCR_EL1_TDCC_SHIFT 12
+#define MDSCR_EL1_TDCC_WIDTH 1
+
+#define MDSCR_EL1_ERR GENMASK(6, 6)
+#define MDSCR_EL1_ERR_MASK GENMASK(6, 6)
+#define MDSCR_EL1_ERR_SHIFT 6
+#define MDSCR_EL1_ERR_WIDTH 1
+
+#define MDSCR_EL1_SS GENMASK(0, 0)
+#define MDSCR_EL1_SS_MASK GENMASK(0, 0)
+#define MDSCR_EL1_SS_SHIFT 0
+#define MDSCR_EL1_SS_WIDTH 1
+
+#define MDSCR_EL1_RES0 (UL(0) | GENMASK_ULL(63, 36) | GENMASK_ULL(28, 28) | GENMASK_ULL(25, 24) | GENMASK_ULL(20, 20) | GENMASK_ULL(18, 16) | GENMASK_ULL(11, 7) | GENMASK_ULL(5, 1))
+#define MDSCR_EL1_RES1 (UL(0))
+#define MDSCR_EL1_UNKN (UL(0))
+
+#define REG_OSDTRTX_EL1 S2_0_C0_C3_2
+#define SYS_OSDTRTX_EL1 sys_reg(2, 0, 0, 3, 2)
+#define SYS_OSDTRTX_EL1_Op0 2
+#define SYS_OSDTRTX_EL1_Op1 0
+#define SYS_OSDTRTX_EL1_CRn 0
+#define SYS_OSDTRTX_EL1_CRm 3
+#define SYS_OSDTRTX_EL1_Op2 2
+
+#define OSDTRTX_EL1_DTRTX GENMASK(31, 0)
+#define OSDTRTX_EL1_DTRTX_MASK GENMASK(31, 0)
+#define OSDTRTX_EL1_DTRTX_SHIFT 0
+#define OSDTRTX_EL1_DTRTX_WIDTH 32
+
+#define OSDTRTX_EL1_RES0 (UL(0) | GENMASK_ULL(63, 32))
+#define OSDTRTX_EL1_RES1 (UL(0))
+#define OSDTRTX_EL1_UNKN (UL(0))
+
+#define REG_OSECCR_EL1 S2_0_C0_C6_2
+#define SYS_OSECCR_EL1 sys_reg(2, 0, 0, 6, 2)
+#define SYS_OSECCR_EL1_Op0 2
+#define SYS_OSECCR_EL1_Op1 0
+#define SYS_OSECCR_EL1_CRn 0
+#define SYS_OSECCR_EL1_CRm 6
+#define SYS_OSECCR_EL1_Op2 2
+
+#define OSECCR_EL1_EDECCR GENMASK(31, 0)
+#define OSECCR_EL1_EDECCR_MASK GENMASK(31, 0)
+#define OSECCR_EL1_EDECCR_SHIFT 0
+#define OSECCR_EL1_EDECCR_WIDTH 32
+
+#define OSECCR_EL1_RES0 (UL(0) | GENMASK_ULL(63, 32))
+#define OSECCR_EL1_RES1 (UL(0))
+#define OSECCR_EL1_UNKN (UL(0))
+
+#define REG_OSLAR_EL1 S2_0_C1_C0_4
+#define SYS_OSLAR_EL1 sys_reg(2, 0, 1, 0, 4)
+#define SYS_OSLAR_EL1_Op0 2
+#define SYS_OSLAR_EL1_Op1 0
+#define SYS_OSLAR_EL1_CRn 1
+#define SYS_OSLAR_EL1_CRm 0
+#define SYS_OSLAR_EL1_Op2 4
+
+#define OSLAR_EL1_OSLK GENMASK(0, 0)
+#define OSLAR_EL1_OSLK_MASK GENMASK(0, 0)
+#define OSLAR_EL1_OSLK_SHIFT 0
+#define OSLAR_EL1_OSLK_WIDTH 1
+
+#define OSLAR_EL1_RES0 (UL(0) | GENMASK_ULL(63, 1))
+#define OSLAR_EL1_RES1 (UL(0))
+#define OSLAR_EL1_UNKN (UL(0))
+
+#define REG_ID_PFR0_EL1 S3_0_C0_C1_0
+#define SYS_ID_PFR0_EL1 sys_reg(3, 0, 0, 1, 0)
+#define SYS_ID_PFR0_EL1_Op0 3
+#define SYS_ID_PFR0_EL1_Op1 0
+#define SYS_ID_PFR0_EL1_CRn 0
+#define SYS_ID_PFR0_EL1_CRm 1
+#define SYS_ID_PFR0_EL1_Op2 0
+
+#define ID_PFR0_EL1_RAS GENMASK(31, 28)
+#define ID_PFR0_EL1_RAS_MASK GENMASK(31, 28)
+#define ID_PFR0_EL1_RAS_SHIFT 28
+#define ID_PFR0_EL1_RAS_WIDTH 4
+#define ID_PFR0_EL1_RAS_SIGNED false
+#define ID_PFR0_EL1_RAS_NI UL(0b0000)
+#define ID_PFR0_EL1_RAS_RAS UL(0b0001)
+#define ID_PFR0_EL1_RAS_RASv1p1 UL(0b0010)
+
+#define ID_PFR0_EL1_DIT GENMASK(27, 24)
+#define ID_PFR0_EL1_DIT_MASK GENMASK(27, 24)
+#define ID_PFR0_EL1_DIT_SHIFT 24
+#define ID_PFR0_EL1_DIT_WIDTH 4
+#define ID_PFR0_EL1_DIT_SIGNED false
+#define ID_PFR0_EL1_DIT_NI UL(0b0000)
+#define ID_PFR0_EL1_DIT_IMP UL(0b0001)
+
+#define ID_PFR0_EL1_AMU GENMASK(23, 20)
+#define ID_PFR0_EL1_AMU_MASK GENMASK(23, 20)
+#define ID_PFR0_EL1_AMU_SHIFT 20
+#define ID_PFR0_EL1_AMU_WIDTH 4
+#define ID_PFR0_EL1_AMU_SIGNED false
+#define ID_PFR0_EL1_AMU_NI UL(0b0000)
+#define ID_PFR0_EL1_AMU_AMUv1 UL(0b0001)
+#define ID_PFR0_EL1_AMU_AMUv1p1 UL(0b0010)
+
+#define ID_PFR0_EL1_CSV2 GENMASK(19, 16)
+#define ID_PFR0_EL1_CSV2_MASK GENMASK(19, 16)
+#define ID_PFR0_EL1_CSV2_SHIFT 16
+#define ID_PFR0_EL1_CSV2_WIDTH 4
+#define ID_PFR0_EL1_CSV2_SIGNED false
+#define ID_PFR0_EL1_CSV2_UNDISCLOSED UL(0b0000)
+#define ID_PFR0_EL1_CSV2_IMP UL(0b0001)
+#define ID_PFR0_EL1_CSV2_CSV2p1 UL(0b0010)
+
+#define ID_PFR0_EL1_State3 GENMASK(15, 12)
+#define ID_PFR0_EL1_State3_MASK GENMASK(15, 12)
+#define ID_PFR0_EL1_State3_SHIFT 12
+#define ID_PFR0_EL1_State3_WIDTH 4
+#define ID_PFR0_EL1_State3_SIGNED false
+#define ID_PFR0_EL1_State3_NI UL(0b0000)
+#define ID_PFR0_EL1_State3_IMP UL(0b0001)
+
+#define ID_PFR0_EL1_State2 GENMASK(11, 8)
+#define ID_PFR0_EL1_State2_MASK GENMASK(11, 8)
+#define ID_PFR0_EL1_State2_SHIFT 8
+#define ID_PFR0_EL1_State2_WIDTH 4
+#define ID_PFR0_EL1_State2_NI UL(0b0000)
+#define ID_PFR0_EL1_State2_NO_CV UL(0b0001)
+#define ID_PFR0_EL1_State2_CV UL(0b0010)
+
+#define ID_PFR0_EL1_State1 GENMASK(7, 4)
+#define ID_PFR0_EL1_State1_MASK GENMASK(7, 4)
+#define ID_PFR0_EL1_State1_SHIFT 4
+#define ID_PFR0_EL1_State1_WIDTH 4
+#define ID_PFR0_EL1_State1_SIGNED false
+#define ID_PFR0_EL1_State1_NI UL(0b0000)
+#define ID_PFR0_EL1_State1_THUMB UL(0b0001)
+#define ID_PFR0_EL1_State1_THUMB2 UL(0b0010)
+
+#define ID_PFR0_EL1_State0 GENMASK(3, 0)
+#define ID_PFR0_EL1_State0_MASK GENMASK(3, 0)
+#define ID_PFR0_EL1_State0_SHIFT 0
+#define ID_PFR0_EL1_State0_WIDTH 4
+#define ID_PFR0_EL1_State0_SIGNED false
+#define ID_PFR0_EL1_State0_NI UL(0b0000)
+#define ID_PFR0_EL1_State0_IMP UL(0b0001)
+
+#define ID_PFR0_EL1_RES0 (UL(0) | GENMASK_ULL(63, 32))
+#define ID_PFR0_EL1_RES1 (UL(0))
+#define ID_PFR0_EL1_UNKN (UL(0))
+
+#define REG_ID_PFR1_EL1 S3_0_C0_C1_1
+#define SYS_ID_PFR1_EL1 sys_reg(3, 0, 0, 1, 1)
+#define SYS_ID_PFR1_EL1_Op0 3
+#define SYS_ID_PFR1_EL1_Op1 0
+#define SYS_ID_PFR1_EL1_CRn 0
+#define SYS_ID_PFR1_EL1_CRm 1
+#define SYS_ID_PFR1_EL1_Op2 1
+
+#define ID_PFR1_EL1_GIC GENMASK(31, 28)
+#define ID_PFR1_EL1_GIC_MASK GENMASK(31, 28)
+#define ID_PFR1_EL1_GIC_SHIFT 28
+#define ID_PFR1_EL1_GIC_WIDTH 4
+#define ID_PFR1_EL1_GIC_SIGNED false
+#define ID_PFR1_EL1_GIC_NI UL(0b0000)
+#define ID_PFR1_EL1_GIC_GICv3 UL(0b0001)
+#define ID_PFR1_EL1_GIC_GICv4p1 UL(0b0010)
+
+#define ID_PFR1_EL1_Virt_frac GENMASK(27, 24)
+#define ID_PFR1_EL1_Virt_frac_MASK GENMASK(27, 24)
+#define ID_PFR1_EL1_Virt_frac_SHIFT 24
+#define ID_PFR1_EL1_Virt_frac_WIDTH 4
+#define ID_PFR1_EL1_Virt_frac_SIGNED false
+#define ID_PFR1_EL1_Virt_frac_NI UL(0b0000)
+#define ID_PFR1_EL1_Virt_frac_IMP UL(0b0001)
+
+#define ID_PFR1_EL1_Sec_frac GENMASK(23, 20)
+#define ID_PFR1_EL1_Sec_frac_MASK GENMASK(23, 20)
+#define ID_PFR1_EL1_Sec_frac_SHIFT 20
+#define ID_PFR1_EL1_Sec_frac_WIDTH 4
+#define ID_PFR1_EL1_Sec_frac_NI UL(0b0000)
+#define ID_PFR1_EL1_Sec_frac_WALK_DISABLE UL(0b0001)
+#define ID_PFR1_EL1_Sec_frac_SECURE_MEMORY UL(0b0010)
+
+#define ID_PFR1_EL1_GenTimer GENMASK(19, 16)
+#define ID_PFR1_EL1_GenTimer_MASK GENMASK(19, 16)
+#define ID_PFR1_EL1_GenTimer_SHIFT 16
+#define ID_PFR1_EL1_GenTimer_WIDTH 4
+#define ID_PFR1_EL1_GenTimer_SIGNED false
+#define ID_PFR1_EL1_GenTimer_NI UL(0b0000)
+#define ID_PFR1_EL1_GenTimer_IMP UL(0b0001)
+#define ID_PFR1_EL1_GenTimer_ECV UL(0b0010)
+
+#define ID_PFR1_EL1_Virtualization GENMASK(15, 12)
+#define ID_PFR1_EL1_Virtualization_MASK GENMASK(15, 12)
+#define ID_PFR1_EL1_Virtualization_SHIFT 12
+#define ID_PFR1_EL1_Virtualization_WIDTH 4
+#define ID_PFR1_EL1_Virtualization_SIGNED false
+#define ID_PFR1_EL1_Virtualization_NI UL(0b0000)
+#define ID_PFR1_EL1_Virtualization_IMP UL(0b0001)
+
+#define ID_PFR1_EL1_MProgMod GENMASK(11, 8)
+#define ID_PFR1_EL1_MProgMod_MASK GENMASK(11, 8)
+#define ID_PFR1_EL1_MProgMod_SHIFT 8
+#define ID_PFR1_EL1_MProgMod_WIDTH 4
+#define ID_PFR1_EL1_MProgMod_SIGNED false
+#define ID_PFR1_EL1_MProgMod_NI UL(0b0000)
+#define ID_PFR1_EL1_MProgMod_IMP UL(0b0001)
+
+#define ID_PFR1_EL1_Security GENMASK(7, 4)
+#define ID_PFR1_EL1_Security_MASK GENMASK(7, 4)
+#define ID_PFR1_EL1_Security_SHIFT 4
+#define ID_PFR1_EL1_Security_WIDTH 4
+#define ID_PFR1_EL1_Security_NI UL(0b0000)
+#define ID_PFR1_EL1_Security_EL3 UL(0b0001)
+#define ID_PFR1_EL1_Security_NSACR_RFR UL(0b0001)
+
+#define ID_PFR1_EL1_ProgMod GENMASK(3, 0)
+#define ID_PFR1_EL1_ProgMod_MASK GENMASK(3, 0)
+#define ID_PFR1_EL1_ProgMod_SHIFT 0
+#define ID_PFR1_EL1_ProgMod_WIDTH 4
+#define ID_PFR1_EL1_ProgMod_SIGNED false
+#define ID_PFR1_EL1_ProgMod_NI UL(0b0000)
+#define ID_PFR1_EL1_ProgMod_IMP UL(0b0001)
+
+#define ID_PFR1_EL1_RES0 (UL(0) | GENMASK_ULL(63, 32))
+#define ID_PFR1_EL1_RES1 (UL(0))
+#define ID_PFR1_EL1_UNKN (UL(0))
+
+#define REG_ID_DFR0_EL1 S3_0_C0_C1_2
+#define SYS_ID_DFR0_EL1 sys_reg(3, 0, 0, 1, 2)
+#define SYS_ID_DFR0_EL1_Op0 3
+#define SYS_ID_DFR0_EL1_Op1 0
+#define SYS_ID_DFR0_EL1_CRn 0
+#define SYS_ID_DFR0_EL1_CRm 1
+#define SYS_ID_DFR0_EL1_Op2 2
+
+#define ID_DFR0_EL1_TraceFilt GENMASK(31, 28)
+#define ID_DFR0_EL1_TraceFilt_MASK GENMASK(31, 28)
+#define ID_DFR0_EL1_TraceFilt_SHIFT 28
+#define ID_DFR0_EL1_TraceFilt_WIDTH 4
+#define ID_DFR0_EL1_TraceFilt_SIGNED false
+#define ID_DFR0_EL1_TraceFilt_NI UL(0b0000)
+#define ID_DFR0_EL1_TraceFilt_IMP UL(0b0001)
+
+#define ID_DFR0_EL1_PerfMon GENMASK(27, 24)
+#define ID_DFR0_EL1_PerfMon_MASK GENMASK(27, 24)
+#define ID_DFR0_EL1_PerfMon_SHIFT 24
+#define ID_DFR0_EL1_PerfMon_WIDTH 4
+#define ID_DFR0_EL1_PerfMon_SIGNED false
+#define ID_DFR0_EL1_PerfMon_NI UL(0b0000)
+#define ID_DFR0_EL1_PerfMon_PMUv1 UL(0b0001)
+#define ID_DFR0_EL1_PerfMon_PMUv2 UL(0b0010)
+#define ID_DFR0_EL1_PerfMon_PMUv3 UL(0b0011)
+#define ID_DFR0_EL1_PerfMon_PMUv3p1 UL(0b0100)
+#define ID_DFR0_EL1_PerfMon_PMUv3p4 UL(0b0101)
+#define ID_DFR0_EL1_PerfMon_PMUv3p5 UL(0b0110)
+#define ID_DFR0_EL1_PerfMon_PMUv3p7 UL(0b0111)
+#define ID_DFR0_EL1_PerfMon_PMUv3p8 UL(0b1000)
+#define ID_DFR0_EL1_PerfMon_IMPDEF UL(0b1111)
+
+#define ID_DFR0_EL1_MProfDbg GENMASK(23, 20)
+#define ID_DFR0_EL1_MProfDbg_MASK GENMASK(23, 20)
+#define ID_DFR0_EL1_MProfDbg_SHIFT 20
+#define ID_DFR0_EL1_MProfDbg_WIDTH 4
+#define ID_DFR0_EL1_MProfDbg_NI UL(0b0000)
+#define ID_DFR0_EL1_MProfDbg_IMP UL(0b0001)
+
+#define ID_DFR0_EL1_MMapTrc GENMASK(19, 16)
+#define ID_DFR0_EL1_MMapTrc_MASK GENMASK(19, 16)
+#define ID_DFR0_EL1_MMapTrc_SHIFT 16
+#define ID_DFR0_EL1_MMapTrc_WIDTH 4
+#define ID_DFR0_EL1_MMapTrc_NI UL(0b0000)
+#define ID_DFR0_EL1_MMapTrc_IMP UL(0b0001)
+
+#define ID_DFR0_EL1_CopTrc GENMASK(15, 12)
+#define ID_DFR0_EL1_CopTrc_MASK GENMASK(15, 12)
+#define ID_DFR0_EL1_CopTrc_SHIFT 12
+#define ID_DFR0_EL1_CopTrc_WIDTH 4
+#define ID_DFR0_EL1_CopTrc_NI UL(0b0000)
+#define ID_DFR0_EL1_CopTrc_IMP UL(0b0001)
+
+#define ID_DFR0_EL1_MMapDbg GENMASK(11, 8)
+#define ID_DFR0_EL1_MMapDbg_MASK GENMASK(11, 8)
+#define ID_DFR0_EL1_MMapDbg_SHIFT 8
+#define ID_DFR0_EL1_MMapDbg_WIDTH 4
+#define ID_DFR0_EL1_MMapDbg_NI UL(0b0000)
+#define ID_DFR0_EL1_MMapDbg_Armv7 UL(0b0100)
+#define ID_DFR0_EL1_MMapDbg_Armv7p1 UL(0b0101)
+
+#define ID_DFR0_EL1_CopSDbg GENMASK(7, 4)
+#define ID_DFR0_EL1_CopSDbg_MASK GENMASK(7, 4)
+#define ID_DFR0_EL1_CopSDbg_SHIFT 4
+#define ID_DFR0_EL1_CopSDbg_WIDTH 4
+
+#define ID_DFR0_EL1_CopDbg GENMASK(3, 0)
+#define ID_DFR0_EL1_CopDbg_MASK GENMASK(3, 0)
+#define ID_DFR0_EL1_CopDbg_SHIFT 0
+#define ID_DFR0_EL1_CopDbg_WIDTH 4
+#define ID_DFR0_EL1_CopDbg_NI UL(0b0000)
+#define ID_DFR0_EL1_CopDbg_Armv6 UL(0b0010)
+#define ID_DFR0_EL1_CopDbg_Armv6p1 UL(0b0011)
+#define ID_DFR0_EL1_CopDbg_Armv7 UL(0b0100)
+#define ID_DFR0_EL1_CopDbg_Armv7p1 UL(0b0101)
+#define ID_DFR0_EL1_CopDbg_Armv8 UL(0b0110)
+#define ID_DFR0_EL1_CopDbg_VHE UL(0b0111)
+#define ID_DFR0_EL1_CopDbg_Debugv8p2 UL(0b1000)
+#define ID_DFR0_EL1_CopDbg_Debugv8p4 UL(0b1001)
+#define ID_DFR0_EL1_CopDbg_Debugv8p8 UL(0b1010)
+
+#define ID_DFR0_EL1_RES0 (UL(0) | GENMASK_ULL(63, 32))
+#define ID_DFR0_EL1_RES1 (UL(0))
+#define ID_DFR0_EL1_UNKN (UL(0))
+
+#define REG_ID_AFR0_EL1 S3_0_C0_C1_3
+#define SYS_ID_AFR0_EL1 sys_reg(3, 0, 0, 1, 3)
+#define SYS_ID_AFR0_EL1_Op0 3
+#define SYS_ID_AFR0_EL1_Op1 0
+#define SYS_ID_AFR0_EL1_CRn 0
+#define SYS_ID_AFR0_EL1_CRm 1
+#define SYS_ID_AFR0_EL1_Op2 3
+
+#define ID_AFR0_EL1_IMPDEF3 GENMASK(15, 12)
+#define ID_AFR0_EL1_IMPDEF3_MASK GENMASK(15, 12)
+#define ID_AFR0_EL1_IMPDEF3_SHIFT 12
+#define ID_AFR0_EL1_IMPDEF3_WIDTH 4
+
+#define ID_AFR0_EL1_IMPDEF2 GENMASK(11, 8)
+#define ID_AFR0_EL1_IMPDEF2_MASK GENMASK(11, 8)
+#define ID_AFR0_EL1_IMPDEF2_SHIFT 8
+#define ID_AFR0_EL1_IMPDEF2_WIDTH 4
+
+#define ID_AFR0_EL1_IMPDEF1 GENMASK(7, 4)
+#define ID_AFR0_EL1_IMPDEF1_MASK GENMASK(7, 4)
+#define ID_AFR0_EL1_IMPDEF1_SHIFT 4
+#define ID_AFR0_EL1_IMPDEF1_WIDTH 4
+
+#define ID_AFR0_EL1_IMPDEF0 GENMASK(3, 0)
+#define ID_AFR0_EL1_IMPDEF0_MASK GENMASK(3, 0)
+#define ID_AFR0_EL1_IMPDEF0_SHIFT 0
+#define ID_AFR0_EL1_IMPDEF0_WIDTH 4
+
+#define ID_AFR0_EL1_RES0 (UL(0) | GENMASK_ULL(63, 16))
+#define ID_AFR0_EL1_RES1 (UL(0))
+#define ID_AFR0_EL1_UNKN (UL(0))
+
+#define REG_ID_MMFR0_EL1 S3_0_C0_C1_4
+#define SYS_ID_MMFR0_EL1 sys_reg(3, 0, 0, 1, 4)
+#define SYS_ID_MMFR0_EL1_Op0 3
+#define SYS_ID_MMFR0_EL1_Op1 0
+#define SYS_ID_MMFR0_EL1_CRn 0
+#define SYS_ID_MMFR0_EL1_CRm 1
+#define SYS_ID_MMFR0_EL1_Op2 4
+
+#define ID_MMFR0_EL1_InnerShr GENMASK(31, 28)
+#define ID_MMFR0_EL1_InnerShr_MASK GENMASK(31, 28)
+#define ID_MMFR0_EL1_InnerShr_SHIFT 28
+#define ID_MMFR0_EL1_InnerShr_WIDTH 4
+#define ID_MMFR0_EL1_InnerShr_NC UL(0b0000)
+#define ID_MMFR0_EL1_InnerShr_HW UL(0b0001)
+#define ID_MMFR0_EL1_InnerShr_IGNORED UL(0b1111)
+
+#define ID_MMFR0_EL1_FCSE GENMASK(27, 24)
+#define ID_MMFR0_EL1_FCSE_MASK GENMASK(27, 24)
+#define ID_MMFR0_EL1_FCSE_SHIFT 24
+#define ID_MMFR0_EL1_FCSE_WIDTH 4
+#define ID_MMFR0_EL1_FCSE_SIGNED false
+#define ID_MMFR0_EL1_FCSE_NI UL(0b0000)
+#define ID_MMFR0_EL1_FCSE_IMP UL(0b0001)
+
+#define ID_MMFR0_EL1_AuxReg GENMASK(23, 20)
+#define ID_MMFR0_EL1_AuxReg_MASK GENMASK(23, 20)
+#define ID_MMFR0_EL1_AuxReg_SHIFT 20
+#define ID_MMFR0_EL1_AuxReg_WIDTH 4
+#define ID_MMFR0_EL1_AuxReg_NI UL(0b0000)
+#define ID_MMFR0_EL1_AuxReg_ACTLR UL(0b0001)
+#define ID_MMFR0_EL1_AuxReg_AIFSR UL(0b0010)
+
+#define ID_MMFR0_EL1_TCM GENMASK(19, 16)
+#define ID_MMFR0_EL1_TCM_MASK GENMASK(19, 16)
+#define ID_MMFR0_EL1_TCM_SHIFT 16
+#define ID_MMFR0_EL1_TCM_WIDTH 4
+#define ID_MMFR0_EL1_TCM_NI UL(0b0000)
+#define ID_MMFR0_EL1_TCM_IMPDEF UL(0b0001)
+#define ID_MMFR0_EL1_TCM_TCM UL(0b0010)
+#define ID_MMFR0_EL1_TCM_TCM_DMA UL(0b0011)
+
+#define ID_MMFR0_EL1_ShareLvl GENMASK(15, 12)
+#define ID_MMFR0_EL1_ShareLvl_MASK GENMASK(15, 12)
+#define ID_MMFR0_EL1_ShareLvl_SHIFT 12
+#define ID_MMFR0_EL1_ShareLvl_WIDTH 4
+#define ID_MMFR0_EL1_ShareLvl_ONE UL(0b0000)
+#define ID_MMFR0_EL1_ShareLvl_TWO UL(0b0001)
+
+#define ID_MMFR0_EL1_OuterShr GENMASK(11, 8)
+#define ID_MMFR0_EL1_OuterShr_MASK GENMASK(11, 8)
+#define ID_MMFR0_EL1_OuterShr_SHIFT 8
+#define ID_MMFR0_EL1_OuterShr_WIDTH 4
+#define ID_MMFR0_EL1_OuterShr_NC UL(0b0000)
+#define ID_MMFR0_EL1_OuterShr_HW UL(0b0001)
+#define ID_MMFR0_EL1_OuterShr_IGNORED UL(0b1111)
+
+#define ID_MMFR0_EL1_PMSA GENMASK(7, 4)
+#define ID_MMFR0_EL1_PMSA_MASK GENMASK(7, 4)
+#define ID_MMFR0_EL1_PMSA_SHIFT 4
+#define ID_MMFR0_EL1_PMSA_WIDTH 4
+#define ID_MMFR0_EL1_PMSA_NI UL(0b0000)
+#define ID_MMFR0_EL1_PMSA_IMPDEF UL(0b0001)
+#define ID_MMFR0_EL1_PMSA_PMSAv6 UL(0b0010)
+#define ID_MMFR0_EL1_PMSA_PMSAv7 UL(0b0011)
+
+#define ID_MMFR0_EL1_VMSA GENMASK(3, 0)
+#define ID_MMFR0_EL1_VMSA_MASK GENMASK(3, 0)
+#define ID_MMFR0_EL1_VMSA_SHIFT 0
+#define ID_MMFR0_EL1_VMSA_WIDTH 4
+#define ID_MMFR0_EL1_VMSA_NI UL(0b0000)
+#define ID_MMFR0_EL1_VMSA_IMPDEF UL(0b0001)
+#define ID_MMFR0_EL1_VMSA_VMSAv6 UL(0b0010)
+#define ID_MMFR0_EL1_VMSA_VMSAv7 UL(0b0011)
+#define ID_MMFR0_EL1_VMSA_VMSAv7_PXN UL(0b0100)
+#define ID_MMFR0_EL1_VMSA_VMSAv7_LONG UL(0b0101)
+
+#define ID_MMFR0_EL1_RES0 (UL(0) | GENMASK_ULL(63, 32))
+#define ID_MMFR0_EL1_RES1 (UL(0))
+#define ID_MMFR0_EL1_UNKN (UL(0))
+
+#define REG_ID_MMFR1_EL1 S3_0_C0_C1_5
+#define SYS_ID_MMFR1_EL1 sys_reg(3, 0, 0, 1, 5)
+#define SYS_ID_MMFR1_EL1_Op0 3
+#define SYS_ID_MMFR1_EL1_Op1 0
+#define SYS_ID_MMFR1_EL1_CRn 0
+#define SYS_ID_MMFR1_EL1_CRm 1
+#define SYS_ID_MMFR1_EL1_Op2 5
+
+#define ID_MMFR1_EL1_BPred GENMASK(31, 28)
+#define ID_MMFR1_EL1_BPred_MASK GENMASK(31, 28)
+#define ID_MMFR1_EL1_BPred_SHIFT 28
+#define ID_MMFR1_EL1_BPred_WIDTH 4
+#define ID_MMFR1_EL1_BPred_NI UL(0b0000)
+#define ID_MMFR1_EL1_BPred_BP_SW_MANGED UL(0b0001)
+#define ID_MMFR1_EL1_BPred_BP_ASID_AWARE UL(0b0010)
+#define ID_MMFR1_EL1_BPred_BP_NOSNOOP UL(0b0011)
+#define ID_MMFR1_EL1_BPred_BP_INVISIBLE UL(0b0100)
+
+#define ID_MMFR1_EL1_L1TstCln GENMASK(27, 24)
+#define ID_MMFR1_EL1_L1TstCln_MASK GENMASK(27, 24)
+#define ID_MMFR1_EL1_L1TstCln_SHIFT 24
+#define ID_MMFR1_EL1_L1TstCln_WIDTH 4
+#define ID_MMFR1_EL1_L1TstCln_NI UL(0b0000)
+#define ID_MMFR1_EL1_L1TstCln_NOINVALIDATE UL(0b0001)
+#define ID_MMFR1_EL1_L1TstCln_INVALIDATE UL(0b0010)
+
+#define ID_MMFR1_EL1_L1Uni GENMASK(23, 20)
+#define ID_MMFR1_EL1_L1Uni_MASK GENMASK(23, 20)
+#define ID_MMFR1_EL1_L1Uni_SHIFT 20
+#define ID_MMFR1_EL1_L1Uni_WIDTH 4
+#define ID_MMFR1_EL1_L1Uni_NI UL(0b0000)
+#define ID_MMFR1_EL1_L1Uni_INVALIDATE UL(0b0001)
+#define ID_MMFR1_EL1_L1Uni_CLEAN_AND_INVALIDATE UL(0b0010)
+
+#define ID_MMFR1_EL1_L1Hvd GENMASK(19, 16)
+#define ID_MMFR1_EL1_L1Hvd_MASK GENMASK(19, 16)
+#define ID_MMFR1_EL1_L1Hvd_SHIFT 16
+#define ID_MMFR1_EL1_L1Hvd_WIDTH 4
+#define ID_MMFR1_EL1_L1Hvd_NI UL(0b0000)
+#define ID_MMFR1_EL1_L1Hvd_INVALIDATE_ISIDE_ONLY UL(0b0001)
+#define ID_MMFR1_EL1_L1Hvd_INVALIDATE UL(0b0010)
+#define ID_MMFR1_EL1_L1Hvd_CLEAN_AND_INVALIDATE UL(0b0011)
+
+#define ID_MMFR1_EL1_L1UniSW GENMASK(15, 12)
+#define ID_MMFR1_EL1_L1UniSW_MASK GENMASK(15, 12)
+#define ID_MMFR1_EL1_L1UniSW_SHIFT 12
+#define ID_MMFR1_EL1_L1UniSW_WIDTH 4
+#define ID_MMFR1_EL1_L1UniSW_NI UL(0b0000)
+#define ID_MMFR1_EL1_L1UniSW_CLEAN UL(0b0001)
+#define ID_MMFR1_EL1_L1UniSW_CLEAN_AND_INVALIDATE UL(0b0010)
+#define ID_MMFR1_EL1_L1UniSW_INVALIDATE UL(0b0011)
+
+#define ID_MMFR1_EL1_L1HvdSW GENMASK(11, 8)
+#define ID_MMFR1_EL1_L1HvdSW_MASK GENMASK(11, 8)
+#define ID_MMFR1_EL1_L1HvdSW_SHIFT 8
+#define ID_MMFR1_EL1_L1HvdSW_WIDTH 4
+#define ID_MMFR1_EL1_L1HvdSW_NI UL(0b0000)
+#define ID_MMFR1_EL1_L1HvdSW_CLEAN_AND_INVALIDATE UL(0b0001)
+#define ID_MMFR1_EL1_L1HvdSW_INVALIDATE_DSIDE_ONLY UL(0b0010)
+#define ID_MMFR1_EL1_L1HvdSW_INVALIDATE UL(0b0011)
+
+#define ID_MMFR1_EL1_L1UniVA GENMASK(7, 4)
+#define ID_MMFR1_EL1_L1UniVA_MASK GENMASK(7, 4)
+#define ID_MMFR1_EL1_L1UniVA_SHIFT 4
+#define ID_MMFR1_EL1_L1UniVA_WIDTH 4
+#define ID_MMFR1_EL1_L1UniVA_NI UL(0b0000)
+#define ID_MMFR1_EL1_L1UniVA_CLEAN_AND_INVALIDATE UL(0b0001)
+#define ID_MMFR1_EL1_L1UniVA_INVALIDATE_BP UL(0b0010)
+
+#define ID_MMFR1_EL1_L1HvdVA GENMASK(3, 0)
+#define ID_MMFR1_EL1_L1HvdVA_MASK GENMASK(3, 0)
+#define ID_MMFR1_EL1_L1HvdVA_SHIFT 0
+#define ID_MMFR1_EL1_L1HvdVA_WIDTH 4
+#define ID_MMFR1_EL1_L1HvdVA_NI UL(0b0000)
+#define ID_MMFR1_EL1_L1HvdVA_CLEAN_AND_INVALIDATE UL(0b0001)
+#define ID_MMFR1_EL1_L1HvdVA_INVALIDATE_BP UL(0b0010)
+
+#define ID_MMFR1_EL1_RES0 (UL(0) | GENMASK_ULL(63, 32))
+#define ID_MMFR1_EL1_RES1 (UL(0))
+#define ID_MMFR1_EL1_UNKN (UL(0))
+
+#define REG_ID_MMFR2_EL1 S3_0_C0_C1_6
+#define SYS_ID_MMFR2_EL1 sys_reg(3, 0, 0, 1, 6)
+#define SYS_ID_MMFR2_EL1_Op0 3
+#define SYS_ID_MMFR2_EL1_Op1 0
+#define SYS_ID_MMFR2_EL1_CRn 0
+#define SYS_ID_MMFR2_EL1_CRm 1
+#define SYS_ID_MMFR2_EL1_Op2 6
+
+#define ID_MMFR2_EL1_HWAccFlg GENMASK(31, 28)
+#define ID_MMFR2_EL1_HWAccFlg_MASK GENMASK(31, 28)
+#define ID_MMFR2_EL1_HWAccFlg_SHIFT 28
+#define ID_MMFR2_EL1_HWAccFlg_WIDTH 4
+#define ID_MMFR2_EL1_HWAccFlg_NI UL(0b0000)
+#define ID_MMFR2_EL1_HWAccFlg_IMP UL(0b0001)
+
+#define ID_MMFR2_EL1_WFIStall GENMASK(27, 24)
+#define ID_MMFR2_EL1_WFIStall_MASK GENMASK(27, 24)
+#define ID_MMFR2_EL1_WFIStall_SHIFT 24
+#define ID_MMFR2_EL1_WFIStall_WIDTH 4
+#define ID_MMFR2_EL1_WFIStall_NI UL(0b0000)
+#define ID_MMFR2_EL1_WFIStall_IMP UL(0b0001)
+
+#define ID_MMFR2_EL1_MemBarr GENMASK(23, 20)
+#define ID_MMFR2_EL1_MemBarr_MASK GENMASK(23, 20)
+#define ID_MMFR2_EL1_MemBarr_SHIFT 20
+#define ID_MMFR2_EL1_MemBarr_WIDTH 4
+#define ID_MMFR2_EL1_MemBarr_NI UL(0b0000)
+#define ID_MMFR2_EL1_MemBarr_DSB_ONLY UL(0b0001)
+#define ID_MMFR2_EL1_MemBarr_IMP UL(0b0010)
+
+#define ID_MMFR2_EL1_UniTLB GENMASK(19, 16)
+#define ID_MMFR2_EL1_UniTLB_MASK GENMASK(19, 16)
+#define ID_MMFR2_EL1_UniTLB_SHIFT 16
+#define ID_MMFR2_EL1_UniTLB_WIDTH 4
+#define ID_MMFR2_EL1_UniTLB_NI UL(0b0000)
+#define ID_MMFR2_EL1_UniTLB_BY_VA UL(0b0001)
+#define ID_MMFR2_EL1_UniTLB_BY_MATCH_ASID UL(0b0010)
+#define ID_MMFR2_EL1_UniTLB_BY_ALL_ASID UL(0b0011)
+#define ID_MMFR2_EL1_UniTLB_OTHER_TLBS UL(0b0100)
+#define ID_MMFR2_EL1_UniTLB_BROADCAST UL(0b0101)
+#define ID_MMFR2_EL1_UniTLB_BY_IPA UL(0b0110)
+
+#define ID_MMFR2_EL1_HvdTLB GENMASK(15, 12)
+#define ID_MMFR2_EL1_HvdTLB_MASK GENMASK(15, 12)
+#define ID_MMFR2_EL1_HvdTLB_SHIFT 12
+#define ID_MMFR2_EL1_HvdTLB_WIDTH 4
+#define ID_MMFR2_EL1_HvdTLB_NI UL(0b0000)
+
+#define ID_MMFR2_EL1_L1HvdRng GENMASK(11, 8)
+#define ID_MMFR2_EL1_L1HvdRng_MASK GENMASK(11, 8)
+#define ID_MMFR2_EL1_L1HvdRng_SHIFT 8
+#define ID_MMFR2_EL1_L1HvdRng_WIDTH 4
+#define ID_MMFR2_EL1_L1HvdRng_NI UL(0b0000)
+#define ID_MMFR2_EL1_L1HvdRng_IMP UL(0b0001)
+
+#define ID_MMFR2_EL1_L1HvdBG GENMASK(7, 4)
+#define ID_MMFR2_EL1_L1HvdBG_MASK GENMASK(7, 4)
+#define ID_MMFR2_EL1_L1HvdBG_SHIFT 4
+#define ID_MMFR2_EL1_L1HvdBG_WIDTH 4
+#define ID_MMFR2_EL1_L1HvdBG_NI UL(0b0000)
+#define ID_MMFR2_EL1_L1HvdBG_IMP UL(0b0001)
+
+#define ID_MMFR2_EL1_L1HvdFG GENMASK(3, 0)
+#define ID_MMFR2_EL1_L1HvdFG_MASK GENMASK(3, 0)
+#define ID_MMFR2_EL1_L1HvdFG_SHIFT 0
+#define ID_MMFR2_EL1_L1HvdFG_WIDTH 4
+#define ID_MMFR2_EL1_L1HvdFG_NI UL(0b0000)
+#define ID_MMFR2_EL1_L1HvdFG_IMP UL(0b0001)
+
+#define ID_MMFR2_EL1_RES0 (UL(0) | GENMASK_ULL(63, 32))
+#define ID_MMFR2_EL1_RES1 (UL(0))
+#define ID_MMFR2_EL1_UNKN (UL(0))
+
+#define REG_ID_MMFR3_EL1 S3_0_C0_C1_7
+#define SYS_ID_MMFR3_EL1 sys_reg(3, 0, 0, 1, 7)
+#define SYS_ID_MMFR3_EL1_Op0 3
+#define SYS_ID_MMFR3_EL1_Op1 0
+#define SYS_ID_MMFR3_EL1_CRn 0
+#define SYS_ID_MMFR3_EL1_CRm 1
+#define SYS_ID_MMFR3_EL1_Op2 7
+
+#define ID_MMFR3_EL1_Supersec GENMASK(31, 28)
+#define ID_MMFR3_EL1_Supersec_MASK GENMASK(31, 28)
+#define ID_MMFR3_EL1_Supersec_SHIFT 28
+#define ID_MMFR3_EL1_Supersec_WIDTH 4
+#define ID_MMFR3_EL1_Supersec_IMP UL(0b0000)
+#define ID_MMFR3_EL1_Supersec_NI UL(0b1111)
+
+#define ID_MMFR3_EL1_CMemSz GENMASK(27, 24)
+#define ID_MMFR3_EL1_CMemSz_MASK GENMASK(27, 24)
+#define ID_MMFR3_EL1_CMemSz_SHIFT 24
+#define ID_MMFR3_EL1_CMemSz_WIDTH 4
+#define ID_MMFR3_EL1_CMemSz_4GB UL(0b0000)
+#define ID_MMFR3_EL1_CMemSz_64GB UL(0b0001)
+#define ID_MMFR3_EL1_CMemSz_1TB UL(0b0010)
+
+#define ID_MMFR3_EL1_CohWalk GENMASK(23, 20)
+#define ID_MMFR3_EL1_CohWalk_MASK GENMASK(23, 20)
+#define ID_MMFR3_EL1_CohWalk_SHIFT 20
+#define ID_MMFR3_EL1_CohWalk_WIDTH 4
+#define ID_MMFR3_EL1_CohWalk_NI UL(0b0000)
+#define ID_MMFR3_EL1_CohWalk_IMP UL(0b0001)
+
+#define ID_MMFR3_EL1_PAN GENMASK(19, 16)
+#define ID_MMFR3_EL1_PAN_MASK GENMASK(19, 16)
+#define ID_MMFR3_EL1_PAN_SHIFT 16
+#define ID_MMFR3_EL1_PAN_WIDTH 4
+#define ID_MMFR3_EL1_PAN_NI UL(0b0000)
+#define ID_MMFR3_EL1_PAN_PAN UL(0b0001)
+#define ID_MMFR3_EL1_PAN_PAN2 UL(0b0010)
+
+#define ID_MMFR3_EL1_MaintBcst GENMASK(15, 12)
+#define ID_MMFR3_EL1_MaintBcst_MASK GENMASK(15, 12)
+#define ID_MMFR3_EL1_MaintBcst_SHIFT 12
+#define ID_MMFR3_EL1_MaintBcst_WIDTH 4
+#define ID_MMFR3_EL1_MaintBcst_NI UL(0b0000)
+#define ID_MMFR3_EL1_MaintBcst_NO_TLB UL(0b0001)
+#define ID_MMFR3_EL1_MaintBcst_ALL UL(0b0010)
+
+#define ID_MMFR3_EL1_BPMaint GENMASK(11, 8)
+#define ID_MMFR3_EL1_BPMaint_MASK GENMASK(11, 8)
+#define ID_MMFR3_EL1_BPMaint_SHIFT 8
+#define ID_MMFR3_EL1_BPMaint_WIDTH 4
+#define ID_MMFR3_EL1_BPMaint_NI UL(0b0000)
+#define ID_MMFR3_EL1_BPMaint_ALL UL(0b0001)
+#define ID_MMFR3_EL1_BPMaint_BY_VA UL(0b0010)
+
+#define ID_MMFR3_EL1_CMaintSW GENMASK(7, 4)
+#define ID_MMFR3_EL1_CMaintSW_MASK GENMASK(7, 4)
+#define ID_MMFR3_EL1_CMaintSW_SHIFT 4
+#define ID_MMFR3_EL1_CMaintSW_WIDTH 4
+#define ID_MMFR3_EL1_CMaintSW_NI UL(0b0000)
+#define ID_MMFR3_EL1_CMaintSW_IMP UL(0b0001)
+
+#define ID_MMFR3_EL1_CMaintVA GENMASK(3, 0)
+#define ID_MMFR3_EL1_CMaintVA_MASK GENMASK(3, 0)
+#define ID_MMFR3_EL1_CMaintVA_SHIFT 0
+#define ID_MMFR3_EL1_CMaintVA_WIDTH 4
+#define ID_MMFR3_EL1_CMaintVA_NI UL(0b0000)
+#define ID_MMFR3_EL1_CMaintVA_IMP UL(0b0001)
+
+#define ID_MMFR3_EL1_RES0 (UL(0) | GENMASK_ULL(63, 32))
+#define ID_MMFR3_EL1_RES1 (UL(0))
+#define ID_MMFR3_EL1_UNKN (UL(0))
+
+#define REG_ID_ISAR0_EL1 S3_0_C0_C2_0
+#define SYS_ID_ISAR0_EL1 sys_reg(3, 0, 0, 2, 0)
+#define SYS_ID_ISAR0_EL1_Op0 3
+#define SYS_ID_ISAR0_EL1_Op1 0
+#define SYS_ID_ISAR0_EL1_CRn 0
+#define SYS_ID_ISAR0_EL1_CRm 2
+#define SYS_ID_ISAR0_EL1_Op2 0
+
+#define ID_ISAR0_EL1_Divide GENMASK(27, 24)
+#define ID_ISAR0_EL1_Divide_MASK GENMASK(27, 24)
+#define ID_ISAR0_EL1_Divide_SHIFT 24
+#define ID_ISAR0_EL1_Divide_WIDTH 4
+#define ID_ISAR0_EL1_Divide_NI UL(0b0000)
+#define ID_ISAR0_EL1_Divide_xDIV_T32 UL(0b0001)
+#define ID_ISAR0_EL1_Divide_xDIV_A32 UL(0b0010)
+
+#define ID_ISAR0_EL1_Debug GENMASK(23, 20)
+#define ID_ISAR0_EL1_Debug_MASK GENMASK(23, 20)
+#define ID_ISAR0_EL1_Debug_SHIFT 20
+#define ID_ISAR0_EL1_Debug_WIDTH 4
+#define ID_ISAR0_EL1_Debug_SIGNED false
+#define ID_ISAR0_EL1_Debug_NI UL(0b0000)
+#define ID_ISAR0_EL1_Debug_IMP UL(0b0001)
+
+#define ID_ISAR0_EL1_Coproc GENMASK(19, 16)
+#define ID_ISAR0_EL1_Coproc_MASK GENMASK(19, 16)
+#define ID_ISAR0_EL1_Coproc_SHIFT 16
+#define ID_ISAR0_EL1_Coproc_WIDTH 4
+#define ID_ISAR0_EL1_Coproc_NI UL(0b0000)
+#define ID_ISAR0_EL1_Coproc_MRC UL(0b0001)
+#define ID_ISAR0_EL1_Coproc_MRC2 UL(0b0010)
+#define ID_ISAR0_EL1_Coproc_MRRC UL(0b0011)
+#define ID_ISAR0_EL1_Coproc_MRRC2 UL(0b0100)
+
+#define ID_ISAR0_EL1_CmpBranch GENMASK(15, 12)
+#define ID_ISAR0_EL1_CmpBranch_MASK GENMASK(15, 12)
+#define ID_ISAR0_EL1_CmpBranch_SHIFT 12
+#define ID_ISAR0_EL1_CmpBranch_WIDTH 4
+#define ID_ISAR0_EL1_CmpBranch_SIGNED false
+#define ID_ISAR0_EL1_CmpBranch_NI UL(0b0000)
+#define ID_ISAR0_EL1_CmpBranch_IMP UL(0b0001)
+
+#define ID_ISAR0_EL1_BitField GENMASK(11, 8)
+#define ID_ISAR0_EL1_BitField_MASK GENMASK(11, 8)
+#define ID_ISAR0_EL1_BitField_SHIFT 8
+#define ID_ISAR0_EL1_BitField_WIDTH 4
+#define ID_ISAR0_EL1_BitField_SIGNED false
+#define ID_ISAR0_EL1_BitField_NI UL(0b0000)
+#define ID_ISAR0_EL1_BitField_IMP UL(0b0001)
+
+#define ID_ISAR0_EL1_BitCount GENMASK(7, 4)
+#define ID_ISAR0_EL1_BitCount_MASK GENMASK(7, 4)
+#define ID_ISAR0_EL1_BitCount_SHIFT 4
+#define ID_ISAR0_EL1_BitCount_WIDTH 4
+#define ID_ISAR0_EL1_BitCount_SIGNED false
+#define ID_ISAR0_EL1_BitCount_NI UL(0b0000)
+#define ID_ISAR0_EL1_BitCount_IMP UL(0b0001)
+
+#define ID_ISAR0_EL1_Swap GENMASK(3, 0)
+#define ID_ISAR0_EL1_Swap_MASK GENMASK(3, 0)
+#define ID_ISAR0_EL1_Swap_SHIFT 0
+#define ID_ISAR0_EL1_Swap_WIDTH 4
+#define ID_ISAR0_EL1_Swap_SIGNED false
+#define ID_ISAR0_EL1_Swap_NI UL(0b0000)
+#define ID_ISAR0_EL1_Swap_IMP UL(0b0001)
+
+#define ID_ISAR0_EL1_RES0 (UL(0) | GENMASK_ULL(63, 28))
+#define ID_ISAR0_EL1_RES1 (UL(0))
+#define ID_ISAR0_EL1_UNKN (UL(0))
+
+#define REG_ID_ISAR1_EL1 S3_0_C0_C2_1
+#define SYS_ID_ISAR1_EL1 sys_reg(3, 0, 0, 2, 1)
+#define SYS_ID_ISAR1_EL1_Op0 3
+#define SYS_ID_ISAR1_EL1_Op1 0
+#define SYS_ID_ISAR1_EL1_CRn 0
+#define SYS_ID_ISAR1_EL1_CRm 2
+#define SYS_ID_ISAR1_EL1_Op2 1
+
+#define ID_ISAR1_EL1_Jazelle GENMASK(31, 28)
+#define ID_ISAR1_EL1_Jazelle_MASK GENMASK(31, 28)
+#define ID_ISAR1_EL1_Jazelle_SHIFT 28
+#define ID_ISAR1_EL1_Jazelle_WIDTH 4
+#define ID_ISAR1_EL1_Jazelle_NI UL(0b0000)
+#define ID_ISAR1_EL1_Jazelle_IMP UL(0b0001)
+
+#define ID_ISAR1_EL1_Interwork GENMASK(27, 24)
+#define ID_ISAR1_EL1_Interwork_MASK GENMASK(27, 24)
+#define ID_ISAR1_EL1_Interwork_SHIFT 24
+#define ID_ISAR1_EL1_Interwork_WIDTH 4
+#define ID_ISAR1_EL1_Interwork_NI UL(0b0000)
+#define ID_ISAR1_EL1_Interwork_BX UL(0b0001)
+#define ID_ISAR1_EL1_Interwork_BLX UL(0b0010)
+#define ID_ISAR1_EL1_Interwork_A32_BX UL(0b0011)
+
+#define ID_ISAR1_EL1_Immediate GENMASK(23, 20)
+#define ID_ISAR1_EL1_Immediate_MASK GENMASK(23, 20)
+#define ID_ISAR1_EL1_Immediate_SHIFT 20
+#define ID_ISAR1_EL1_Immediate_WIDTH 4
+#define ID_ISAR1_EL1_Immediate_NI UL(0b0000)
+#define ID_ISAR1_EL1_Immediate_IMP UL(0b0001)
+
+#define ID_ISAR1_EL1_IfThen GENMASK(19, 16)
+#define ID_ISAR1_EL1_IfThen_MASK GENMASK(19, 16)
+#define ID_ISAR1_EL1_IfThen_SHIFT 16
+#define ID_ISAR1_EL1_IfThen_WIDTH 4
+#define ID_ISAR1_EL1_IfThen_NI UL(0b0000)
+#define ID_ISAR1_EL1_IfThen_IMP UL(0b0001)
+
+#define ID_ISAR1_EL1_Extend GENMASK(15, 12)
+#define ID_ISAR1_EL1_Extend_MASK GENMASK(15, 12)
+#define ID_ISAR1_EL1_Extend_SHIFT 12
+#define ID_ISAR1_EL1_Extend_WIDTH 4
+#define ID_ISAR1_EL1_Extend_NI UL(0b0000)
+#define ID_ISAR1_EL1_Extend_SXTB UL(0b0001)
+#define ID_ISAR1_EL1_Extend_SXTB16 UL(0b0010)
+
+#define ID_ISAR1_EL1_Except_AR GENMASK(11, 8)
+#define ID_ISAR1_EL1_Except_AR_MASK GENMASK(11, 8)
+#define ID_ISAR1_EL1_Except_AR_SHIFT 8
+#define ID_ISAR1_EL1_Except_AR_WIDTH 4
+#define ID_ISAR1_EL1_Except_AR_NI UL(0b0000)
+#define ID_ISAR1_EL1_Except_AR_IMP UL(0b0001)
+
+#define ID_ISAR1_EL1_Except GENMASK(7, 4)
+#define ID_ISAR1_EL1_Except_MASK GENMASK(7, 4)
+#define ID_ISAR1_EL1_Except_SHIFT 4
+#define ID_ISAR1_EL1_Except_WIDTH 4
+#define ID_ISAR1_EL1_Except_NI UL(0b0000)
+#define ID_ISAR1_EL1_Except_IMP UL(0b0001)
+
+#define ID_ISAR1_EL1_Endian GENMASK(3, 0)
+#define ID_ISAR1_EL1_Endian_MASK GENMASK(3, 0)
+#define ID_ISAR1_EL1_Endian_SHIFT 0
+#define ID_ISAR1_EL1_Endian_WIDTH 4
+#define ID_ISAR1_EL1_Endian_NI UL(0b0000)
+#define ID_ISAR1_EL1_Endian_IMP UL(0b0001)
+
+#define ID_ISAR1_EL1_RES0 (UL(0) | GENMASK_ULL(63, 32))
+#define ID_ISAR1_EL1_RES1 (UL(0))
+#define ID_ISAR1_EL1_UNKN (UL(0))
+
+#define REG_ID_ISAR2_EL1 S3_0_C0_C2_2
+#define SYS_ID_ISAR2_EL1 sys_reg(3, 0, 0, 2, 2)
+#define SYS_ID_ISAR2_EL1_Op0 3
+#define SYS_ID_ISAR2_EL1_Op1 0
+#define SYS_ID_ISAR2_EL1_CRn 0
+#define SYS_ID_ISAR2_EL1_CRm 2
+#define SYS_ID_ISAR2_EL1_Op2 2
+
+#define ID_ISAR2_EL1_Reversal GENMASK(31, 28)
+#define ID_ISAR2_EL1_Reversal_MASK GENMASK(31, 28)
+#define ID_ISAR2_EL1_Reversal_SHIFT 28
+#define ID_ISAR2_EL1_Reversal_WIDTH 4
+#define ID_ISAR2_EL1_Reversal_NI UL(0b0000)
+#define ID_ISAR2_EL1_Reversal_REV UL(0b0001)
+#define ID_ISAR2_EL1_Reversal_RBIT UL(0b0010)
+
+#define ID_ISAR2_EL1_PSR_AR GENMASK(27, 24)
+#define ID_ISAR2_EL1_PSR_AR_MASK GENMASK(27, 24)
+#define ID_ISAR2_EL1_PSR_AR_SHIFT 24
+#define ID_ISAR2_EL1_PSR_AR_WIDTH 4
+#define ID_ISAR2_EL1_PSR_AR_NI UL(0b0000)
+#define ID_ISAR2_EL1_PSR_AR_IMP UL(0b0001)
+
+#define ID_ISAR2_EL1_MultU GENMASK(23, 20)
+#define ID_ISAR2_EL1_MultU_MASK GENMASK(23, 20)
+#define ID_ISAR2_EL1_MultU_SHIFT 20
+#define ID_ISAR2_EL1_MultU_WIDTH 4
+#define ID_ISAR2_EL1_MultU_NI UL(0b0000)
+#define ID_ISAR2_EL1_MultU_UMULL UL(0b0001)
+#define ID_ISAR2_EL1_MultU_UMAAL UL(0b0010)
+
+#define ID_ISAR2_EL1_MultS GENMASK(19, 16)
+#define ID_ISAR2_EL1_MultS_MASK GENMASK(19, 16)
+#define ID_ISAR2_EL1_MultS_SHIFT 16
+#define ID_ISAR2_EL1_MultS_WIDTH 4
+#define ID_ISAR2_EL1_MultS_NI UL(0b0000)
+#define ID_ISAR2_EL1_MultS_SMULL UL(0b0001)
+#define ID_ISAR2_EL1_MultS_SMLABB UL(0b0010)
+#define ID_ISAR2_EL1_MultS_SMLAD UL(0b0011)
+
+#define ID_ISAR2_EL1_Mult GENMASK(15, 12)
+#define ID_ISAR2_EL1_Mult_MASK GENMASK(15, 12)
+#define ID_ISAR2_EL1_Mult_SHIFT 12
+#define ID_ISAR2_EL1_Mult_WIDTH 4
+#define ID_ISAR2_EL1_Mult_NI UL(0b0000)
+#define ID_ISAR2_EL1_Mult_MLA UL(0b0001)
+#define ID_ISAR2_EL1_Mult_MLS UL(0b0010)
+
+#define ID_ISAR2_EL1_MultiAccessInt GENMASK(11, 8)
+#define ID_ISAR2_EL1_MultiAccessInt_MASK GENMASK(11, 8)
+#define ID_ISAR2_EL1_MultiAccessInt_SHIFT 8
+#define ID_ISAR2_EL1_MultiAccessInt_WIDTH 4
+#define ID_ISAR2_EL1_MultiAccessInt_NI UL(0b0000)
+#define ID_ISAR2_EL1_MultiAccessInt_RESTARTABLE UL(0b0001)
+#define ID_ISAR2_EL1_MultiAccessInt_CONTINUABLE UL(0b0010)
+
+#define ID_ISAR2_EL1_MemHint GENMASK(7, 4)
+#define ID_ISAR2_EL1_MemHint_MASK GENMASK(7, 4)
+#define ID_ISAR2_EL1_MemHint_SHIFT 4
+#define ID_ISAR2_EL1_MemHint_WIDTH 4
+#define ID_ISAR2_EL1_MemHint_NI UL(0b0000)
+#define ID_ISAR2_EL1_MemHint_PLD UL(0b0001)
+#define ID_ISAR2_EL1_MemHint_PLD2 UL(0b0010)
+#define ID_ISAR2_EL1_MemHint_PLI UL(0b0011)
+#define ID_ISAR2_EL1_MemHint_PLDW UL(0b0100)
+
+#define ID_ISAR2_EL1_LoadStore GENMASK(3, 0)
+#define ID_ISAR2_EL1_LoadStore_MASK GENMASK(3, 0)
+#define ID_ISAR2_EL1_LoadStore_SHIFT 0
+#define ID_ISAR2_EL1_LoadStore_WIDTH 4
+#define ID_ISAR2_EL1_LoadStore_NI UL(0b0000)
+#define ID_ISAR2_EL1_LoadStore_DOUBLE UL(0b0001)
+#define ID_ISAR2_EL1_LoadStore_ACQUIRE UL(0b0010)
+
+#define ID_ISAR2_EL1_RES0 (UL(0) | GENMASK_ULL(63, 32))
+#define ID_ISAR2_EL1_RES1 (UL(0))
+#define ID_ISAR2_EL1_UNKN (UL(0))
+
+#define REG_ID_ISAR3_EL1 S3_0_C0_C2_3
+#define SYS_ID_ISAR3_EL1 sys_reg(3, 0, 0, 2, 3)
+#define SYS_ID_ISAR3_EL1_Op0 3
+#define SYS_ID_ISAR3_EL1_Op1 0
+#define SYS_ID_ISAR3_EL1_CRn 0
+#define SYS_ID_ISAR3_EL1_CRm 2
+#define SYS_ID_ISAR3_EL1_Op2 3
+
+#define ID_ISAR3_EL1_T32EE GENMASK(31, 28)
+#define ID_ISAR3_EL1_T32EE_MASK GENMASK(31, 28)
+#define ID_ISAR3_EL1_T32EE_SHIFT 28
+#define ID_ISAR3_EL1_T32EE_WIDTH 4
+#define ID_ISAR3_EL1_T32EE_NI UL(0b0000)
+#define ID_ISAR3_EL1_T32EE_IMP UL(0b0001)
+
+#define ID_ISAR3_EL1_TrueNOP GENMASK(27, 24)
+#define ID_ISAR3_EL1_TrueNOP_MASK GENMASK(27, 24)
+#define ID_ISAR3_EL1_TrueNOP_SHIFT 24
+#define ID_ISAR3_EL1_TrueNOP_WIDTH 4
+#define ID_ISAR3_EL1_TrueNOP_NI UL(0b0000)
+#define ID_ISAR3_EL1_TrueNOP_IMP UL(0b0001)
+
+#define ID_ISAR3_EL1_T32Copy GENMASK(23, 20)
+#define ID_ISAR3_EL1_T32Copy_MASK GENMASK(23, 20)
+#define ID_ISAR3_EL1_T32Copy_SHIFT 20
+#define ID_ISAR3_EL1_T32Copy_WIDTH 4
+#define ID_ISAR3_EL1_T32Copy_NI UL(0b0000)
+#define ID_ISAR3_EL1_T32Copy_IMP UL(0b0001)
+
+#define ID_ISAR3_EL1_TabBranch GENMASK(19, 16)
+#define ID_ISAR3_EL1_TabBranch_MASK GENMASK(19, 16)
+#define ID_ISAR3_EL1_TabBranch_SHIFT 16
+#define ID_ISAR3_EL1_TabBranch_WIDTH 4
+#define ID_ISAR3_EL1_TabBranch_NI UL(0b0000)
+#define ID_ISAR3_EL1_TabBranch_IMP UL(0b0001)
+
+#define ID_ISAR3_EL1_SynchPrim GENMASK(15, 12)
+#define ID_ISAR3_EL1_SynchPrim_MASK GENMASK(15, 12)
+#define ID_ISAR3_EL1_SynchPrim_SHIFT 12
+#define ID_ISAR3_EL1_SynchPrim_WIDTH 4
+#define ID_ISAR3_EL1_SynchPrim_NI UL(0b0000)
+#define ID_ISAR3_EL1_SynchPrim_EXCLUSIVE UL(0b0001)
+#define ID_ISAR3_EL1_SynchPrim_DOUBLE UL(0b0010)
+
+#define ID_ISAR3_EL1_SVC GENMASK(11, 8)
+#define ID_ISAR3_EL1_SVC_MASK GENMASK(11, 8)
+#define ID_ISAR3_EL1_SVC_SHIFT 8
+#define ID_ISAR3_EL1_SVC_WIDTH 4
+#define ID_ISAR3_EL1_SVC_NI UL(0b0000)
+#define ID_ISAR3_EL1_SVC_IMP UL(0b0001)
+
+#define ID_ISAR3_EL1_SIMD GENMASK(7, 4)
+#define ID_ISAR3_EL1_SIMD_MASK GENMASK(7, 4)
+#define ID_ISAR3_EL1_SIMD_SHIFT 4
+#define ID_ISAR3_EL1_SIMD_WIDTH 4
+#define ID_ISAR3_EL1_SIMD_NI UL(0b0000)
+#define ID_ISAR3_EL1_SIMD_SSAT UL(0b0001)
+#define ID_ISAR3_EL1_SIMD_PKHBT UL(0b0011)
+
+#define ID_ISAR3_EL1_Saturate GENMASK(3, 0)
+#define ID_ISAR3_EL1_Saturate_MASK GENMASK(3, 0)
+#define ID_ISAR3_EL1_Saturate_SHIFT 0
+#define ID_ISAR3_EL1_Saturate_WIDTH 4
+#define ID_ISAR3_EL1_Saturate_NI UL(0b0000)
+#define ID_ISAR3_EL1_Saturate_IMP UL(0b0001)
+
+#define ID_ISAR3_EL1_RES0 (UL(0) | GENMASK_ULL(63, 32))
+#define ID_ISAR3_EL1_RES1 (UL(0))
+#define ID_ISAR3_EL1_UNKN (UL(0))
+
+#define REG_ID_ISAR4_EL1 S3_0_C0_C2_4
+#define SYS_ID_ISAR4_EL1 sys_reg(3, 0, 0, 2, 4)
+#define SYS_ID_ISAR4_EL1_Op0 3
+#define SYS_ID_ISAR4_EL1_Op1 0
+#define SYS_ID_ISAR4_EL1_CRn 0
+#define SYS_ID_ISAR4_EL1_CRm 2
+#define SYS_ID_ISAR4_EL1_Op2 4
+
+#define ID_ISAR4_EL1_SWP_frac GENMASK(31, 28)
+#define ID_ISAR4_EL1_SWP_frac_MASK GENMASK(31, 28)
+#define ID_ISAR4_EL1_SWP_frac_SHIFT 28
+#define ID_ISAR4_EL1_SWP_frac_WIDTH 4
+#define ID_ISAR4_EL1_SWP_frac_NI UL(0b0000)
+#define ID_ISAR4_EL1_SWP_frac_IMP UL(0b0001)
+
+#define ID_ISAR4_EL1_PSR_M GENMASK(27, 24)
+#define ID_ISAR4_EL1_PSR_M_MASK GENMASK(27, 24)
+#define ID_ISAR4_EL1_PSR_M_SHIFT 24
+#define ID_ISAR4_EL1_PSR_M_WIDTH 4
+#define ID_ISAR4_EL1_PSR_M_NI UL(0b0000)
+#define ID_ISAR4_EL1_PSR_M_IMP UL(0b0001)
+
+#define ID_ISAR4_EL1_SynchPrim_frac GENMASK(23, 20)
+#define ID_ISAR4_EL1_SynchPrim_frac_MASK GENMASK(23, 20)
+#define ID_ISAR4_EL1_SynchPrim_frac_SHIFT 20
+#define ID_ISAR4_EL1_SynchPrim_frac_WIDTH 4
+#define ID_ISAR4_EL1_SynchPrim_frac_NI UL(0b0000)
+#define ID_ISAR4_EL1_SynchPrim_frac_IMP UL(0b0011)
+
+#define ID_ISAR4_EL1_Barrier GENMASK(19, 16)
+#define ID_ISAR4_EL1_Barrier_MASK GENMASK(19, 16)
+#define ID_ISAR4_EL1_Barrier_SHIFT 16
+#define ID_ISAR4_EL1_Barrier_WIDTH 4
+#define ID_ISAR4_EL1_Barrier_NI UL(0b0000)
+#define ID_ISAR4_EL1_Barrier_IMP UL(0b0001)
+
+#define ID_ISAR4_EL1_SMC GENMASK(15, 12)
+#define ID_ISAR4_EL1_SMC_MASK GENMASK(15, 12)
+#define ID_ISAR4_EL1_SMC_SHIFT 12
+#define ID_ISAR4_EL1_SMC_WIDTH 4
+#define ID_ISAR4_EL1_SMC_NI UL(0b0000)
+#define ID_ISAR4_EL1_SMC_IMP UL(0b0001)
+
+#define ID_ISAR4_EL1_Writeback GENMASK(11, 8)
+#define ID_ISAR4_EL1_Writeback_MASK GENMASK(11, 8)
+#define ID_ISAR4_EL1_Writeback_SHIFT 8
+#define ID_ISAR4_EL1_Writeback_WIDTH 4
+#define ID_ISAR4_EL1_Writeback_NI UL(0b0000)
+#define ID_ISAR4_EL1_Writeback_IMP UL(0b0001)
+
+#define ID_ISAR4_EL1_WithShifts GENMASK(7, 4)
+#define ID_ISAR4_EL1_WithShifts_MASK GENMASK(7, 4)
+#define ID_ISAR4_EL1_WithShifts_SHIFT 4
+#define ID_ISAR4_EL1_WithShifts_WIDTH 4
+#define ID_ISAR4_EL1_WithShifts_NI UL(0b0000)
+#define ID_ISAR4_EL1_WithShifts_LSL3 UL(0b0001)
+#define ID_ISAR4_EL1_WithShifts_LS UL(0b0011)
+#define ID_ISAR4_EL1_WithShifts_REG UL(0b0100)
+
+#define ID_ISAR4_EL1_Unpriv GENMASK(3, 0)
+#define ID_ISAR4_EL1_Unpriv_MASK GENMASK(3, 0)
+#define ID_ISAR4_EL1_Unpriv_SHIFT 0
+#define ID_ISAR4_EL1_Unpriv_WIDTH 4
+#define ID_ISAR4_EL1_Unpriv_NI UL(0b0000)
+#define ID_ISAR4_EL1_Unpriv_REG_BYTE UL(0b0001)
+#define ID_ISAR4_EL1_Unpriv_SIGNED_HALFWORD UL(0b0010)
+
+#define ID_ISAR4_EL1_RES0 (UL(0) | GENMASK_ULL(63, 32))
+#define ID_ISAR4_EL1_RES1 (UL(0))
+#define ID_ISAR4_EL1_UNKN (UL(0))
+
+#define REG_ID_ISAR5_EL1 S3_0_C0_C2_5
+#define SYS_ID_ISAR5_EL1 sys_reg(3, 0, 0, 2, 5)
+#define SYS_ID_ISAR5_EL1_Op0 3
+#define SYS_ID_ISAR5_EL1_Op1 0
+#define SYS_ID_ISAR5_EL1_CRn 0
+#define SYS_ID_ISAR5_EL1_CRm 2
+#define SYS_ID_ISAR5_EL1_Op2 5
+
+#define ID_ISAR5_EL1_VCMA GENMASK(31, 28)
+#define ID_ISAR5_EL1_VCMA_MASK GENMASK(31, 28)
+#define ID_ISAR5_EL1_VCMA_SHIFT 28
+#define ID_ISAR5_EL1_VCMA_WIDTH 4
+#define ID_ISAR5_EL1_VCMA_SIGNED false
+#define ID_ISAR5_EL1_VCMA_NI UL(0b0000)
+#define ID_ISAR5_EL1_VCMA_IMP UL(0b0001)
+
+#define ID_ISAR5_EL1_RDM GENMASK(27, 24)
+#define ID_ISAR5_EL1_RDM_MASK GENMASK(27, 24)
+#define ID_ISAR5_EL1_RDM_SHIFT 24
+#define ID_ISAR5_EL1_RDM_WIDTH 4
+#define ID_ISAR5_EL1_RDM_SIGNED false
+#define ID_ISAR5_EL1_RDM_NI UL(0b0000)
+#define ID_ISAR5_EL1_RDM_IMP UL(0b0001)
+
+#define ID_ISAR5_EL1_CRC32 GENMASK(19, 16)
+#define ID_ISAR5_EL1_CRC32_MASK GENMASK(19, 16)
+#define ID_ISAR5_EL1_CRC32_SHIFT 16
+#define ID_ISAR5_EL1_CRC32_WIDTH 4
+#define ID_ISAR5_EL1_CRC32_SIGNED false
+#define ID_ISAR5_EL1_CRC32_NI UL(0b0000)
+#define ID_ISAR5_EL1_CRC32_IMP UL(0b0001)
+
+#define ID_ISAR5_EL1_SHA2 GENMASK(15, 12)
+#define ID_ISAR5_EL1_SHA2_MASK GENMASK(15, 12)
+#define ID_ISAR5_EL1_SHA2_SHIFT 12
+#define ID_ISAR5_EL1_SHA2_WIDTH 4
+#define ID_ISAR5_EL1_SHA2_SIGNED false
+#define ID_ISAR5_EL1_SHA2_NI UL(0b0000)
+#define ID_ISAR5_EL1_SHA2_IMP UL(0b0001)
+
+#define ID_ISAR5_EL1_SHA1 GENMASK(11, 8)
+#define ID_ISAR5_EL1_SHA1_MASK GENMASK(11, 8)
+#define ID_ISAR5_EL1_SHA1_SHIFT 8
+#define ID_ISAR5_EL1_SHA1_WIDTH 4
+#define ID_ISAR5_EL1_SHA1_SIGNED false
+#define ID_ISAR5_EL1_SHA1_NI UL(0b0000)
+#define ID_ISAR5_EL1_SHA1_IMP UL(0b0001)
+
+#define ID_ISAR5_EL1_AES GENMASK(7, 4)
+#define ID_ISAR5_EL1_AES_MASK GENMASK(7, 4)
+#define ID_ISAR5_EL1_AES_SHIFT 4
+#define ID_ISAR5_EL1_AES_WIDTH 4
+#define ID_ISAR5_EL1_AES_SIGNED false
+#define ID_ISAR5_EL1_AES_NI UL(0b0000)
+#define ID_ISAR5_EL1_AES_IMP UL(0b0001)
+#define ID_ISAR5_EL1_AES_VMULL UL(0b0010)
+
+#define ID_ISAR5_EL1_SEVL GENMASK(3, 0)
+#define ID_ISAR5_EL1_SEVL_MASK GENMASK(3, 0)
+#define ID_ISAR5_EL1_SEVL_SHIFT 0
+#define ID_ISAR5_EL1_SEVL_WIDTH 4
+#define ID_ISAR5_EL1_SEVL_SIGNED false
+#define ID_ISAR5_EL1_SEVL_NI UL(0b0000)
+#define ID_ISAR5_EL1_SEVL_IMP UL(0b0001)
+
+#define ID_ISAR5_EL1_RES0 (UL(0) | GENMASK_ULL(63, 32) | GENMASK_ULL(23, 20))
+#define ID_ISAR5_EL1_RES1 (UL(0))
+#define ID_ISAR5_EL1_UNKN (UL(0))
+
+#define REG_ID_ISAR6_EL1 S3_0_C0_C2_7
+#define SYS_ID_ISAR6_EL1 sys_reg(3, 0, 0, 2, 7)
+#define SYS_ID_ISAR6_EL1_Op0 3
+#define SYS_ID_ISAR6_EL1_Op1 0
+#define SYS_ID_ISAR6_EL1_CRn 0
+#define SYS_ID_ISAR6_EL1_CRm 2
+#define SYS_ID_ISAR6_EL1_Op2 7
+
+#define ID_ISAR6_EL1_I8MM GENMASK(27, 24)
+#define ID_ISAR6_EL1_I8MM_MASK GENMASK(27, 24)
+#define ID_ISAR6_EL1_I8MM_SHIFT 24
+#define ID_ISAR6_EL1_I8MM_WIDTH 4
+#define ID_ISAR6_EL1_I8MM_SIGNED false
+#define ID_ISAR6_EL1_I8MM_NI UL(0b0000)
+#define ID_ISAR6_EL1_I8MM_IMP UL(0b0001)
+
+#define ID_ISAR6_EL1_BF16 GENMASK(23, 20)
+#define ID_ISAR6_EL1_BF16_MASK GENMASK(23, 20)
+#define ID_ISAR6_EL1_BF16_SHIFT 20
+#define ID_ISAR6_EL1_BF16_WIDTH 4
+#define ID_ISAR6_EL1_BF16_SIGNED false
+#define ID_ISAR6_EL1_BF16_NI UL(0b0000)
+#define ID_ISAR6_EL1_BF16_IMP UL(0b0001)
+
+#define ID_ISAR6_EL1_SPECRES GENMASK(19, 16)
+#define ID_ISAR6_EL1_SPECRES_MASK GENMASK(19, 16)
+#define ID_ISAR6_EL1_SPECRES_SHIFT 16
+#define ID_ISAR6_EL1_SPECRES_WIDTH 4
+#define ID_ISAR6_EL1_SPECRES_SIGNED false
+#define ID_ISAR6_EL1_SPECRES_NI UL(0b0000)
+#define ID_ISAR6_EL1_SPECRES_IMP UL(0b0001)
+
+#define ID_ISAR6_EL1_SB GENMASK(15, 12)
+#define ID_ISAR6_EL1_SB_MASK GENMASK(15, 12)
+#define ID_ISAR6_EL1_SB_SHIFT 12
+#define ID_ISAR6_EL1_SB_WIDTH 4
+#define ID_ISAR6_EL1_SB_SIGNED false
+#define ID_ISAR6_EL1_SB_NI UL(0b0000)
+#define ID_ISAR6_EL1_SB_IMP UL(0b0001)
+
+#define ID_ISAR6_EL1_FHM GENMASK(11, 8)
+#define ID_ISAR6_EL1_FHM_MASK GENMASK(11, 8)
+#define ID_ISAR6_EL1_FHM_SHIFT 8
+#define ID_ISAR6_EL1_FHM_WIDTH 4
+#define ID_ISAR6_EL1_FHM_SIGNED false
+#define ID_ISAR6_EL1_FHM_NI UL(0b0000)
+#define ID_ISAR6_EL1_FHM_IMP UL(0b0001)
+
+#define ID_ISAR6_EL1_DP GENMASK(7, 4)
+#define ID_ISAR6_EL1_DP_MASK GENMASK(7, 4)
+#define ID_ISAR6_EL1_DP_SHIFT 4
+#define ID_ISAR6_EL1_DP_WIDTH 4
+#define ID_ISAR6_EL1_DP_SIGNED false
+#define ID_ISAR6_EL1_DP_NI UL(0b0000)
+#define ID_ISAR6_EL1_DP_IMP UL(0b0001)
+
+#define ID_ISAR6_EL1_JSCVT GENMASK(3, 0)
+#define ID_ISAR6_EL1_JSCVT_MASK GENMASK(3, 0)
+#define ID_ISAR6_EL1_JSCVT_SHIFT 0
+#define ID_ISAR6_EL1_JSCVT_WIDTH 4
+#define ID_ISAR6_EL1_JSCVT_SIGNED false
+#define ID_ISAR6_EL1_JSCVT_NI UL(0b0000)
+#define ID_ISAR6_EL1_JSCVT_IMP UL(0b0001)
+
+#define ID_ISAR6_EL1_RES0 (UL(0) | GENMASK_ULL(63, 28))
+#define ID_ISAR6_EL1_RES1 (UL(0))
+#define ID_ISAR6_EL1_UNKN (UL(0))
+
+#define REG_ID_MMFR4_EL1 S3_0_C0_C2_6
+#define SYS_ID_MMFR4_EL1 sys_reg(3, 0, 0, 2, 6)
+#define SYS_ID_MMFR4_EL1_Op0 3
+#define SYS_ID_MMFR4_EL1_Op1 0
+#define SYS_ID_MMFR4_EL1_CRn 0
+#define SYS_ID_MMFR4_EL1_CRm 2
+#define SYS_ID_MMFR4_EL1_Op2 6
+
+#define ID_MMFR4_EL1_EVT GENMASK(31, 28)
+#define ID_MMFR4_EL1_EVT_MASK GENMASK(31, 28)
+#define ID_MMFR4_EL1_EVT_SHIFT 28
+#define ID_MMFR4_EL1_EVT_WIDTH 4
+#define ID_MMFR4_EL1_EVT_SIGNED false
+#define ID_MMFR4_EL1_EVT_NI UL(0b0000)
+#define ID_MMFR4_EL1_EVT_NO_TLBIS UL(0b0001)
+#define ID_MMFR4_EL1_EVT_TLBIS UL(0b0010)
+
+#define ID_MMFR4_EL1_CCIDX GENMASK(27, 24)
+#define ID_MMFR4_EL1_CCIDX_MASK GENMASK(27, 24)
+#define ID_MMFR4_EL1_CCIDX_SHIFT 24
+#define ID_MMFR4_EL1_CCIDX_WIDTH 4
+#define ID_MMFR4_EL1_CCIDX_SIGNED false
+#define ID_MMFR4_EL1_CCIDX_NI UL(0b0000)
+#define ID_MMFR4_EL1_CCIDX_IMP UL(0b0001)
+
+#define ID_MMFR4_EL1_LSM GENMASK(23, 20)
+#define ID_MMFR4_EL1_LSM_MASK GENMASK(23, 20)
+#define ID_MMFR4_EL1_LSM_SHIFT 20
+#define ID_MMFR4_EL1_LSM_WIDTH 4
+#define ID_MMFR4_EL1_LSM_SIGNED false
+#define ID_MMFR4_EL1_LSM_NI UL(0b0000)
+#define ID_MMFR4_EL1_LSM_IMP UL(0b0001)
+
+#define ID_MMFR4_EL1_HPDS GENMASK(19, 16)
+#define ID_MMFR4_EL1_HPDS_MASK GENMASK(19, 16)
+#define ID_MMFR4_EL1_HPDS_SHIFT 16
+#define ID_MMFR4_EL1_HPDS_WIDTH 4
+#define ID_MMFR4_EL1_HPDS_SIGNED false
+#define ID_MMFR4_EL1_HPDS_NI UL(0b0000)
+#define ID_MMFR4_EL1_HPDS_AA32HPD UL(0b0001)
+#define ID_MMFR4_EL1_HPDS_HPDS2 UL(0b0010)
+
+#define ID_MMFR4_EL1_CnP GENMASK(15, 12)
+#define ID_MMFR4_EL1_CnP_MASK GENMASK(15, 12)
+#define ID_MMFR4_EL1_CnP_SHIFT 12
+#define ID_MMFR4_EL1_CnP_WIDTH 4
+#define ID_MMFR4_EL1_CnP_SIGNED false
+#define ID_MMFR4_EL1_CnP_NI UL(0b0000)
+#define ID_MMFR4_EL1_CnP_IMP UL(0b0001)
+
+#define ID_MMFR4_EL1_XNX GENMASK(11, 8)
+#define ID_MMFR4_EL1_XNX_MASK GENMASK(11, 8)
+#define ID_MMFR4_EL1_XNX_SHIFT 8
+#define ID_MMFR4_EL1_XNX_WIDTH 4
+#define ID_MMFR4_EL1_XNX_SIGNED false
+#define ID_MMFR4_EL1_XNX_NI UL(0b0000)
+#define ID_MMFR4_EL1_XNX_IMP UL(0b0001)
+
+#define ID_MMFR4_EL1_AC2 GENMASK(7, 4)
+#define ID_MMFR4_EL1_AC2_MASK GENMASK(7, 4)
+#define ID_MMFR4_EL1_AC2_SHIFT 4
+#define ID_MMFR4_EL1_AC2_WIDTH 4
+#define ID_MMFR4_EL1_AC2_SIGNED false
+#define ID_MMFR4_EL1_AC2_NI UL(0b0000)
+#define ID_MMFR4_EL1_AC2_IMP UL(0b0001)
+
+#define ID_MMFR4_EL1_SpecSEI GENMASK(3, 0)
+#define ID_MMFR4_EL1_SpecSEI_MASK GENMASK(3, 0)
+#define ID_MMFR4_EL1_SpecSEI_SHIFT 0
+#define ID_MMFR4_EL1_SpecSEI_WIDTH 4
+#define ID_MMFR4_EL1_SpecSEI_SIGNED false
+#define ID_MMFR4_EL1_SpecSEI_NI UL(0b0000)
+#define ID_MMFR4_EL1_SpecSEI_IMP UL(0b0001)
+
+#define ID_MMFR4_EL1_RES0 (UL(0) | GENMASK_ULL(63, 32))
+#define ID_MMFR4_EL1_RES1 (UL(0))
+#define ID_MMFR4_EL1_UNKN (UL(0))
+
+#define REG_MVFR0_EL1 S3_0_C0_C3_0
+#define SYS_MVFR0_EL1 sys_reg(3, 0, 0, 3, 0)
+#define SYS_MVFR0_EL1_Op0 3
+#define SYS_MVFR0_EL1_Op1 0
+#define SYS_MVFR0_EL1_CRn 0
+#define SYS_MVFR0_EL1_CRm 3
+#define SYS_MVFR0_EL1_Op2 0
+
+#define MVFR0_EL1_FPRound GENMASK(31, 28)
+#define MVFR0_EL1_FPRound_MASK GENMASK(31, 28)
+#define MVFR0_EL1_FPRound_SHIFT 28
+#define MVFR0_EL1_FPRound_WIDTH 4
+#define MVFR0_EL1_FPRound_SIGNED false
+#define MVFR0_EL1_FPRound_NI UL(0b0000)
+#define MVFR0_EL1_FPRound_IMP UL(0b0001)
+
+#define MVFR0_EL1_FPShVec GENMASK(27, 24)
+#define MVFR0_EL1_FPShVec_MASK GENMASK(27, 24)
+#define MVFR0_EL1_FPShVec_SHIFT 24
+#define MVFR0_EL1_FPShVec_WIDTH 4
+#define MVFR0_EL1_FPShVec_SIGNED false
+#define MVFR0_EL1_FPShVec_NI UL(0b0000)
+#define MVFR0_EL1_FPShVec_IMP UL(0b0001)
+
+#define MVFR0_EL1_FPSqrt GENMASK(23, 20)
+#define MVFR0_EL1_FPSqrt_MASK GENMASK(23, 20)
+#define MVFR0_EL1_FPSqrt_SHIFT 20
+#define MVFR0_EL1_FPSqrt_WIDTH 4
+#define MVFR0_EL1_FPSqrt_SIGNED false
+#define MVFR0_EL1_FPSqrt_NI UL(0b0000)
+#define MVFR0_EL1_FPSqrt_IMP UL(0b0001)
+
+#define MVFR0_EL1_FPDivide GENMASK(19, 16)
+#define MVFR0_EL1_FPDivide_MASK GENMASK(19, 16)
+#define MVFR0_EL1_FPDivide_SHIFT 16
+#define MVFR0_EL1_FPDivide_WIDTH 4
+#define MVFR0_EL1_FPDivide_SIGNED false
+#define MVFR0_EL1_FPDivide_NI UL(0b0000)
+#define MVFR0_EL1_FPDivide_IMP UL(0b0001)
+
+#define MVFR0_EL1_FPTrap GENMASK(15, 12)
+#define MVFR0_EL1_FPTrap_MASK GENMASK(15, 12)
+#define MVFR0_EL1_FPTrap_SHIFT 12
+#define MVFR0_EL1_FPTrap_WIDTH 4
+#define MVFR0_EL1_FPTrap_SIGNED false
+#define MVFR0_EL1_FPTrap_NI UL(0b0000)
+#define MVFR0_EL1_FPTrap_IMP UL(0b0001)
+
+#define MVFR0_EL1_FPDP GENMASK(11, 8)
+#define MVFR0_EL1_FPDP_MASK GENMASK(11, 8)
+#define MVFR0_EL1_FPDP_SHIFT 8
+#define MVFR0_EL1_FPDP_WIDTH 4
+#define MVFR0_EL1_FPDP_SIGNED false
+#define MVFR0_EL1_FPDP_NI UL(0b0000)
+#define MVFR0_EL1_FPDP_VFPv2 UL(0b0001)
+#define MVFR0_EL1_FPDP_VFPv3 UL(0b0010)
+
+#define MVFR0_EL1_FPSP GENMASK(7, 4)
+#define MVFR0_EL1_FPSP_MASK GENMASK(7, 4)
+#define MVFR0_EL1_FPSP_SHIFT 4
+#define MVFR0_EL1_FPSP_WIDTH 4
+#define MVFR0_EL1_FPSP_SIGNED false
+#define MVFR0_EL1_FPSP_NI UL(0b0000)
+#define MVFR0_EL1_FPSP_VFPv2 UL(0b0001)
+#define MVFR0_EL1_FPSP_VFPv3 UL(0b0010)
+
+#define MVFR0_EL1_SIMDReg GENMASK(3, 0)
+#define MVFR0_EL1_SIMDReg_MASK GENMASK(3, 0)
+#define MVFR0_EL1_SIMDReg_SHIFT 0
+#define MVFR0_EL1_SIMDReg_WIDTH 4
+#define MVFR0_EL1_SIMDReg_NI UL(0b0000)
+#define MVFR0_EL1_SIMDReg_IMP_16x64 UL(0b0001)
+#define MVFR0_EL1_SIMDReg_IMP_32x64 UL(0b0010)
+
+#define MVFR0_EL1_RES0 (UL(0) | GENMASK_ULL(63, 32))
+#define MVFR0_EL1_RES1 (UL(0))
+#define MVFR0_EL1_UNKN (UL(0))
+
+#define REG_MVFR1_EL1 S3_0_C0_C3_1
+#define SYS_MVFR1_EL1 sys_reg(3, 0, 0, 3, 1)
+#define SYS_MVFR1_EL1_Op0 3
+#define SYS_MVFR1_EL1_Op1 0
+#define SYS_MVFR1_EL1_CRn 0
+#define SYS_MVFR1_EL1_CRm 3
+#define SYS_MVFR1_EL1_Op2 1
+
+#define MVFR1_EL1_SIMDFMAC GENMASK(31, 28)
+#define MVFR1_EL1_SIMDFMAC_MASK GENMASK(31, 28)
+#define MVFR1_EL1_SIMDFMAC_SHIFT 28
+#define MVFR1_EL1_SIMDFMAC_WIDTH 4
+#define MVFR1_EL1_SIMDFMAC_SIGNED false
+#define MVFR1_EL1_SIMDFMAC_NI UL(0b0000)
+#define MVFR1_EL1_SIMDFMAC_IMP UL(0b0001)
+
+#define MVFR1_EL1_FPHP GENMASK(27, 24)
+#define MVFR1_EL1_FPHP_MASK GENMASK(27, 24)
+#define MVFR1_EL1_FPHP_SHIFT 24
+#define MVFR1_EL1_FPHP_WIDTH 4
+#define MVFR1_EL1_FPHP_SIGNED false
+#define MVFR1_EL1_FPHP_NI UL(0b0000)
+#define MVFR1_EL1_FPHP_FPHP UL(0b0001)
+#define MVFR1_EL1_FPHP_FPHP_CONV UL(0b0010)
+#define MVFR1_EL1_FPHP_FP16 UL(0b0011)
+
+#define MVFR1_EL1_SIMDHP GENMASK(23, 20)
+#define MVFR1_EL1_SIMDHP_MASK GENMASK(23, 20)
+#define MVFR1_EL1_SIMDHP_SHIFT 20
+#define MVFR1_EL1_SIMDHP_WIDTH 4
+#define MVFR1_EL1_SIMDHP_SIGNED false
+#define MVFR1_EL1_SIMDHP_NI UL(0b0000)
+#define MVFR1_EL1_SIMDHP_SIMDHP UL(0b0001)
+#define MVFR1_EL1_SIMDHP_SIMDHP_FLOAT UL(0b0010)
+
+#define MVFR1_EL1_SIMDSP GENMASK(19, 16)
+#define MVFR1_EL1_SIMDSP_MASK GENMASK(19, 16)
+#define MVFR1_EL1_SIMDSP_SHIFT 16
+#define MVFR1_EL1_SIMDSP_WIDTH 4
+#define MVFR1_EL1_SIMDSP_SIGNED false
+#define MVFR1_EL1_SIMDSP_NI UL(0b0000)
+#define MVFR1_EL1_SIMDSP_IMP UL(0b0001)
+
+#define MVFR1_EL1_SIMDInt GENMASK(15, 12)
+#define MVFR1_EL1_SIMDInt_MASK GENMASK(15, 12)
+#define MVFR1_EL1_SIMDInt_SHIFT 12
+#define MVFR1_EL1_SIMDInt_WIDTH 4
+#define MVFR1_EL1_SIMDInt_SIGNED false
+#define MVFR1_EL1_SIMDInt_NI UL(0b0000)
+#define MVFR1_EL1_SIMDInt_IMP UL(0b0001)
+
+#define MVFR1_EL1_SIMDLS GENMASK(11, 8)
+#define MVFR1_EL1_SIMDLS_MASK GENMASK(11, 8)
+#define MVFR1_EL1_SIMDLS_SHIFT 8
+#define MVFR1_EL1_SIMDLS_WIDTH 4
+#define MVFR1_EL1_SIMDLS_SIGNED false
+#define MVFR1_EL1_SIMDLS_NI UL(0b0000)
+#define MVFR1_EL1_SIMDLS_IMP UL(0b0001)
+
+#define MVFR1_EL1_FPDNaN GENMASK(7, 4)
+#define MVFR1_EL1_FPDNaN_MASK GENMASK(7, 4)
+#define MVFR1_EL1_FPDNaN_SHIFT 4
+#define MVFR1_EL1_FPDNaN_WIDTH 4
+#define MVFR1_EL1_FPDNaN_SIGNED false
+#define MVFR1_EL1_FPDNaN_NI UL(0b0000)
+#define MVFR1_EL1_FPDNaN_IMP UL(0b0001)
+
+#define MVFR1_EL1_FPFtZ GENMASK(3, 0)
+#define MVFR1_EL1_FPFtZ_MASK GENMASK(3, 0)
+#define MVFR1_EL1_FPFtZ_SHIFT 0
+#define MVFR1_EL1_FPFtZ_WIDTH 4
+#define MVFR1_EL1_FPFtZ_SIGNED false
+#define MVFR1_EL1_FPFtZ_NI UL(0b0000)
+#define MVFR1_EL1_FPFtZ_IMP UL(0b0001)
+
+#define MVFR1_EL1_RES0 (UL(0) | GENMASK_ULL(63, 32))
+#define MVFR1_EL1_RES1 (UL(0))
+#define MVFR1_EL1_UNKN (UL(0))
+
+#define REG_MVFR2_EL1 S3_0_C0_C3_2
+#define SYS_MVFR2_EL1 sys_reg(3, 0, 0, 3, 2)
+#define SYS_MVFR2_EL1_Op0 3
+#define SYS_MVFR2_EL1_Op1 0
+#define SYS_MVFR2_EL1_CRn 0
+#define SYS_MVFR2_EL1_CRm 3
+#define SYS_MVFR2_EL1_Op2 2
+
+#define MVFR2_EL1_FPMisc GENMASK(7, 4)
+#define MVFR2_EL1_FPMisc_MASK GENMASK(7, 4)
+#define MVFR2_EL1_FPMisc_SHIFT 4
+#define MVFR2_EL1_FPMisc_WIDTH 4
+#define MVFR2_EL1_FPMisc_NI UL(0b0000)
+#define MVFR2_EL1_FPMisc_FP UL(0b0001)
+#define MVFR2_EL1_FPMisc_FP_DIRECTED_ROUNDING UL(0b0010)
+#define MVFR2_EL1_FPMisc_FP_ROUNDING UL(0b0011)
+#define MVFR2_EL1_FPMisc_FP_MAX_MIN UL(0b0100)
+
+#define MVFR2_EL1_SIMDMisc GENMASK(3, 0)
+#define MVFR2_EL1_SIMDMisc_MASK GENMASK(3, 0)
+#define MVFR2_EL1_SIMDMisc_SHIFT 0
+#define MVFR2_EL1_SIMDMisc_WIDTH 4
+#define MVFR2_EL1_SIMDMisc_NI UL(0b0000)
+#define MVFR2_EL1_SIMDMisc_SIMD_DIRECTED_ROUNDING UL(0b0001)
+#define MVFR2_EL1_SIMDMisc_SIMD_ROUNDING UL(0b0010)
+#define MVFR2_EL1_SIMDMisc_SIMD_MAX_MIN UL(0b0011)
+
+#define MVFR2_EL1_RES0 (UL(0) | GENMASK_ULL(63, 8))
+#define MVFR2_EL1_RES1 (UL(0))
+#define MVFR2_EL1_UNKN (UL(0))
+
+#define REG_ID_PFR2_EL1 S3_0_C0_C3_4
+#define SYS_ID_PFR2_EL1 sys_reg(3, 0, 0, 3, 4)
+#define SYS_ID_PFR2_EL1_Op0 3
+#define SYS_ID_PFR2_EL1_Op1 0
+#define SYS_ID_PFR2_EL1_CRn 0
+#define SYS_ID_PFR2_EL1_CRm 3
+#define SYS_ID_PFR2_EL1_Op2 4
+
+#define ID_PFR2_EL1_RAS_frac GENMASK(11, 8)
+#define ID_PFR2_EL1_RAS_frac_MASK GENMASK(11, 8)
+#define ID_PFR2_EL1_RAS_frac_SHIFT 8
+#define ID_PFR2_EL1_RAS_frac_WIDTH 4
+#define ID_PFR2_EL1_RAS_frac_SIGNED false
+#define ID_PFR2_EL1_RAS_frac_NI UL(0b0000)
+#define ID_PFR2_EL1_RAS_frac_RASv1p1 UL(0b0001)
+
+#define ID_PFR2_EL1_SSBS GENMASK(7, 4)
+#define ID_PFR2_EL1_SSBS_MASK GENMASK(7, 4)
+#define ID_PFR2_EL1_SSBS_SHIFT 4
+#define ID_PFR2_EL1_SSBS_WIDTH 4
+#define ID_PFR2_EL1_SSBS_SIGNED false
+#define ID_PFR2_EL1_SSBS_NI UL(0b0000)
+#define ID_PFR2_EL1_SSBS_IMP UL(0b0001)
+
+#define ID_PFR2_EL1_CSV3 GENMASK(3, 0)
+#define ID_PFR2_EL1_CSV3_MASK GENMASK(3, 0)
+#define ID_PFR2_EL1_CSV3_SHIFT 0
+#define ID_PFR2_EL1_CSV3_WIDTH 4
+#define ID_PFR2_EL1_CSV3_SIGNED false
+#define ID_PFR2_EL1_CSV3_NI UL(0b0000)
+#define ID_PFR2_EL1_CSV3_IMP UL(0b0001)
+
+#define ID_PFR2_EL1_RES0 (UL(0) | GENMASK_ULL(63, 12))
+#define ID_PFR2_EL1_RES1 (UL(0))
+#define ID_PFR2_EL1_UNKN (UL(0))
+
+#define REG_ID_DFR1_EL1 S3_0_C0_C3_5
+#define SYS_ID_DFR1_EL1 sys_reg(3, 0, 0, 3, 5)
+#define SYS_ID_DFR1_EL1_Op0 3
+#define SYS_ID_DFR1_EL1_Op1 0
+#define SYS_ID_DFR1_EL1_CRn 0
+#define SYS_ID_DFR1_EL1_CRm 3
+#define SYS_ID_DFR1_EL1_Op2 5
+
+#define ID_DFR1_EL1_HPMN0 GENMASK(7, 4)
+#define ID_DFR1_EL1_HPMN0_MASK GENMASK(7, 4)
+#define ID_DFR1_EL1_HPMN0_SHIFT 4
+#define ID_DFR1_EL1_HPMN0_WIDTH 4
+#define ID_DFR1_EL1_HPMN0_SIGNED false
+#define ID_DFR1_EL1_HPMN0_NI UL(0b0000)
+#define ID_DFR1_EL1_HPMN0_IMP UL(0b0001)
+
+#define ID_DFR1_EL1_MTPMU GENMASK(3, 0)
+#define ID_DFR1_EL1_MTPMU_MASK GENMASK(3, 0)
+#define ID_DFR1_EL1_MTPMU_SHIFT 0
+#define ID_DFR1_EL1_MTPMU_WIDTH 4
+#define ID_DFR1_EL1_MTPMU_IMPDEF UL(0b0000)
+#define ID_DFR1_EL1_MTPMU_IMP UL(0b0001)
+#define ID_DFR1_EL1_MTPMU_NI UL(0b1111)
+
+#define ID_DFR1_EL1_RES0 (UL(0) | GENMASK_ULL(63, 8))
+#define ID_DFR1_EL1_RES1 (UL(0))
+#define ID_DFR1_EL1_UNKN (UL(0))
+
+#define REG_ID_MMFR5_EL1 S3_0_C0_C3_6
+#define SYS_ID_MMFR5_EL1 sys_reg(3, 0, 0, 3, 6)
+#define SYS_ID_MMFR5_EL1_Op0 3
+#define SYS_ID_MMFR5_EL1_Op1 0
+#define SYS_ID_MMFR5_EL1_CRn 0
+#define SYS_ID_MMFR5_EL1_CRm 3
+#define SYS_ID_MMFR5_EL1_Op2 6
+
+#define ID_MMFR5_EL1_nTLBPA GENMASK(7, 4)
+#define ID_MMFR5_EL1_nTLBPA_MASK GENMASK(7, 4)
+#define ID_MMFR5_EL1_nTLBPA_SHIFT 4
+#define ID_MMFR5_EL1_nTLBPA_WIDTH 4
+#define ID_MMFR5_EL1_nTLBPA_SIGNED false
+#define ID_MMFR5_EL1_nTLBPA_NI UL(0b0000)
+#define ID_MMFR5_EL1_nTLBPA_IMP UL(0b0001)
+
+#define ID_MMFR5_EL1_ETS GENMASK(3, 0)
+#define ID_MMFR5_EL1_ETS_MASK GENMASK(3, 0)
+#define ID_MMFR5_EL1_ETS_SHIFT 0
+#define ID_MMFR5_EL1_ETS_WIDTH 4
+#define ID_MMFR5_EL1_ETS_SIGNED false
+#define ID_MMFR5_EL1_ETS_NI UL(0b0000)
+#define ID_MMFR5_EL1_ETS_IMP UL(0b0001)
+
+#define ID_MMFR5_EL1_RES0 (UL(0) | GENMASK_ULL(63, 8))
+#define ID_MMFR5_EL1_RES1 (UL(0))
+#define ID_MMFR5_EL1_UNKN (UL(0))
+
+#define REG_ID_AA64PFR0_EL1 S3_0_C0_C4_0
+#define SYS_ID_AA64PFR0_EL1 sys_reg(3, 0, 0, 4, 0)
+#define SYS_ID_AA64PFR0_EL1_Op0 3
+#define SYS_ID_AA64PFR0_EL1_Op1 0
+#define SYS_ID_AA64PFR0_EL1_CRn 0
+#define SYS_ID_AA64PFR0_EL1_CRm 4
+#define SYS_ID_AA64PFR0_EL1_Op2 0
+
+#define ID_AA64PFR0_EL1_CSV3 GENMASK(63, 60)
+#define ID_AA64PFR0_EL1_CSV3_MASK GENMASK(63, 60)
+#define ID_AA64PFR0_EL1_CSV3_SHIFT 60
+#define ID_AA64PFR0_EL1_CSV3_WIDTH 4
+#define ID_AA64PFR0_EL1_CSV3_SIGNED false
+#define ID_AA64PFR0_EL1_CSV3_NI UL(0b0000)
+#define ID_AA64PFR0_EL1_CSV3_IMP UL(0b0001)
+
+#define ID_AA64PFR0_EL1_CSV2 GENMASK(59, 56)
+#define ID_AA64PFR0_EL1_CSV2_MASK GENMASK(59, 56)
+#define ID_AA64PFR0_EL1_CSV2_SHIFT 56
+#define ID_AA64PFR0_EL1_CSV2_WIDTH 4
+#define ID_AA64PFR0_EL1_CSV2_SIGNED false
+#define ID_AA64PFR0_EL1_CSV2_NI UL(0b0000)
+#define ID_AA64PFR0_EL1_CSV2_IMP UL(0b0001)
+#define ID_AA64PFR0_EL1_CSV2_CSV2_2 UL(0b0010)
+#define ID_AA64PFR0_EL1_CSV2_CSV2_3 UL(0b0011)
+
+#define ID_AA64PFR0_EL1_RME GENMASK(55, 52)
+#define ID_AA64PFR0_EL1_RME_MASK GENMASK(55, 52)
+#define ID_AA64PFR0_EL1_RME_SHIFT 52
+#define ID_AA64PFR0_EL1_RME_WIDTH 4
+#define ID_AA64PFR0_EL1_RME_SIGNED false
+#define ID_AA64PFR0_EL1_RME_NI UL(0b0000)
+#define ID_AA64PFR0_EL1_RME_IMP UL(0b0001)
+
+#define ID_AA64PFR0_EL1_DIT GENMASK(51, 48)
+#define ID_AA64PFR0_EL1_DIT_MASK GENMASK(51, 48)
+#define ID_AA64PFR0_EL1_DIT_SHIFT 48
+#define ID_AA64PFR0_EL1_DIT_WIDTH 4
+#define ID_AA64PFR0_EL1_DIT_SIGNED false
+#define ID_AA64PFR0_EL1_DIT_NI UL(0b0000)
+#define ID_AA64PFR0_EL1_DIT_IMP UL(0b0001)
+
+#define ID_AA64PFR0_EL1_AMU GENMASK(47, 44)
+#define ID_AA64PFR0_EL1_AMU_MASK GENMASK(47, 44)
+#define ID_AA64PFR0_EL1_AMU_SHIFT 44
+#define ID_AA64PFR0_EL1_AMU_WIDTH 4
+#define ID_AA64PFR0_EL1_AMU_SIGNED false
+#define ID_AA64PFR0_EL1_AMU_NI UL(0b0000)
+#define ID_AA64PFR0_EL1_AMU_IMP UL(0b0001)
+#define ID_AA64PFR0_EL1_AMU_V1P1 UL(0b0010)
+
+#define ID_AA64PFR0_EL1_MPAM GENMASK(43, 40)
+#define ID_AA64PFR0_EL1_MPAM_MASK GENMASK(43, 40)
+#define ID_AA64PFR0_EL1_MPAM_SHIFT 40
+#define ID_AA64PFR0_EL1_MPAM_WIDTH 4
+#define ID_AA64PFR0_EL1_MPAM_SIGNED false
+#define ID_AA64PFR0_EL1_MPAM_0 UL(0b0000)
+#define ID_AA64PFR0_EL1_MPAM_1 UL(0b0001)
+
+#define ID_AA64PFR0_EL1_SEL2 GENMASK(39, 36)
+#define ID_AA64PFR0_EL1_SEL2_MASK GENMASK(39, 36)
+#define ID_AA64PFR0_EL1_SEL2_SHIFT 36
+#define ID_AA64PFR0_EL1_SEL2_WIDTH 4
+#define ID_AA64PFR0_EL1_SEL2_SIGNED false
+#define ID_AA64PFR0_EL1_SEL2_NI UL(0b0000)
+#define ID_AA64PFR0_EL1_SEL2_IMP UL(0b0001)
+
+#define ID_AA64PFR0_EL1_SVE GENMASK(35, 32)
+#define ID_AA64PFR0_EL1_SVE_MASK GENMASK(35, 32)
+#define ID_AA64PFR0_EL1_SVE_SHIFT 32
+#define ID_AA64PFR0_EL1_SVE_WIDTH 4
+#define ID_AA64PFR0_EL1_SVE_SIGNED false
+#define ID_AA64PFR0_EL1_SVE_NI UL(0b0000)
+#define ID_AA64PFR0_EL1_SVE_IMP UL(0b0001)
+
+#define ID_AA64PFR0_EL1_RAS GENMASK(31, 28)
+#define ID_AA64PFR0_EL1_RAS_MASK GENMASK(31, 28)
+#define ID_AA64PFR0_EL1_RAS_SHIFT 28
+#define ID_AA64PFR0_EL1_RAS_WIDTH 4
+#define ID_AA64PFR0_EL1_RAS_SIGNED false
+#define ID_AA64PFR0_EL1_RAS_NI UL(0b0000)
+#define ID_AA64PFR0_EL1_RAS_IMP UL(0b0001)
+#define ID_AA64PFR0_EL1_RAS_V1P1 UL(0b0010)
+
+#define ID_AA64PFR0_EL1_GIC GENMASK(27, 24)
+#define ID_AA64PFR0_EL1_GIC_MASK GENMASK(27, 24)
+#define ID_AA64PFR0_EL1_GIC_SHIFT 24
+#define ID_AA64PFR0_EL1_GIC_WIDTH 4
+#define ID_AA64PFR0_EL1_GIC_SIGNED false
+#define ID_AA64PFR0_EL1_GIC_NI UL(0b0000)
+#define ID_AA64PFR0_EL1_GIC_IMP UL(0b0001)
+#define ID_AA64PFR0_EL1_GIC_V4P1 UL(0b0010)
+
+#define ID_AA64PFR0_EL1_AdvSIMD GENMASK(23, 20)
+#define ID_AA64PFR0_EL1_AdvSIMD_MASK GENMASK(23, 20)
+#define ID_AA64PFR0_EL1_AdvSIMD_SHIFT 20
+#define ID_AA64PFR0_EL1_AdvSIMD_WIDTH 4
+#define ID_AA64PFR0_EL1_AdvSIMD_SIGNED true
+#define ID_AA64PFR0_EL1_AdvSIMD_IMP UL(0b0000)
+#define ID_AA64PFR0_EL1_AdvSIMD_FP16 UL(0b0001)
+#define ID_AA64PFR0_EL1_AdvSIMD_NI UL(0b1111)
+
+#define ID_AA64PFR0_EL1_FP GENMASK(19, 16)
+#define ID_AA64PFR0_EL1_FP_MASK GENMASK(19, 16)
+#define ID_AA64PFR0_EL1_FP_SHIFT 16
+#define ID_AA64PFR0_EL1_FP_WIDTH 4
+#define ID_AA64PFR0_EL1_FP_SIGNED true
+#define ID_AA64PFR0_EL1_FP_IMP UL(0b0000)
+#define ID_AA64PFR0_EL1_FP_FP16 UL(0b0001)
+#define ID_AA64PFR0_EL1_FP_NI UL(0b1111)
+
+#define ID_AA64PFR0_EL1_EL3 GENMASK(15, 12)
+#define ID_AA64PFR0_EL1_EL3_MASK GENMASK(15, 12)
+#define ID_AA64PFR0_EL1_EL3_SHIFT 12
+#define ID_AA64PFR0_EL1_EL3_WIDTH 4
+#define ID_AA64PFR0_EL1_EL3_SIGNED false
+#define ID_AA64PFR0_EL1_EL3_NI UL(0b0000)
+#define ID_AA64PFR0_EL1_EL3_IMP UL(0b0001)
+#define ID_AA64PFR0_EL1_EL3_AARCH32 UL(0b0010)
+
+#define ID_AA64PFR0_EL1_EL2 GENMASK(11, 8)
+#define ID_AA64PFR0_EL1_EL2_MASK GENMASK(11, 8)
+#define ID_AA64PFR0_EL1_EL2_SHIFT 8
+#define ID_AA64PFR0_EL1_EL2_WIDTH 4
+#define ID_AA64PFR0_EL1_EL2_SIGNED false
+#define ID_AA64PFR0_EL1_EL2_NI UL(0b0000)
+#define ID_AA64PFR0_EL1_EL2_IMP UL(0b0001)
+#define ID_AA64PFR0_EL1_EL2_AARCH32 UL(0b0010)
+
+#define ID_AA64PFR0_EL1_EL1 GENMASK(7, 4)
+#define ID_AA64PFR0_EL1_EL1_MASK GENMASK(7, 4)
+#define ID_AA64PFR0_EL1_EL1_SHIFT 4
+#define ID_AA64PFR0_EL1_EL1_WIDTH 4
+#define ID_AA64PFR0_EL1_EL1_SIGNED false
+#define ID_AA64PFR0_EL1_EL1_IMP UL(0b0001)
+#define ID_AA64PFR0_EL1_EL1_AARCH32 UL(0b0010)
+
+#define ID_AA64PFR0_EL1_EL0 GENMASK(3, 0)
+#define ID_AA64PFR0_EL1_EL0_MASK GENMASK(3, 0)
+#define ID_AA64PFR0_EL1_EL0_SHIFT 0
+#define ID_AA64PFR0_EL1_EL0_WIDTH 4
+#define ID_AA64PFR0_EL1_EL0_SIGNED false
+#define ID_AA64PFR0_EL1_EL0_IMP UL(0b0001)
+#define ID_AA64PFR0_EL1_EL0_AARCH32 UL(0b0010)
+
+#define ID_AA64PFR0_EL1_RES0 (UL(0))
+#define ID_AA64PFR0_EL1_RES1 (UL(0))
+#define ID_AA64PFR0_EL1_UNKN (UL(0))
+
+#define REG_ID_AA64PFR1_EL1 S3_0_C0_C4_1
+#define SYS_ID_AA64PFR1_EL1 sys_reg(3, 0, 0, 4, 1)
+#define SYS_ID_AA64PFR1_EL1_Op0 3
+#define SYS_ID_AA64PFR1_EL1_Op1 0
+#define SYS_ID_AA64PFR1_EL1_CRn 0
+#define SYS_ID_AA64PFR1_EL1_CRm 4
+#define SYS_ID_AA64PFR1_EL1_Op2 1
+
+#define ID_AA64PFR1_EL1_PFAR GENMASK(63, 60)
+#define ID_AA64PFR1_EL1_PFAR_MASK GENMASK(63, 60)
+#define ID_AA64PFR1_EL1_PFAR_SHIFT 60
+#define ID_AA64PFR1_EL1_PFAR_WIDTH 4
+#define ID_AA64PFR1_EL1_PFAR_SIGNED false
+#define ID_AA64PFR1_EL1_PFAR_NI UL(0b0000)
+#define ID_AA64PFR1_EL1_PFAR_IMP UL(0b0001)
+
+#define ID_AA64PFR1_EL1_DF2 GENMASK(59, 56)
+#define ID_AA64PFR1_EL1_DF2_MASK GENMASK(59, 56)
+#define ID_AA64PFR1_EL1_DF2_SHIFT 56
+#define ID_AA64PFR1_EL1_DF2_WIDTH 4
+#define ID_AA64PFR1_EL1_DF2_SIGNED false
+#define ID_AA64PFR1_EL1_DF2_NI UL(0b0000)
+#define ID_AA64PFR1_EL1_DF2_IMP UL(0b0001)
+
+#define ID_AA64PFR1_EL1_MTEX GENMASK(55, 52)
+#define ID_AA64PFR1_EL1_MTEX_MASK GENMASK(55, 52)
+#define ID_AA64PFR1_EL1_MTEX_SHIFT 52
+#define ID_AA64PFR1_EL1_MTEX_WIDTH 4
+#define ID_AA64PFR1_EL1_MTEX_SIGNED false
+#define ID_AA64PFR1_EL1_MTEX_MTE UL(0b0000)
+#define ID_AA64PFR1_EL1_MTEX_MTE4 UL(0b0001)
+
+#define ID_AA64PFR1_EL1_THE GENMASK(51, 48)
+#define ID_AA64PFR1_EL1_THE_MASK GENMASK(51, 48)
+#define ID_AA64PFR1_EL1_THE_SHIFT 48
+#define ID_AA64PFR1_EL1_THE_WIDTH 4
+#define ID_AA64PFR1_EL1_THE_SIGNED false
+#define ID_AA64PFR1_EL1_THE_NI UL(0b0000)
+#define ID_AA64PFR1_EL1_THE_IMP UL(0b0001)
+
+#define ID_AA64PFR1_EL1_GCS GENMASK(47, 44)
+#define ID_AA64PFR1_EL1_GCS_MASK GENMASK(47, 44)
+#define ID_AA64PFR1_EL1_GCS_SHIFT 44
+#define ID_AA64PFR1_EL1_GCS_WIDTH 4
+#define ID_AA64PFR1_EL1_GCS_SIGNED false
+#define ID_AA64PFR1_EL1_GCS_NI UL(0b0000)
+#define ID_AA64PFR1_EL1_GCS_IMP UL(0b0001)
+
+#define ID_AA64PFR1_EL1_MTE_frac GENMASK(43, 40)
+#define ID_AA64PFR1_EL1_MTE_frac_MASK GENMASK(43, 40)
+#define ID_AA64PFR1_EL1_MTE_frac_SHIFT 40
+#define ID_AA64PFR1_EL1_MTE_frac_WIDTH 4
+#define ID_AA64PFR1_EL1_MTE_frac_ASYNC UL(0b0000)
+#define ID_AA64PFR1_EL1_MTE_frac_NI UL(0b1111)
+
+#define ID_AA64PFR1_EL1_NMI GENMASK(39, 36)
+#define ID_AA64PFR1_EL1_NMI_MASK GENMASK(39, 36)
+#define ID_AA64PFR1_EL1_NMI_SHIFT 36
+#define ID_AA64PFR1_EL1_NMI_WIDTH 4
+#define ID_AA64PFR1_EL1_NMI_SIGNED false
+#define ID_AA64PFR1_EL1_NMI_NI UL(0b0000)
+#define ID_AA64PFR1_EL1_NMI_IMP UL(0b0001)
+
+#define ID_AA64PFR1_EL1_CSV2_frac GENMASK(35, 32)
+#define ID_AA64PFR1_EL1_CSV2_frac_MASK GENMASK(35, 32)
+#define ID_AA64PFR1_EL1_CSV2_frac_SHIFT 32
+#define ID_AA64PFR1_EL1_CSV2_frac_WIDTH 4
+#define ID_AA64PFR1_EL1_CSV2_frac_SIGNED false
+#define ID_AA64PFR1_EL1_CSV2_frac_NI UL(0b0000)
+#define ID_AA64PFR1_EL1_CSV2_frac_CSV2_1p1 UL(0b0001)
+#define ID_AA64PFR1_EL1_CSV2_frac_CSV2_1p2 UL(0b0010)
+
+#define ID_AA64PFR1_EL1_RNDR_trap GENMASK(31, 28)
+#define ID_AA64PFR1_EL1_RNDR_trap_MASK GENMASK(31, 28)
+#define ID_AA64PFR1_EL1_RNDR_trap_SHIFT 28
+#define ID_AA64PFR1_EL1_RNDR_trap_WIDTH 4
+#define ID_AA64PFR1_EL1_RNDR_trap_SIGNED false
+#define ID_AA64PFR1_EL1_RNDR_trap_NI UL(0b0000)
+#define ID_AA64PFR1_EL1_RNDR_trap_IMP UL(0b0001)
+
+#define ID_AA64PFR1_EL1_SME GENMASK(27, 24)
+#define ID_AA64PFR1_EL1_SME_MASK GENMASK(27, 24)
+#define ID_AA64PFR1_EL1_SME_SHIFT 24
+#define ID_AA64PFR1_EL1_SME_WIDTH 4
+#define ID_AA64PFR1_EL1_SME_SIGNED false
+#define ID_AA64PFR1_EL1_SME_NI UL(0b0000)
+#define ID_AA64PFR1_EL1_SME_IMP UL(0b0001)
+#define ID_AA64PFR1_EL1_SME_SME2 UL(0b0010)
+
+#define ID_AA64PFR1_EL1_MPAM_frac GENMASK(19, 16)
+#define ID_AA64PFR1_EL1_MPAM_frac_MASK GENMASK(19, 16)
+#define ID_AA64PFR1_EL1_MPAM_frac_SHIFT 16
+#define ID_AA64PFR1_EL1_MPAM_frac_WIDTH 4
+#define ID_AA64PFR1_EL1_MPAM_frac_SIGNED false
+#define ID_AA64PFR1_EL1_MPAM_frac_MINOR_0 UL(0b0000)
+#define ID_AA64PFR1_EL1_MPAM_frac_MINOR_1 UL(0b0001)
+
+#define ID_AA64PFR1_EL1_RAS_frac GENMASK(15, 12)
+#define ID_AA64PFR1_EL1_RAS_frac_MASK GENMASK(15, 12)
+#define ID_AA64PFR1_EL1_RAS_frac_SHIFT 12
+#define ID_AA64PFR1_EL1_RAS_frac_WIDTH 4
+#define ID_AA64PFR1_EL1_RAS_frac_SIGNED false
+#define ID_AA64PFR1_EL1_RAS_frac_NI UL(0b0000)
+#define ID_AA64PFR1_EL1_RAS_frac_RASv1p1 UL(0b0001)
+
+#define ID_AA64PFR1_EL1_MTE GENMASK(11, 8)
+#define ID_AA64PFR1_EL1_MTE_MASK GENMASK(11, 8)
+#define ID_AA64PFR1_EL1_MTE_SHIFT 8
+#define ID_AA64PFR1_EL1_MTE_WIDTH 4
+#define ID_AA64PFR1_EL1_MTE_SIGNED false
+#define ID_AA64PFR1_EL1_MTE_NI UL(0b0000)
+#define ID_AA64PFR1_EL1_MTE_IMP UL(0b0001)
+#define ID_AA64PFR1_EL1_MTE_MTE2 UL(0b0010)
+#define ID_AA64PFR1_EL1_MTE_MTE3 UL(0b0011)
+
+#define ID_AA64PFR1_EL1_SSBS GENMASK(7, 4)
+#define ID_AA64PFR1_EL1_SSBS_MASK GENMASK(7, 4)
+#define ID_AA64PFR1_EL1_SSBS_SHIFT 4
+#define ID_AA64PFR1_EL1_SSBS_WIDTH 4
+#define ID_AA64PFR1_EL1_SSBS_SIGNED false
+#define ID_AA64PFR1_EL1_SSBS_NI UL(0b0000)
+#define ID_AA64PFR1_EL1_SSBS_IMP UL(0b0001)
+#define ID_AA64PFR1_EL1_SSBS_SSBS2 UL(0b0010)
+
+#define ID_AA64PFR1_EL1_BT GENMASK(3, 0)
+#define ID_AA64PFR1_EL1_BT_MASK GENMASK(3, 0)
+#define ID_AA64PFR1_EL1_BT_SHIFT 0
+#define ID_AA64PFR1_EL1_BT_WIDTH 4
+#define ID_AA64PFR1_EL1_BT_SIGNED false
+#define ID_AA64PFR1_EL1_BT_NI UL(0b0000)
+#define ID_AA64PFR1_EL1_BT_IMP UL(0b0001)
+
+#define ID_AA64PFR1_EL1_RES0 (UL(0) | GENMASK_ULL(23, 20))
+#define ID_AA64PFR1_EL1_RES1 (UL(0))
+#define ID_AA64PFR1_EL1_UNKN (UL(0))
+
+#define REG_ID_AA64ZFR0_EL1 S3_0_C0_C4_4
+#define SYS_ID_AA64ZFR0_EL1 sys_reg(3, 0, 0, 4, 4)
+#define SYS_ID_AA64ZFR0_EL1_Op0 3
+#define SYS_ID_AA64ZFR0_EL1_Op1 0
+#define SYS_ID_AA64ZFR0_EL1_CRn 0
+#define SYS_ID_AA64ZFR0_EL1_CRm 4
+#define SYS_ID_AA64ZFR0_EL1_Op2 4
+
+#define ID_AA64ZFR0_EL1_F64MM GENMASK(59, 56)
+#define ID_AA64ZFR0_EL1_F64MM_MASK GENMASK(59, 56)
+#define ID_AA64ZFR0_EL1_F64MM_SHIFT 56
+#define ID_AA64ZFR0_EL1_F64MM_WIDTH 4
+#define ID_AA64ZFR0_EL1_F64MM_SIGNED false
+#define ID_AA64ZFR0_EL1_F64MM_NI UL(0b0000)
+#define ID_AA64ZFR0_EL1_F64MM_IMP UL(0b0001)
+
+#define ID_AA64ZFR0_EL1_F32MM GENMASK(55, 52)
+#define ID_AA64ZFR0_EL1_F32MM_MASK GENMASK(55, 52)
+#define ID_AA64ZFR0_EL1_F32MM_SHIFT 52
+#define ID_AA64ZFR0_EL1_F32MM_WIDTH 4
+#define ID_AA64ZFR0_EL1_F32MM_SIGNED false
+#define ID_AA64ZFR0_EL1_F32MM_NI UL(0b0000)
+#define ID_AA64ZFR0_EL1_F32MM_IMP UL(0b0001)
+
+#define ID_AA64ZFR0_EL1_I8MM GENMASK(47, 44)
+#define ID_AA64ZFR0_EL1_I8MM_MASK GENMASK(47, 44)
+#define ID_AA64ZFR0_EL1_I8MM_SHIFT 44
+#define ID_AA64ZFR0_EL1_I8MM_WIDTH 4
+#define ID_AA64ZFR0_EL1_I8MM_SIGNED false
+#define ID_AA64ZFR0_EL1_I8MM_NI UL(0b0000)
+#define ID_AA64ZFR0_EL1_I8MM_IMP UL(0b0001)
+
+#define ID_AA64ZFR0_EL1_SM4 GENMASK(43, 40)
+#define ID_AA64ZFR0_EL1_SM4_MASK GENMASK(43, 40)
+#define ID_AA64ZFR0_EL1_SM4_SHIFT 40
+#define ID_AA64ZFR0_EL1_SM4_WIDTH 4
+#define ID_AA64ZFR0_EL1_SM4_SIGNED false
+#define ID_AA64ZFR0_EL1_SM4_NI UL(0b0000)
+#define ID_AA64ZFR0_EL1_SM4_IMP UL(0b0001)
+
+#define ID_AA64ZFR0_EL1_SHA3 GENMASK(35, 32)
+#define ID_AA64ZFR0_EL1_SHA3_MASK GENMASK(35, 32)
+#define ID_AA64ZFR0_EL1_SHA3_SHIFT 32
+#define ID_AA64ZFR0_EL1_SHA3_WIDTH 4
+#define ID_AA64ZFR0_EL1_SHA3_SIGNED false
+#define ID_AA64ZFR0_EL1_SHA3_NI UL(0b0000)
+#define ID_AA64ZFR0_EL1_SHA3_IMP UL(0b0001)
+
+#define ID_AA64ZFR0_EL1_BF16 GENMASK(23, 20)
+#define ID_AA64ZFR0_EL1_BF16_MASK GENMASK(23, 20)
+#define ID_AA64ZFR0_EL1_BF16_SHIFT 20
+#define ID_AA64ZFR0_EL1_BF16_WIDTH 4
+#define ID_AA64ZFR0_EL1_BF16_SIGNED false
+#define ID_AA64ZFR0_EL1_BF16_NI UL(0b0000)
+#define ID_AA64ZFR0_EL1_BF16_IMP UL(0b0001)
+#define ID_AA64ZFR0_EL1_BF16_EBF16 UL(0b0010)
+
+#define ID_AA64ZFR0_EL1_BitPerm GENMASK(19, 16)
+#define ID_AA64ZFR0_EL1_BitPerm_MASK GENMASK(19, 16)
+#define ID_AA64ZFR0_EL1_BitPerm_SHIFT 16
+#define ID_AA64ZFR0_EL1_BitPerm_WIDTH 4
+#define ID_AA64ZFR0_EL1_BitPerm_SIGNED false
+#define ID_AA64ZFR0_EL1_BitPerm_NI UL(0b0000)
+#define ID_AA64ZFR0_EL1_BitPerm_IMP UL(0b0001)
+
+#define ID_AA64ZFR0_EL1_AES GENMASK(7, 4)
+#define ID_AA64ZFR0_EL1_AES_MASK GENMASK(7, 4)
+#define ID_AA64ZFR0_EL1_AES_SHIFT 4
+#define ID_AA64ZFR0_EL1_AES_WIDTH 4
+#define ID_AA64ZFR0_EL1_AES_SIGNED false
+#define ID_AA64ZFR0_EL1_AES_NI UL(0b0000)
+#define ID_AA64ZFR0_EL1_AES_IMP UL(0b0001)
+#define ID_AA64ZFR0_EL1_AES_PMULL128 UL(0b0010)
+
+#define ID_AA64ZFR0_EL1_SVEver GENMASK(3, 0)
+#define ID_AA64ZFR0_EL1_SVEver_MASK GENMASK(3, 0)
+#define ID_AA64ZFR0_EL1_SVEver_SHIFT 0
+#define ID_AA64ZFR0_EL1_SVEver_WIDTH 4
+#define ID_AA64ZFR0_EL1_SVEver_SIGNED false
+#define ID_AA64ZFR0_EL1_SVEver_IMP UL(0b0000)
+#define ID_AA64ZFR0_EL1_SVEver_SVE2 UL(0b0001)
+#define ID_AA64ZFR0_EL1_SVEver_SVE2p1 UL(0b0010)
+
+#define ID_AA64ZFR0_EL1_RES0 (UL(0) | GENMASK_ULL(63, 60) | GENMASK_ULL(51, 48) | GENMASK_ULL(39, 36) | GENMASK_ULL(31, 24) | GENMASK_ULL(15, 8))
+#define ID_AA64ZFR0_EL1_RES1 (UL(0))
+#define ID_AA64ZFR0_EL1_UNKN (UL(0))
+
+#define REG_ID_AA64SMFR0_EL1 S3_0_C0_C4_5
+#define SYS_ID_AA64SMFR0_EL1 sys_reg(3, 0, 0, 4, 5)
+#define SYS_ID_AA64SMFR0_EL1_Op0 3
+#define SYS_ID_AA64SMFR0_EL1_Op1 0
+#define SYS_ID_AA64SMFR0_EL1_CRn 0
+#define SYS_ID_AA64SMFR0_EL1_CRm 4
+#define SYS_ID_AA64SMFR0_EL1_Op2 5
+
+#define ID_AA64SMFR0_EL1_FA64 GENMASK(63, 63)
+#define ID_AA64SMFR0_EL1_FA64_MASK GENMASK(63, 63)
+#define ID_AA64SMFR0_EL1_FA64_SHIFT 63
+#define ID_AA64SMFR0_EL1_FA64_WIDTH 1
+#define ID_AA64SMFR0_EL1_FA64_SIGNED false
+#define ID_AA64SMFR0_EL1_FA64_NI UL(0b0)
+#define ID_AA64SMFR0_EL1_FA64_IMP UL(0b1)
+
+#define ID_AA64SMFR0_EL1_SMEver GENMASK(59, 56)
+#define ID_AA64SMFR0_EL1_SMEver_MASK GENMASK(59, 56)
+#define ID_AA64SMFR0_EL1_SMEver_SHIFT 56
+#define ID_AA64SMFR0_EL1_SMEver_WIDTH 4
+#define ID_AA64SMFR0_EL1_SMEver_SIGNED false
+#define ID_AA64SMFR0_EL1_SMEver_SME UL(0b0000)
+#define ID_AA64SMFR0_EL1_SMEver_SME2 UL(0b0001)
+#define ID_AA64SMFR0_EL1_SMEver_SME2p1 UL(0b0010)
+#define ID_AA64SMFR0_EL1_SMEver_IMP UL(0b0000)
+
+#define ID_AA64SMFR0_EL1_I16I64 GENMASK(55, 52)
+#define ID_AA64SMFR0_EL1_I16I64_MASK GENMASK(55, 52)
+#define ID_AA64SMFR0_EL1_I16I64_SHIFT 52
+#define ID_AA64SMFR0_EL1_I16I64_WIDTH 4
+#define ID_AA64SMFR0_EL1_I16I64_SIGNED false
+#define ID_AA64SMFR0_EL1_I16I64_NI UL(0b0000)
+#define ID_AA64SMFR0_EL1_I16I64_IMP UL(0b1111)
+
+#define ID_AA64SMFR0_EL1_F64F64 GENMASK(48, 48)
+#define ID_AA64SMFR0_EL1_F64F64_MASK GENMASK(48, 48)
+#define ID_AA64SMFR0_EL1_F64F64_SHIFT 48
+#define ID_AA64SMFR0_EL1_F64F64_WIDTH 1
+#define ID_AA64SMFR0_EL1_F64F64_SIGNED false
+#define ID_AA64SMFR0_EL1_F64F64_NI UL(0b0)
+#define ID_AA64SMFR0_EL1_F64F64_IMP UL(0b1)
+
+#define ID_AA64SMFR0_EL1_I16I32 GENMASK(47, 44)
+#define ID_AA64SMFR0_EL1_I16I32_MASK GENMASK(47, 44)
+#define ID_AA64SMFR0_EL1_I16I32_SHIFT 44
+#define ID_AA64SMFR0_EL1_I16I32_WIDTH 4
+#define ID_AA64SMFR0_EL1_I16I32_SIGNED false
+#define ID_AA64SMFR0_EL1_I16I32_NI UL(0b0000)
+#define ID_AA64SMFR0_EL1_I16I32_IMP UL(0b0101)
+
+#define ID_AA64SMFR0_EL1_B16B16 GENMASK(43, 43)
+#define ID_AA64SMFR0_EL1_B16B16_MASK GENMASK(43, 43)
+#define ID_AA64SMFR0_EL1_B16B16_SHIFT 43
+#define ID_AA64SMFR0_EL1_B16B16_WIDTH 1
+#define ID_AA64SMFR0_EL1_B16B16_SIGNED false
+#define ID_AA64SMFR0_EL1_B16B16_NI UL(0b0)
+#define ID_AA64SMFR0_EL1_B16B16_IMP UL(0b1)
+
+#define ID_AA64SMFR0_EL1_F16F16 GENMASK(42, 42)
+#define ID_AA64SMFR0_EL1_F16F16_MASK GENMASK(42, 42)
+#define ID_AA64SMFR0_EL1_F16F16_SHIFT 42
+#define ID_AA64SMFR0_EL1_F16F16_WIDTH 1
+#define ID_AA64SMFR0_EL1_F16F16_SIGNED false
+#define ID_AA64SMFR0_EL1_F16F16_NI UL(0b0)
+#define ID_AA64SMFR0_EL1_F16F16_IMP UL(0b1)
+
+#define ID_AA64SMFR0_EL1_I8I32 GENMASK(39, 36)
+#define ID_AA64SMFR0_EL1_I8I32_MASK GENMASK(39, 36)
+#define ID_AA64SMFR0_EL1_I8I32_SHIFT 36
+#define ID_AA64SMFR0_EL1_I8I32_WIDTH 4
+#define ID_AA64SMFR0_EL1_I8I32_SIGNED false
+#define ID_AA64SMFR0_EL1_I8I32_NI UL(0b0000)
+#define ID_AA64SMFR0_EL1_I8I32_IMP UL(0b1111)
+
+#define ID_AA64SMFR0_EL1_F16F32 GENMASK(35, 35)
+#define ID_AA64SMFR0_EL1_F16F32_MASK GENMASK(35, 35)
+#define ID_AA64SMFR0_EL1_F16F32_SHIFT 35
+#define ID_AA64SMFR0_EL1_F16F32_WIDTH 1
+#define ID_AA64SMFR0_EL1_F16F32_SIGNED false
+#define ID_AA64SMFR0_EL1_F16F32_NI UL(0b0)
+#define ID_AA64SMFR0_EL1_F16F32_IMP UL(0b1)
+
+#define ID_AA64SMFR0_EL1_B16F32 GENMASK(34, 34)
+#define ID_AA64SMFR0_EL1_B16F32_MASK GENMASK(34, 34)
+#define ID_AA64SMFR0_EL1_B16F32_SHIFT 34
+#define ID_AA64SMFR0_EL1_B16F32_WIDTH 1
+#define ID_AA64SMFR0_EL1_B16F32_SIGNED false
+#define ID_AA64SMFR0_EL1_B16F32_NI UL(0b0)
+#define ID_AA64SMFR0_EL1_B16F32_IMP UL(0b1)
+
+#define ID_AA64SMFR0_EL1_BI32I32 GENMASK(33, 33)
+#define ID_AA64SMFR0_EL1_BI32I32_MASK GENMASK(33, 33)
+#define ID_AA64SMFR0_EL1_BI32I32_SHIFT 33
+#define ID_AA64SMFR0_EL1_BI32I32_WIDTH 1
+#define ID_AA64SMFR0_EL1_BI32I32_SIGNED false
+#define ID_AA64SMFR0_EL1_BI32I32_NI UL(0b0)
+#define ID_AA64SMFR0_EL1_BI32I32_IMP UL(0b1)
+
+#define ID_AA64SMFR0_EL1_F32F32 GENMASK(32, 32)
+#define ID_AA64SMFR0_EL1_F32F32_MASK GENMASK(32, 32)
+#define ID_AA64SMFR0_EL1_F32F32_SHIFT 32
+#define ID_AA64SMFR0_EL1_F32F32_WIDTH 1
+#define ID_AA64SMFR0_EL1_F32F32_SIGNED false
+#define ID_AA64SMFR0_EL1_F32F32_NI UL(0b0)
+#define ID_AA64SMFR0_EL1_F32F32_IMP UL(0b1)
+
+#define ID_AA64SMFR0_EL1_RES0 (UL(0) | GENMASK_ULL(62, 60) | GENMASK_ULL(51, 49) | GENMASK_ULL(41, 40) | GENMASK_ULL(31, 0))
+#define ID_AA64SMFR0_EL1_RES1 (UL(0))
+#define ID_AA64SMFR0_EL1_UNKN (UL(0))
+
+#define REG_ID_AA64DFR0_EL1 S3_0_C0_C5_0
+#define SYS_ID_AA64DFR0_EL1 sys_reg(3, 0, 0, 5, 0)
+#define SYS_ID_AA64DFR0_EL1_Op0 3
+#define SYS_ID_AA64DFR0_EL1_Op1 0
+#define SYS_ID_AA64DFR0_EL1_CRn 0
+#define SYS_ID_AA64DFR0_EL1_CRm 5
+#define SYS_ID_AA64DFR0_EL1_Op2 0
+
+#define ID_AA64DFR0_EL1_HPMN0 GENMASK(63, 60)
+#define ID_AA64DFR0_EL1_HPMN0_MASK GENMASK(63, 60)
+#define ID_AA64DFR0_EL1_HPMN0_SHIFT 60
+#define ID_AA64DFR0_EL1_HPMN0_WIDTH 4
+#define ID_AA64DFR0_EL1_HPMN0_UNPREDICTABLE UL(0b0000)
+#define ID_AA64DFR0_EL1_HPMN0_DEF UL(0b0001)
+
+#define ID_AA64DFR0_EL1_BRBE GENMASK(55, 52)
+#define ID_AA64DFR0_EL1_BRBE_MASK GENMASK(55, 52)
+#define ID_AA64DFR0_EL1_BRBE_SHIFT 52
+#define ID_AA64DFR0_EL1_BRBE_WIDTH 4
+#define ID_AA64DFR0_EL1_BRBE_SIGNED false
+#define ID_AA64DFR0_EL1_BRBE_NI UL(0b0000)
+#define ID_AA64DFR0_EL1_BRBE_IMP UL(0b0001)
+#define ID_AA64DFR0_EL1_BRBE_BRBE_V1P1 UL(0b0010)
+
+#define ID_AA64DFR0_EL1_MTPMU GENMASK(51, 48)
+#define ID_AA64DFR0_EL1_MTPMU_MASK GENMASK(51, 48)
+#define ID_AA64DFR0_EL1_MTPMU_SHIFT 48
+#define ID_AA64DFR0_EL1_MTPMU_WIDTH 4
+#define ID_AA64DFR0_EL1_MTPMU_NI_IMPDEF UL(0b0000)
+#define ID_AA64DFR0_EL1_MTPMU_IMP UL(0b0001)
+#define ID_AA64DFR0_EL1_MTPMU_NI UL(0b1111)
+
+#define ID_AA64DFR0_EL1_TraceBuffer GENMASK(47, 44)
+#define ID_AA64DFR0_EL1_TraceBuffer_MASK GENMASK(47, 44)
+#define ID_AA64DFR0_EL1_TraceBuffer_SHIFT 44
+#define ID_AA64DFR0_EL1_TraceBuffer_WIDTH 4
+#define ID_AA64DFR0_EL1_TraceBuffer_SIGNED false
+#define ID_AA64DFR0_EL1_TraceBuffer_NI UL(0b0000)
+#define ID_AA64DFR0_EL1_TraceBuffer_IMP UL(0b0001)
+
+#define ID_AA64DFR0_EL1_TraceFilt GENMASK(43, 40)
+#define ID_AA64DFR0_EL1_TraceFilt_MASK GENMASK(43, 40)
+#define ID_AA64DFR0_EL1_TraceFilt_SHIFT 40
+#define ID_AA64DFR0_EL1_TraceFilt_WIDTH 4
+#define ID_AA64DFR0_EL1_TraceFilt_SIGNED false
+#define ID_AA64DFR0_EL1_TraceFilt_NI UL(0b0000)
+#define ID_AA64DFR0_EL1_TraceFilt_IMP UL(0b0001)
+
+#define ID_AA64DFR0_EL1_DoubleLock GENMASK(39, 36)
+#define ID_AA64DFR0_EL1_DoubleLock_MASK GENMASK(39, 36)
+#define ID_AA64DFR0_EL1_DoubleLock_SHIFT 36
+#define ID_AA64DFR0_EL1_DoubleLock_WIDTH 4
+#define ID_AA64DFR0_EL1_DoubleLock_SIGNED false
+#define ID_AA64DFR0_EL1_DoubleLock_IMP UL(0b0000)
+#define ID_AA64DFR0_EL1_DoubleLock_NI UL(0b1111)
+
+#define ID_AA64DFR0_EL1_PMSVer GENMASK(35, 32)
+#define ID_AA64DFR0_EL1_PMSVer_MASK GENMASK(35, 32)
+#define ID_AA64DFR0_EL1_PMSVer_SHIFT 32
+#define ID_AA64DFR0_EL1_PMSVer_WIDTH 4
+#define ID_AA64DFR0_EL1_PMSVer_SIGNED false
+#define ID_AA64DFR0_EL1_PMSVer_NI UL(0b0000)
+#define ID_AA64DFR0_EL1_PMSVer_IMP UL(0b0001)
+#define ID_AA64DFR0_EL1_PMSVer_V1P1 UL(0b0010)
+#define ID_AA64DFR0_EL1_PMSVer_V1P2 UL(0b0011)
+#define ID_AA64DFR0_EL1_PMSVer_V1P3 UL(0b0100)
+
+#define ID_AA64DFR0_EL1_CTX_CMPs GENMASK(31, 28)
+#define ID_AA64DFR0_EL1_CTX_CMPs_MASK GENMASK(31, 28)
+#define ID_AA64DFR0_EL1_CTX_CMPs_SHIFT 28
+#define ID_AA64DFR0_EL1_CTX_CMPs_WIDTH 4
+
+#define ID_AA64DFR0_EL1_WRPs GENMASK(23, 20)
+#define ID_AA64DFR0_EL1_WRPs_MASK GENMASK(23, 20)
+#define ID_AA64DFR0_EL1_WRPs_SHIFT 20
+#define ID_AA64DFR0_EL1_WRPs_WIDTH 4
+
+#define ID_AA64DFR0_EL1_BRPs GENMASK(15, 12)
+#define ID_AA64DFR0_EL1_BRPs_MASK GENMASK(15, 12)
+#define ID_AA64DFR0_EL1_BRPs_SHIFT 12
+#define ID_AA64DFR0_EL1_BRPs_WIDTH 4
+
+#define ID_AA64DFR0_EL1_PMUVer GENMASK(11, 8)
+#define ID_AA64DFR0_EL1_PMUVer_MASK GENMASK(11, 8)
+#define ID_AA64DFR0_EL1_PMUVer_SHIFT 8
+#define ID_AA64DFR0_EL1_PMUVer_WIDTH 4
+#define ID_AA64DFR0_EL1_PMUVer_SIGNED false
+#define ID_AA64DFR0_EL1_PMUVer_NI UL(0b0000)
+#define ID_AA64DFR0_EL1_PMUVer_IMP UL(0b0001)
+#define ID_AA64DFR0_EL1_PMUVer_V3P1 UL(0b0100)
+#define ID_AA64DFR0_EL1_PMUVer_V3P4 UL(0b0101)
+#define ID_AA64DFR0_EL1_PMUVer_V3P5 UL(0b0110)
+#define ID_AA64DFR0_EL1_PMUVer_V3P7 UL(0b0111)
+#define ID_AA64DFR0_EL1_PMUVer_V3P8 UL(0b1000)
+#define ID_AA64DFR0_EL1_PMUVer_IMP_DEF UL(0b1111)
+
+#define ID_AA64DFR0_EL1_TraceVer GENMASK(7, 4)
+#define ID_AA64DFR0_EL1_TraceVer_MASK GENMASK(7, 4)
+#define ID_AA64DFR0_EL1_TraceVer_SHIFT 4
+#define ID_AA64DFR0_EL1_TraceVer_WIDTH 4
+#define ID_AA64DFR0_EL1_TraceVer_SIGNED false
+#define ID_AA64DFR0_EL1_TraceVer_NI UL(0b0000)
+#define ID_AA64DFR0_EL1_TraceVer_IMP UL(0b0001)
+
+#define ID_AA64DFR0_EL1_DebugVer GENMASK(3, 0)
+#define ID_AA64DFR0_EL1_DebugVer_MASK GENMASK(3, 0)
+#define ID_AA64DFR0_EL1_DebugVer_SHIFT 0
+#define ID_AA64DFR0_EL1_DebugVer_WIDTH 4
+#define ID_AA64DFR0_EL1_DebugVer_SIGNED false
+#define ID_AA64DFR0_EL1_DebugVer_IMP UL(0b0110)
+#define ID_AA64DFR0_EL1_DebugVer_VHE UL(0b0111)
+#define ID_AA64DFR0_EL1_DebugVer_V8P2 UL(0b1000)
+#define ID_AA64DFR0_EL1_DebugVer_V8P4 UL(0b1001)
+#define ID_AA64DFR0_EL1_DebugVer_V8P8 UL(0b1010)
+
+#define ID_AA64DFR0_EL1_RES0 (UL(0) | GENMASK_ULL(59, 56) | GENMASK_ULL(27, 24) | GENMASK_ULL(19, 16))
+#define ID_AA64DFR0_EL1_RES1 (UL(0))
+#define ID_AA64DFR0_EL1_UNKN (UL(0))
+
+#define REG_ID_AA64DFR1_EL1 S3_0_C0_C5_1
+#define SYS_ID_AA64DFR1_EL1 sys_reg(3, 0, 0, 5, 1)
+#define SYS_ID_AA64DFR1_EL1_Op0 3
+#define SYS_ID_AA64DFR1_EL1_Op1 0
+#define SYS_ID_AA64DFR1_EL1_CRn 0
+#define SYS_ID_AA64DFR1_EL1_CRm 5
+#define SYS_ID_AA64DFR1_EL1_Op2 1
+
+#define ID_AA64DFR1_EL1_RES0 (UL(0) | GENMASK_ULL(63, 0))
+#define ID_AA64DFR1_EL1_RES1 (UL(0))
+#define ID_AA64DFR1_EL1_UNKN (UL(0))
+
+#define REG_ID_AA64AFR0_EL1 S3_0_C0_C5_4
+#define SYS_ID_AA64AFR0_EL1 sys_reg(3, 0, 0, 5, 4)
+#define SYS_ID_AA64AFR0_EL1_Op0 3
+#define SYS_ID_AA64AFR0_EL1_Op1 0
+#define SYS_ID_AA64AFR0_EL1_CRn 0
+#define SYS_ID_AA64AFR0_EL1_CRm 5
+#define SYS_ID_AA64AFR0_EL1_Op2 4
+
+#define ID_AA64AFR0_EL1_IMPDEF7 GENMASK(31, 28)
+#define ID_AA64AFR0_EL1_IMPDEF7_MASK GENMASK(31, 28)
+#define ID_AA64AFR0_EL1_IMPDEF7_SHIFT 28
+#define ID_AA64AFR0_EL1_IMPDEF7_WIDTH 4
+
+#define ID_AA64AFR0_EL1_IMPDEF6 GENMASK(27, 24)
+#define ID_AA64AFR0_EL1_IMPDEF6_MASK GENMASK(27, 24)
+#define ID_AA64AFR0_EL1_IMPDEF6_SHIFT 24
+#define ID_AA64AFR0_EL1_IMPDEF6_WIDTH 4
+
+#define ID_AA64AFR0_EL1_IMPDEF5 GENMASK(23, 20)
+#define ID_AA64AFR0_EL1_IMPDEF5_MASK GENMASK(23, 20)
+#define ID_AA64AFR0_EL1_IMPDEF5_SHIFT 20
+#define ID_AA64AFR0_EL1_IMPDEF5_WIDTH 4
+
+#define ID_AA64AFR0_EL1_IMPDEF4 GENMASK(19, 16)
+#define ID_AA64AFR0_EL1_IMPDEF4_MASK GENMASK(19, 16)
+#define ID_AA64AFR0_EL1_IMPDEF4_SHIFT 16
+#define ID_AA64AFR0_EL1_IMPDEF4_WIDTH 4
+
+#define ID_AA64AFR0_EL1_IMPDEF3 GENMASK(15, 12)
+#define ID_AA64AFR0_EL1_IMPDEF3_MASK GENMASK(15, 12)
+#define ID_AA64AFR0_EL1_IMPDEF3_SHIFT 12
+#define ID_AA64AFR0_EL1_IMPDEF3_WIDTH 4
+
+#define ID_AA64AFR0_EL1_IMPDEF2 GENMASK(11, 8)
+#define ID_AA64AFR0_EL1_IMPDEF2_MASK GENMASK(11, 8)
+#define ID_AA64AFR0_EL1_IMPDEF2_SHIFT 8
+#define ID_AA64AFR0_EL1_IMPDEF2_WIDTH 4
+
+#define ID_AA64AFR0_EL1_IMPDEF1 GENMASK(7, 4)
+#define ID_AA64AFR0_EL1_IMPDEF1_MASK GENMASK(7, 4)
+#define ID_AA64AFR0_EL1_IMPDEF1_SHIFT 4
+#define ID_AA64AFR0_EL1_IMPDEF1_WIDTH 4
+
+#define ID_AA64AFR0_EL1_IMPDEF0 GENMASK(3, 0)
+#define ID_AA64AFR0_EL1_IMPDEF0_MASK GENMASK(3, 0)
+#define ID_AA64AFR0_EL1_IMPDEF0_SHIFT 0
+#define ID_AA64AFR0_EL1_IMPDEF0_WIDTH 4
+
+#define ID_AA64AFR0_EL1_RES0 (UL(0) | GENMASK_ULL(63, 32))
+#define ID_AA64AFR0_EL1_RES1 (UL(0))
+#define ID_AA64AFR0_EL1_UNKN (UL(0))
+
+#define REG_ID_AA64AFR1_EL1 S3_0_C0_C5_5
+#define SYS_ID_AA64AFR1_EL1 sys_reg(3, 0, 0, 5, 5)
+#define SYS_ID_AA64AFR1_EL1_Op0 3
+#define SYS_ID_AA64AFR1_EL1_Op1 0
+#define SYS_ID_AA64AFR1_EL1_CRn 0
+#define SYS_ID_AA64AFR1_EL1_CRm 5
+#define SYS_ID_AA64AFR1_EL1_Op2 5
+
+#define ID_AA64AFR1_EL1_RES0 (UL(0) | GENMASK_ULL(63, 0))
+#define ID_AA64AFR1_EL1_RES1 (UL(0))
+#define ID_AA64AFR1_EL1_UNKN (UL(0))
+
+#define REG_ID_AA64ISAR0_EL1 S3_0_C0_C6_0
+#define SYS_ID_AA64ISAR0_EL1 sys_reg(3, 0, 0, 6, 0)
+#define SYS_ID_AA64ISAR0_EL1_Op0 3
+#define SYS_ID_AA64ISAR0_EL1_Op1 0
+#define SYS_ID_AA64ISAR0_EL1_CRn 0
+#define SYS_ID_AA64ISAR0_EL1_CRm 6
+#define SYS_ID_AA64ISAR0_EL1_Op2 0
+
+#define ID_AA64ISAR0_EL1_RNDR GENMASK(63, 60)
+#define ID_AA64ISAR0_EL1_RNDR_MASK GENMASK(63, 60)
+#define ID_AA64ISAR0_EL1_RNDR_SHIFT 60
+#define ID_AA64ISAR0_EL1_RNDR_WIDTH 4
+#define ID_AA64ISAR0_EL1_RNDR_SIGNED false
+#define ID_AA64ISAR0_EL1_RNDR_NI UL(0b0000)
+#define ID_AA64ISAR0_EL1_RNDR_IMP UL(0b0001)
+
+#define ID_AA64ISAR0_EL1_TLB GENMASK(59, 56)
+#define ID_AA64ISAR0_EL1_TLB_MASK GENMASK(59, 56)
+#define ID_AA64ISAR0_EL1_TLB_SHIFT 56
+#define ID_AA64ISAR0_EL1_TLB_WIDTH 4
+#define ID_AA64ISAR0_EL1_TLB_SIGNED false
+#define ID_AA64ISAR0_EL1_TLB_NI UL(0b0000)
+#define ID_AA64ISAR0_EL1_TLB_OS UL(0b0001)
+#define ID_AA64ISAR0_EL1_TLB_RANGE UL(0b0010)
+
+#define ID_AA64ISAR0_EL1_TS GENMASK(55, 52)
+#define ID_AA64ISAR0_EL1_TS_MASK GENMASK(55, 52)
+#define ID_AA64ISAR0_EL1_TS_SHIFT 52
+#define ID_AA64ISAR0_EL1_TS_WIDTH 4
+#define ID_AA64ISAR0_EL1_TS_SIGNED false
+#define ID_AA64ISAR0_EL1_TS_NI UL(0b0000)
+#define ID_AA64ISAR0_EL1_TS_FLAGM UL(0b0001)
+#define ID_AA64ISAR0_EL1_TS_FLAGM2 UL(0b0010)
+
+#define ID_AA64ISAR0_EL1_FHM GENMASK(51, 48)
+#define ID_AA64ISAR0_EL1_FHM_MASK GENMASK(51, 48)
+#define ID_AA64ISAR0_EL1_FHM_SHIFT 48
+#define ID_AA64ISAR0_EL1_FHM_WIDTH 4
+#define ID_AA64ISAR0_EL1_FHM_SIGNED false
+#define ID_AA64ISAR0_EL1_FHM_NI UL(0b0000)
+#define ID_AA64ISAR0_EL1_FHM_IMP UL(0b0001)
+
+#define ID_AA64ISAR0_EL1_DP GENMASK(47, 44)
+#define ID_AA64ISAR0_EL1_DP_MASK GENMASK(47, 44)
+#define ID_AA64ISAR0_EL1_DP_SHIFT 44
+#define ID_AA64ISAR0_EL1_DP_WIDTH 4
+#define ID_AA64ISAR0_EL1_DP_SIGNED false
+#define ID_AA64ISAR0_EL1_DP_NI UL(0b0000)
+#define ID_AA64ISAR0_EL1_DP_IMP UL(0b0001)
+
+#define ID_AA64ISAR0_EL1_SM4 GENMASK(43, 40)
+#define ID_AA64ISAR0_EL1_SM4_MASK GENMASK(43, 40)
+#define ID_AA64ISAR0_EL1_SM4_SHIFT 40
+#define ID_AA64ISAR0_EL1_SM4_WIDTH 4
+#define ID_AA64ISAR0_EL1_SM4_SIGNED false
+#define ID_AA64ISAR0_EL1_SM4_NI UL(0b0000)
+#define ID_AA64ISAR0_EL1_SM4_IMP UL(0b0001)
+
+#define ID_AA64ISAR0_EL1_SM3 GENMASK(39, 36)
+#define ID_AA64ISAR0_EL1_SM3_MASK GENMASK(39, 36)
+#define ID_AA64ISAR0_EL1_SM3_SHIFT 36
+#define ID_AA64ISAR0_EL1_SM3_WIDTH 4
+#define ID_AA64ISAR0_EL1_SM3_SIGNED false
+#define ID_AA64ISAR0_EL1_SM3_NI UL(0b0000)
+#define ID_AA64ISAR0_EL1_SM3_IMP UL(0b0001)
+
+#define ID_AA64ISAR0_EL1_SHA3 GENMASK(35, 32)
+#define ID_AA64ISAR0_EL1_SHA3_MASK GENMASK(35, 32)
+#define ID_AA64ISAR0_EL1_SHA3_SHIFT 32
+#define ID_AA64ISAR0_EL1_SHA3_WIDTH 4
+#define ID_AA64ISAR0_EL1_SHA3_SIGNED false
+#define ID_AA64ISAR0_EL1_SHA3_NI UL(0b0000)
+#define ID_AA64ISAR0_EL1_SHA3_IMP UL(0b0001)
+
+#define ID_AA64ISAR0_EL1_RDM GENMASK(31, 28)
+#define ID_AA64ISAR0_EL1_RDM_MASK GENMASK(31, 28)
+#define ID_AA64ISAR0_EL1_RDM_SHIFT 28
+#define ID_AA64ISAR0_EL1_RDM_WIDTH 4
+#define ID_AA64ISAR0_EL1_RDM_SIGNED false
+#define ID_AA64ISAR0_EL1_RDM_NI UL(0b0000)
+#define ID_AA64ISAR0_EL1_RDM_IMP UL(0b0001)
+
+#define ID_AA64ISAR0_EL1_TME GENMASK(27, 24)
+#define ID_AA64ISAR0_EL1_TME_MASK GENMASK(27, 24)
+#define ID_AA64ISAR0_EL1_TME_SHIFT 24
+#define ID_AA64ISAR0_EL1_TME_WIDTH 4
+#define ID_AA64ISAR0_EL1_TME_SIGNED false
+#define ID_AA64ISAR0_EL1_TME_NI UL(0b0000)
+#define ID_AA64ISAR0_EL1_TME_IMP UL(0b0001)
+
+#define ID_AA64ISAR0_EL1_ATOMIC GENMASK(23, 20)
+#define ID_AA64ISAR0_EL1_ATOMIC_MASK GENMASK(23, 20)
+#define ID_AA64ISAR0_EL1_ATOMIC_SHIFT 20
+#define ID_AA64ISAR0_EL1_ATOMIC_WIDTH 4
+#define ID_AA64ISAR0_EL1_ATOMIC_SIGNED false
+#define ID_AA64ISAR0_EL1_ATOMIC_NI UL(0b0000)
+#define ID_AA64ISAR0_EL1_ATOMIC_IMP UL(0b0010)
+
+#define ID_AA64ISAR0_EL1_CRC32 GENMASK(19, 16)
+#define ID_AA64ISAR0_EL1_CRC32_MASK GENMASK(19, 16)
+#define ID_AA64ISAR0_EL1_CRC32_SHIFT 16
+#define ID_AA64ISAR0_EL1_CRC32_WIDTH 4
+#define ID_AA64ISAR0_EL1_CRC32_SIGNED false
+#define ID_AA64ISAR0_EL1_CRC32_NI UL(0b0000)
+#define ID_AA64ISAR0_EL1_CRC32_IMP UL(0b0001)
+
+#define ID_AA64ISAR0_EL1_SHA2 GENMASK(15, 12)
+#define ID_AA64ISAR0_EL1_SHA2_MASK GENMASK(15, 12)
+#define ID_AA64ISAR0_EL1_SHA2_SHIFT 12
+#define ID_AA64ISAR0_EL1_SHA2_WIDTH 4
+#define ID_AA64ISAR0_EL1_SHA2_SIGNED false
+#define ID_AA64ISAR0_EL1_SHA2_NI UL(0b0000)
+#define ID_AA64ISAR0_EL1_SHA2_SHA256 UL(0b0001)
+#define ID_AA64ISAR0_EL1_SHA2_SHA512 UL(0b0010)
+
+#define ID_AA64ISAR0_EL1_SHA1 GENMASK(11, 8)
+#define ID_AA64ISAR0_EL1_SHA1_MASK GENMASK(11, 8)
+#define ID_AA64ISAR0_EL1_SHA1_SHIFT 8
+#define ID_AA64ISAR0_EL1_SHA1_WIDTH 4
+#define ID_AA64ISAR0_EL1_SHA1_SIGNED false
+#define ID_AA64ISAR0_EL1_SHA1_NI UL(0b0000)
+#define ID_AA64ISAR0_EL1_SHA1_IMP UL(0b0001)
+
+#define ID_AA64ISAR0_EL1_AES GENMASK(7, 4)
+#define ID_AA64ISAR0_EL1_AES_MASK GENMASK(7, 4)
+#define ID_AA64ISAR0_EL1_AES_SHIFT 4
+#define ID_AA64ISAR0_EL1_AES_WIDTH 4
+#define ID_AA64ISAR0_EL1_AES_SIGNED false
+#define ID_AA64ISAR0_EL1_AES_NI UL(0b0000)
+#define ID_AA64ISAR0_EL1_AES_AES UL(0b0001)
+#define ID_AA64ISAR0_EL1_AES_PMULL UL(0b0010)
+
+#define ID_AA64ISAR0_EL1_RES0 (UL(0) | GENMASK_ULL(3, 0))
+#define ID_AA64ISAR0_EL1_RES1 (UL(0))
+#define ID_AA64ISAR0_EL1_UNKN (UL(0))
+
+#define REG_ID_AA64ISAR1_EL1 S3_0_C0_C6_1
+#define SYS_ID_AA64ISAR1_EL1 sys_reg(3, 0, 0, 6, 1)
+#define SYS_ID_AA64ISAR1_EL1_Op0 3
+#define SYS_ID_AA64ISAR1_EL1_Op1 0
+#define SYS_ID_AA64ISAR1_EL1_CRn 0
+#define SYS_ID_AA64ISAR1_EL1_CRm 6
+#define SYS_ID_AA64ISAR1_EL1_Op2 1
+
+#define ID_AA64ISAR1_EL1_LS64 GENMASK(63, 60)
+#define ID_AA64ISAR1_EL1_LS64_MASK GENMASK(63, 60)
+#define ID_AA64ISAR1_EL1_LS64_SHIFT 60
+#define ID_AA64ISAR1_EL1_LS64_WIDTH 4
+#define ID_AA64ISAR1_EL1_LS64_SIGNED false
+#define ID_AA64ISAR1_EL1_LS64_NI UL(0b0000)
+#define ID_AA64ISAR1_EL1_LS64_LS64 UL(0b0001)
+#define ID_AA64ISAR1_EL1_LS64_LS64_V UL(0b0010)
+#define ID_AA64ISAR1_EL1_LS64_LS64_ACCDATA UL(0b0011)
+
+#define ID_AA64ISAR1_EL1_XS GENMASK(59, 56)
+#define ID_AA64ISAR1_EL1_XS_MASK GENMASK(59, 56)
+#define ID_AA64ISAR1_EL1_XS_SHIFT 56
+#define ID_AA64ISAR1_EL1_XS_WIDTH 4
+#define ID_AA64ISAR1_EL1_XS_SIGNED false
+#define ID_AA64ISAR1_EL1_XS_NI UL(0b0000)
+#define ID_AA64ISAR1_EL1_XS_IMP UL(0b0001)
+
+#define ID_AA64ISAR1_EL1_I8MM GENMASK(55, 52)
+#define ID_AA64ISAR1_EL1_I8MM_MASK GENMASK(55, 52)
+#define ID_AA64ISAR1_EL1_I8MM_SHIFT 52
+#define ID_AA64ISAR1_EL1_I8MM_WIDTH 4
+#define ID_AA64ISAR1_EL1_I8MM_SIGNED false
+#define ID_AA64ISAR1_EL1_I8MM_NI UL(0b0000)
+#define ID_AA64ISAR1_EL1_I8MM_IMP UL(0b0001)
+
+#define ID_AA64ISAR1_EL1_DGH GENMASK(51, 48)
+#define ID_AA64ISAR1_EL1_DGH_MASK GENMASK(51, 48)
+#define ID_AA64ISAR1_EL1_DGH_SHIFT 48
+#define ID_AA64ISAR1_EL1_DGH_WIDTH 4
+#define ID_AA64ISAR1_EL1_DGH_SIGNED false
+#define ID_AA64ISAR1_EL1_DGH_NI UL(0b0000)
+#define ID_AA64ISAR1_EL1_DGH_IMP UL(0b0001)
+
+#define ID_AA64ISAR1_EL1_BF16 GENMASK(47, 44)
+#define ID_AA64ISAR1_EL1_BF16_MASK GENMASK(47, 44)
+#define ID_AA64ISAR1_EL1_BF16_SHIFT 44
+#define ID_AA64ISAR1_EL1_BF16_WIDTH 4
+#define ID_AA64ISAR1_EL1_BF16_SIGNED false
+#define ID_AA64ISAR1_EL1_BF16_NI UL(0b0000)
+#define ID_AA64ISAR1_EL1_BF16_IMP UL(0b0001)
+#define ID_AA64ISAR1_EL1_BF16_EBF16 UL(0b0010)
+
+#define ID_AA64ISAR1_EL1_SPECRES GENMASK(43, 40)
+#define ID_AA64ISAR1_EL1_SPECRES_MASK GENMASK(43, 40)
+#define ID_AA64ISAR1_EL1_SPECRES_SHIFT 40
+#define ID_AA64ISAR1_EL1_SPECRES_WIDTH 4
+#define ID_AA64ISAR1_EL1_SPECRES_SIGNED false
+#define ID_AA64ISAR1_EL1_SPECRES_NI UL(0b0000)
+#define ID_AA64ISAR1_EL1_SPECRES_IMP UL(0b0001)
+
+#define ID_AA64ISAR1_EL1_SB GENMASK(39, 36)
+#define ID_AA64ISAR1_EL1_SB_MASK GENMASK(39, 36)
+#define ID_AA64ISAR1_EL1_SB_SHIFT 36
+#define ID_AA64ISAR1_EL1_SB_WIDTH 4
+#define ID_AA64ISAR1_EL1_SB_SIGNED false
+#define ID_AA64ISAR1_EL1_SB_NI UL(0b0000)
+#define ID_AA64ISAR1_EL1_SB_IMP UL(0b0001)
+
+#define ID_AA64ISAR1_EL1_FRINTTS GENMASK(35, 32)
+#define ID_AA64ISAR1_EL1_FRINTTS_MASK GENMASK(35, 32)
+#define ID_AA64ISAR1_EL1_FRINTTS_SHIFT 32
+#define ID_AA64ISAR1_EL1_FRINTTS_WIDTH 4
+#define ID_AA64ISAR1_EL1_FRINTTS_SIGNED false
+#define ID_AA64ISAR1_EL1_FRINTTS_NI UL(0b0000)
+#define ID_AA64ISAR1_EL1_FRINTTS_IMP UL(0b0001)
+
+#define ID_AA64ISAR1_EL1_GPI GENMASK(31, 28)
+#define ID_AA64ISAR1_EL1_GPI_MASK GENMASK(31, 28)
+#define ID_AA64ISAR1_EL1_GPI_SHIFT 28
+#define ID_AA64ISAR1_EL1_GPI_WIDTH 4
+#define ID_AA64ISAR1_EL1_GPI_SIGNED false
+#define ID_AA64ISAR1_EL1_GPI_NI UL(0b0000)
+#define ID_AA64ISAR1_EL1_GPI_IMP UL(0b0001)
+
+#define ID_AA64ISAR1_EL1_GPA GENMASK(27, 24)
+#define ID_AA64ISAR1_EL1_GPA_MASK GENMASK(27, 24)
+#define ID_AA64ISAR1_EL1_GPA_SHIFT 24
+#define ID_AA64ISAR1_EL1_GPA_WIDTH 4
+#define ID_AA64ISAR1_EL1_GPA_SIGNED false
+#define ID_AA64ISAR1_EL1_GPA_NI UL(0b0000)
+#define ID_AA64ISAR1_EL1_GPA_IMP UL(0b0001)
+
+#define ID_AA64ISAR1_EL1_LRCPC GENMASK(23, 20)
+#define ID_AA64ISAR1_EL1_LRCPC_MASK GENMASK(23, 20)
+#define ID_AA64ISAR1_EL1_LRCPC_SHIFT 20
+#define ID_AA64ISAR1_EL1_LRCPC_WIDTH 4
+#define ID_AA64ISAR1_EL1_LRCPC_SIGNED false
+#define ID_AA64ISAR1_EL1_LRCPC_NI UL(0b0000)
+#define ID_AA64ISAR1_EL1_LRCPC_IMP UL(0b0001)
+#define ID_AA64ISAR1_EL1_LRCPC_LRCPC2 UL(0b0010)
+
+#define ID_AA64ISAR1_EL1_FCMA GENMASK(19, 16)
+#define ID_AA64ISAR1_EL1_FCMA_MASK GENMASK(19, 16)
+#define ID_AA64ISAR1_EL1_FCMA_SHIFT 16
+#define ID_AA64ISAR1_EL1_FCMA_WIDTH 4
+#define ID_AA64ISAR1_EL1_FCMA_SIGNED false
+#define ID_AA64ISAR1_EL1_FCMA_NI UL(0b0000)
+#define ID_AA64ISAR1_EL1_FCMA_IMP UL(0b0001)
+
+#define ID_AA64ISAR1_EL1_JSCVT GENMASK(15, 12)
+#define ID_AA64ISAR1_EL1_JSCVT_MASK GENMASK(15, 12)
+#define ID_AA64ISAR1_EL1_JSCVT_SHIFT 12
+#define ID_AA64ISAR1_EL1_JSCVT_WIDTH 4
+#define ID_AA64ISAR1_EL1_JSCVT_SIGNED false
+#define ID_AA64ISAR1_EL1_JSCVT_NI UL(0b0000)
+#define ID_AA64ISAR1_EL1_JSCVT_IMP UL(0b0001)
+
+#define ID_AA64ISAR1_EL1_API GENMASK(11, 8)
+#define ID_AA64ISAR1_EL1_API_MASK GENMASK(11, 8)
+#define ID_AA64ISAR1_EL1_API_SHIFT 8
+#define ID_AA64ISAR1_EL1_API_WIDTH 4
+#define ID_AA64ISAR1_EL1_API_SIGNED false
+#define ID_AA64ISAR1_EL1_API_NI UL(0b0000)
+#define ID_AA64ISAR1_EL1_API_PAuth UL(0b0001)
+#define ID_AA64ISAR1_EL1_API_EPAC UL(0b0010)
+#define ID_AA64ISAR1_EL1_API_PAuth2 UL(0b0011)
+#define ID_AA64ISAR1_EL1_API_FPAC UL(0b0100)
+#define ID_AA64ISAR1_EL1_API_FPACCOMBINE UL(0b0101)
+
+#define ID_AA64ISAR1_EL1_APA GENMASK(7, 4)
+#define ID_AA64ISAR1_EL1_APA_MASK GENMASK(7, 4)
+#define ID_AA64ISAR1_EL1_APA_SHIFT 4
+#define ID_AA64ISAR1_EL1_APA_WIDTH 4
+#define ID_AA64ISAR1_EL1_APA_SIGNED false
+#define ID_AA64ISAR1_EL1_APA_NI UL(0b0000)
+#define ID_AA64ISAR1_EL1_APA_PAuth UL(0b0001)
+#define ID_AA64ISAR1_EL1_APA_EPAC UL(0b0010)
+#define ID_AA64ISAR1_EL1_APA_PAuth2 UL(0b0011)
+#define ID_AA64ISAR1_EL1_APA_FPAC UL(0b0100)
+#define ID_AA64ISAR1_EL1_APA_FPACCOMBINE UL(0b0101)
+
+#define ID_AA64ISAR1_EL1_DPB GENMASK(3, 0)
+#define ID_AA64ISAR1_EL1_DPB_MASK GENMASK(3, 0)
+#define ID_AA64ISAR1_EL1_DPB_SHIFT 0
+#define ID_AA64ISAR1_EL1_DPB_WIDTH 4
+#define ID_AA64ISAR1_EL1_DPB_SIGNED false
+#define ID_AA64ISAR1_EL1_DPB_NI UL(0b0000)
+#define ID_AA64ISAR1_EL1_DPB_IMP UL(0b0001)
+#define ID_AA64ISAR1_EL1_DPB_DPB2 UL(0b0010)
+
+#define ID_AA64ISAR1_EL1_RES0 (UL(0))
+#define ID_AA64ISAR1_EL1_RES1 (UL(0))
+#define ID_AA64ISAR1_EL1_UNKN (UL(0))
+
+#define REG_ID_AA64ISAR2_EL1 S3_0_C0_C6_2
+#define SYS_ID_AA64ISAR2_EL1 sys_reg(3, 0, 0, 6, 2)
+#define SYS_ID_AA64ISAR2_EL1_Op0 3
+#define SYS_ID_AA64ISAR2_EL1_Op1 0
+#define SYS_ID_AA64ISAR2_EL1_CRn 0
+#define SYS_ID_AA64ISAR2_EL1_CRm 6
+#define SYS_ID_AA64ISAR2_EL1_Op2 2
+
+#define ID_AA64ISAR2_EL1_CSSC GENMASK(55, 52)
+#define ID_AA64ISAR2_EL1_CSSC_MASK GENMASK(55, 52)
+#define ID_AA64ISAR2_EL1_CSSC_SHIFT 52
+#define ID_AA64ISAR2_EL1_CSSC_WIDTH 4
+#define ID_AA64ISAR2_EL1_CSSC_SIGNED false
+#define ID_AA64ISAR2_EL1_CSSC_NI UL(0b0000)
+#define ID_AA64ISAR2_EL1_CSSC_IMP UL(0b0001)
+
+#define ID_AA64ISAR2_EL1_RPRFM GENMASK(51, 48)
+#define ID_AA64ISAR2_EL1_RPRFM_MASK GENMASK(51, 48)
+#define ID_AA64ISAR2_EL1_RPRFM_SHIFT 48
+#define ID_AA64ISAR2_EL1_RPRFM_WIDTH 4
+#define ID_AA64ISAR2_EL1_RPRFM_SIGNED false
+#define ID_AA64ISAR2_EL1_RPRFM_NI UL(0b0000)
+#define ID_AA64ISAR2_EL1_RPRFM_IMP UL(0b0001)
+
+#define ID_AA64ISAR2_EL1_CLRBHB GENMASK(31, 28)
+#define ID_AA64ISAR2_EL1_CLRBHB_MASK GENMASK(31, 28)
+#define ID_AA64ISAR2_EL1_CLRBHB_SHIFT 28
+#define ID_AA64ISAR2_EL1_CLRBHB_WIDTH 4
+#define ID_AA64ISAR2_EL1_CLRBHB_SIGNED false
+#define ID_AA64ISAR2_EL1_CLRBHB_NI UL(0b0000)
+#define ID_AA64ISAR2_EL1_CLRBHB_IMP UL(0b0001)
+
+#define ID_AA64ISAR2_EL1_PAC_frac GENMASK(27, 24)
+#define ID_AA64ISAR2_EL1_PAC_frac_MASK GENMASK(27, 24)
+#define ID_AA64ISAR2_EL1_PAC_frac_SHIFT 24
+#define ID_AA64ISAR2_EL1_PAC_frac_WIDTH 4
+#define ID_AA64ISAR2_EL1_PAC_frac_SIGNED false
+#define ID_AA64ISAR2_EL1_PAC_frac_NI UL(0b0000)
+#define ID_AA64ISAR2_EL1_PAC_frac_IMP UL(0b0001)
+
+#define ID_AA64ISAR2_EL1_BC GENMASK(23, 20)
+#define ID_AA64ISAR2_EL1_BC_MASK GENMASK(23, 20)
+#define ID_AA64ISAR2_EL1_BC_SHIFT 20
+#define ID_AA64ISAR2_EL1_BC_WIDTH 4
+#define ID_AA64ISAR2_EL1_BC_SIGNED false
+#define ID_AA64ISAR2_EL1_BC_NI UL(0b0000)
+#define ID_AA64ISAR2_EL1_BC_IMP UL(0b0001)
+
+#define ID_AA64ISAR2_EL1_MOPS GENMASK(19, 16)
+#define ID_AA64ISAR2_EL1_MOPS_MASK GENMASK(19, 16)
+#define ID_AA64ISAR2_EL1_MOPS_SHIFT 16
+#define ID_AA64ISAR2_EL1_MOPS_WIDTH 4
+#define ID_AA64ISAR2_EL1_MOPS_SIGNED false
+#define ID_AA64ISAR2_EL1_MOPS_NI UL(0b0000)
+#define ID_AA64ISAR2_EL1_MOPS_IMP UL(0b0001)
+
+#define ID_AA64ISAR2_EL1_APA3 GENMASK(15, 12)
+#define ID_AA64ISAR2_EL1_APA3_MASK GENMASK(15, 12)
+#define ID_AA64ISAR2_EL1_APA3_SHIFT 12
+#define ID_AA64ISAR2_EL1_APA3_WIDTH 4
+#define ID_AA64ISAR2_EL1_APA3_SIGNED false
+#define ID_AA64ISAR2_EL1_APA3_NI UL(0b0000)
+#define ID_AA64ISAR2_EL1_APA3_PAuth UL(0b0001)
+#define ID_AA64ISAR2_EL1_APA3_EPAC UL(0b0010)
+#define ID_AA64ISAR2_EL1_APA3_PAuth2 UL(0b0011)
+#define ID_AA64ISAR2_EL1_APA3_FPAC UL(0b0100)
+#define ID_AA64ISAR2_EL1_APA3_FPACCOMBINE UL(0b0101)
+
+#define ID_AA64ISAR2_EL1_GPA3 GENMASK(11, 8)
+#define ID_AA64ISAR2_EL1_GPA3_MASK GENMASK(11, 8)
+#define ID_AA64ISAR2_EL1_GPA3_SHIFT 8
+#define ID_AA64ISAR2_EL1_GPA3_WIDTH 4
+#define ID_AA64ISAR2_EL1_GPA3_SIGNED false
+#define ID_AA64ISAR2_EL1_GPA3_NI UL(0b0000)
+#define ID_AA64ISAR2_EL1_GPA3_IMP UL(0b0001)
+
+#define ID_AA64ISAR2_EL1_RPRES GENMASK(7, 4)
+#define ID_AA64ISAR2_EL1_RPRES_MASK GENMASK(7, 4)
+#define ID_AA64ISAR2_EL1_RPRES_SHIFT 4
+#define ID_AA64ISAR2_EL1_RPRES_WIDTH 4
+#define ID_AA64ISAR2_EL1_RPRES_SIGNED false
+#define ID_AA64ISAR2_EL1_RPRES_NI UL(0b0000)
+#define ID_AA64ISAR2_EL1_RPRES_IMP UL(0b0001)
+
+#define ID_AA64ISAR2_EL1_WFxT GENMASK(3, 0)
+#define ID_AA64ISAR2_EL1_WFxT_MASK GENMASK(3, 0)
+#define ID_AA64ISAR2_EL1_WFxT_SHIFT 0
+#define ID_AA64ISAR2_EL1_WFxT_WIDTH 4
+#define ID_AA64ISAR2_EL1_WFxT_SIGNED false
+#define ID_AA64ISAR2_EL1_WFxT_NI UL(0b0000)
+#define ID_AA64ISAR2_EL1_WFxT_IMP UL(0b0010)
+
+#define ID_AA64ISAR2_EL1_RES0 (UL(0) | GENMASK_ULL(63, 56) | GENMASK_ULL(47, 32))
+#define ID_AA64ISAR2_EL1_RES1 (UL(0))
+#define ID_AA64ISAR2_EL1_UNKN (UL(0))
+
+#define REG_ID_AA64MMFR0_EL1 S3_0_C0_C7_0
+#define SYS_ID_AA64MMFR0_EL1 sys_reg(3, 0, 0, 7, 0)
+#define SYS_ID_AA64MMFR0_EL1_Op0 3
+#define SYS_ID_AA64MMFR0_EL1_Op1 0
+#define SYS_ID_AA64MMFR0_EL1_CRn 0
+#define SYS_ID_AA64MMFR0_EL1_CRm 7
+#define SYS_ID_AA64MMFR0_EL1_Op2 0
+
+#define ID_AA64MMFR0_EL1_ECV GENMASK(63, 60)
+#define ID_AA64MMFR0_EL1_ECV_MASK GENMASK(63, 60)
+#define ID_AA64MMFR0_EL1_ECV_SHIFT 60
+#define ID_AA64MMFR0_EL1_ECV_WIDTH 4
+#define ID_AA64MMFR0_EL1_ECV_SIGNED false
+#define ID_AA64MMFR0_EL1_ECV_NI UL(0b0000)
+#define ID_AA64MMFR0_EL1_ECV_IMP UL(0b0001)
+#define ID_AA64MMFR0_EL1_ECV_CNTPOFF UL(0b0010)
+
+#define ID_AA64MMFR0_EL1_FGT GENMASK(59, 56)
+#define ID_AA64MMFR0_EL1_FGT_MASK GENMASK(59, 56)
+#define ID_AA64MMFR0_EL1_FGT_SHIFT 56
+#define ID_AA64MMFR0_EL1_FGT_WIDTH 4
+#define ID_AA64MMFR0_EL1_FGT_SIGNED false
+#define ID_AA64MMFR0_EL1_FGT_NI UL(0b0000)
+#define ID_AA64MMFR0_EL1_FGT_IMP UL(0b0001)
+
+#define ID_AA64MMFR0_EL1_EXS GENMASK(47, 44)
+#define ID_AA64MMFR0_EL1_EXS_MASK GENMASK(47, 44)
+#define ID_AA64MMFR0_EL1_EXS_SHIFT 44
+#define ID_AA64MMFR0_EL1_EXS_WIDTH 4
+#define ID_AA64MMFR0_EL1_EXS_SIGNED false
+#define ID_AA64MMFR0_EL1_EXS_NI UL(0b0000)
+#define ID_AA64MMFR0_EL1_EXS_IMP UL(0b0001)
+
+#define ID_AA64MMFR0_EL1_TGRAN4_2 GENMASK(43, 40)
+#define ID_AA64MMFR0_EL1_TGRAN4_2_MASK GENMASK(43, 40)
+#define ID_AA64MMFR0_EL1_TGRAN4_2_SHIFT 40
+#define ID_AA64MMFR0_EL1_TGRAN4_2_WIDTH 4
+#define ID_AA64MMFR0_EL1_TGRAN4_2_TGRAN4 UL(0b0000)
+#define ID_AA64MMFR0_EL1_TGRAN4_2_NI UL(0b0001)
+#define ID_AA64MMFR0_EL1_TGRAN4_2_IMP UL(0b0010)
+#define ID_AA64MMFR0_EL1_TGRAN4_2_52_BIT UL(0b0011)
+
+#define ID_AA64MMFR0_EL1_TGRAN64_2 GENMASK(39, 36)
+#define ID_AA64MMFR0_EL1_TGRAN64_2_MASK GENMASK(39, 36)
+#define ID_AA64MMFR0_EL1_TGRAN64_2_SHIFT 36
+#define ID_AA64MMFR0_EL1_TGRAN64_2_WIDTH 4
+#define ID_AA64MMFR0_EL1_TGRAN64_2_TGRAN64 UL(0b0000)
+#define ID_AA64MMFR0_EL1_TGRAN64_2_NI UL(0b0001)
+#define ID_AA64MMFR0_EL1_TGRAN64_2_IMP UL(0b0010)
+
+#define ID_AA64MMFR0_EL1_TGRAN16_2 GENMASK(35, 32)
+#define ID_AA64MMFR0_EL1_TGRAN16_2_MASK GENMASK(35, 32)
+#define ID_AA64MMFR0_EL1_TGRAN16_2_SHIFT 32
+#define ID_AA64MMFR0_EL1_TGRAN16_2_WIDTH 4
+#define ID_AA64MMFR0_EL1_TGRAN16_2_TGRAN16 UL(0b0000)
+#define ID_AA64MMFR0_EL1_TGRAN16_2_NI UL(0b0001)
+#define ID_AA64MMFR0_EL1_TGRAN16_2_IMP UL(0b0010)
+#define ID_AA64MMFR0_EL1_TGRAN16_2_52_BIT UL(0b0011)
+
+#define ID_AA64MMFR0_EL1_TGRAN4 GENMASK(31, 28)
+#define ID_AA64MMFR0_EL1_TGRAN4_MASK GENMASK(31, 28)
+#define ID_AA64MMFR0_EL1_TGRAN4_SHIFT 28
+#define ID_AA64MMFR0_EL1_TGRAN4_WIDTH 4
+#define ID_AA64MMFR0_EL1_TGRAN4_IMP UL(0b0000)
+#define ID_AA64MMFR0_EL1_TGRAN4_52_BIT UL(0b0001)
+#define ID_AA64MMFR0_EL1_TGRAN4_NI UL(0b1111)
+
+#define ID_AA64MMFR0_EL1_TGRAN64 GENMASK(27, 24)
+#define ID_AA64MMFR0_EL1_TGRAN64_MASK GENMASK(27, 24)
+#define ID_AA64MMFR0_EL1_TGRAN64_SHIFT 24
+#define ID_AA64MMFR0_EL1_TGRAN64_WIDTH 4
+#define ID_AA64MMFR0_EL1_TGRAN64_IMP UL(0b0000)
+#define ID_AA64MMFR0_EL1_TGRAN64_NI UL(0b1111)
+
+#define ID_AA64MMFR0_EL1_TGRAN16 GENMASK(23, 20)
+#define ID_AA64MMFR0_EL1_TGRAN16_MASK GENMASK(23, 20)
+#define ID_AA64MMFR0_EL1_TGRAN16_SHIFT 20
+#define ID_AA64MMFR0_EL1_TGRAN16_WIDTH 4
+#define ID_AA64MMFR0_EL1_TGRAN16_NI UL(0b0000)
+#define ID_AA64MMFR0_EL1_TGRAN16_IMP UL(0b0001)
+#define ID_AA64MMFR0_EL1_TGRAN16_52_BIT UL(0b0010)
+
+#define ID_AA64MMFR0_EL1_BIGENDEL0 GENMASK(19, 16)
+#define ID_AA64MMFR0_EL1_BIGENDEL0_MASK GENMASK(19, 16)
+#define ID_AA64MMFR0_EL1_BIGENDEL0_SHIFT 16
+#define ID_AA64MMFR0_EL1_BIGENDEL0_WIDTH 4
+#define ID_AA64MMFR0_EL1_BIGENDEL0_SIGNED false
+#define ID_AA64MMFR0_EL1_BIGENDEL0_NI UL(0b0000)
+#define ID_AA64MMFR0_EL1_BIGENDEL0_IMP UL(0b0001)
+
+#define ID_AA64MMFR0_EL1_SNSMEM GENMASK(15, 12)
+#define ID_AA64MMFR0_EL1_SNSMEM_MASK GENMASK(15, 12)
+#define ID_AA64MMFR0_EL1_SNSMEM_SHIFT 12
+#define ID_AA64MMFR0_EL1_SNSMEM_WIDTH 4
+#define ID_AA64MMFR0_EL1_SNSMEM_SIGNED false
+#define ID_AA64MMFR0_EL1_SNSMEM_NI UL(0b0000)
+#define ID_AA64MMFR0_EL1_SNSMEM_IMP UL(0b0001)
+
+#define ID_AA64MMFR0_EL1_BIGEND GENMASK(11, 8)
+#define ID_AA64MMFR0_EL1_BIGEND_MASK GENMASK(11, 8)
+#define ID_AA64MMFR0_EL1_BIGEND_SHIFT 8
+#define ID_AA64MMFR0_EL1_BIGEND_WIDTH 4
+#define ID_AA64MMFR0_EL1_BIGEND_SIGNED false
+#define ID_AA64MMFR0_EL1_BIGEND_NI UL(0b0000)
+#define ID_AA64MMFR0_EL1_BIGEND_IMP UL(0b0001)
+
+#define ID_AA64MMFR0_EL1_ASIDBITS GENMASK(7, 4)
+#define ID_AA64MMFR0_EL1_ASIDBITS_MASK GENMASK(7, 4)
+#define ID_AA64MMFR0_EL1_ASIDBITS_SHIFT 4
+#define ID_AA64MMFR0_EL1_ASIDBITS_WIDTH 4
+#define ID_AA64MMFR0_EL1_ASIDBITS_8 UL(0b0000)
+#define ID_AA64MMFR0_EL1_ASIDBITS_16 UL(0b0010)
+
+#define ID_AA64MMFR0_EL1_PARANGE GENMASK(3, 0)
+#define ID_AA64MMFR0_EL1_PARANGE_MASK GENMASK(3, 0)
+#define ID_AA64MMFR0_EL1_PARANGE_SHIFT 0
+#define ID_AA64MMFR0_EL1_PARANGE_WIDTH 4
+#define ID_AA64MMFR0_EL1_PARANGE_32 UL(0b0000)
+#define ID_AA64MMFR0_EL1_PARANGE_36 UL(0b0001)
+#define ID_AA64MMFR0_EL1_PARANGE_40 UL(0b0010)
+#define ID_AA64MMFR0_EL1_PARANGE_42 UL(0b0011)
+#define ID_AA64MMFR0_EL1_PARANGE_44 UL(0b0100)
+#define ID_AA64MMFR0_EL1_PARANGE_48 UL(0b0101)
+#define ID_AA64MMFR0_EL1_PARANGE_52 UL(0b0110)
+
+#define ID_AA64MMFR0_EL1_RES0 (UL(0) | GENMASK_ULL(55, 48))
+#define ID_AA64MMFR0_EL1_RES1 (UL(0))
+#define ID_AA64MMFR0_EL1_UNKN (UL(0))
+
+#define REG_ID_AA64MMFR1_EL1 S3_0_C0_C7_1
+#define SYS_ID_AA64MMFR1_EL1 sys_reg(3, 0, 0, 7, 1)
+#define SYS_ID_AA64MMFR1_EL1_Op0 3
+#define SYS_ID_AA64MMFR1_EL1_Op1 0
+#define SYS_ID_AA64MMFR1_EL1_CRn 0
+#define SYS_ID_AA64MMFR1_EL1_CRm 7
+#define SYS_ID_AA64MMFR1_EL1_Op2 1
+
+#define ID_AA64MMFR1_EL1_ECBHB GENMASK(63, 60)
+#define ID_AA64MMFR1_EL1_ECBHB_MASK GENMASK(63, 60)
+#define ID_AA64MMFR1_EL1_ECBHB_SHIFT 60
+#define ID_AA64MMFR1_EL1_ECBHB_WIDTH 4
+#define ID_AA64MMFR1_EL1_ECBHB_SIGNED false
+#define ID_AA64MMFR1_EL1_ECBHB_NI UL(0b0000)
+#define ID_AA64MMFR1_EL1_ECBHB_IMP UL(0b0001)
+
+#define ID_AA64MMFR1_EL1_CMOW GENMASK(59, 56)
+#define ID_AA64MMFR1_EL1_CMOW_MASK GENMASK(59, 56)
+#define ID_AA64MMFR1_EL1_CMOW_SHIFT 56
+#define ID_AA64MMFR1_EL1_CMOW_WIDTH 4
+#define ID_AA64MMFR1_EL1_CMOW_SIGNED false
+#define ID_AA64MMFR1_EL1_CMOW_NI UL(0b0000)
+#define ID_AA64MMFR1_EL1_CMOW_IMP UL(0b0001)
+
+#define ID_AA64MMFR1_EL1_TIDCP1 GENMASK(55, 52)
+#define ID_AA64MMFR1_EL1_TIDCP1_MASK GENMASK(55, 52)
+#define ID_AA64MMFR1_EL1_TIDCP1_SHIFT 52
+#define ID_AA64MMFR1_EL1_TIDCP1_WIDTH 4
+#define ID_AA64MMFR1_EL1_TIDCP1_SIGNED false
+#define ID_AA64MMFR1_EL1_TIDCP1_NI UL(0b0000)
+#define ID_AA64MMFR1_EL1_TIDCP1_IMP UL(0b0001)
+
+#define ID_AA64MMFR1_EL1_nTLBPA GENMASK(51, 48)
+#define ID_AA64MMFR1_EL1_nTLBPA_MASK GENMASK(51, 48)
+#define ID_AA64MMFR1_EL1_nTLBPA_SHIFT 48
+#define ID_AA64MMFR1_EL1_nTLBPA_WIDTH 4
+#define ID_AA64MMFR1_EL1_nTLBPA_SIGNED false
+#define ID_AA64MMFR1_EL1_nTLBPA_NI UL(0b0000)
+#define ID_AA64MMFR1_EL1_nTLBPA_IMP UL(0b0001)
+
+#define ID_AA64MMFR1_EL1_AFP GENMASK(47, 44)
+#define ID_AA64MMFR1_EL1_AFP_MASK GENMASK(47, 44)
+#define ID_AA64MMFR1_EL1_AFP_SHIFT 44
+#define ID_AA64MMFR1_EL1_AFP_WIDTH 4
+#define ID_AA64MMFR1_EL1_AFP_SIGNED false
+#define ID_AA64MMFR1_EL1_AFP_NI UL(0b0000)
+#define ID_AA64MMFR1_EL1_AFP_IMP UL(0b0001)
+
+#define ID_AA64MMFR1_EL1_HCX GENMASK(43, 40)
+#define ID_AA64MMFR1_EL1_HCX_MASK GENMASK(43, 40)
+#define ID_AA64MMFR1_EL1_HCX_SHIFT 40
+#define ID_AA64MMFR1_EL1_HCX_WIDTH 4
+#define ID_AA64MMFR1_EL1_HCX_SIGNED false
+#define ID_AA64MMFR1_EL1_HCX_NI UL(0b0000)
+#define ID_AA64MMFR1_EL1_HCX_IMP UL(0b0001)
+
+#define ID_AA64MMFR1_EL1_ETS GENMASK(39, 36)
+#define ID_AA64MMFR1_EL1_ETS_MASK GENMASK(39, 36)
+#define ID_AA64MMFR1_EL1_ETS_SHIFT 36
+#define ID_AA64MMFR1_EL1_ETS_WIDTH 4
+#define ID_AA64MMFR1_EL1_ETS_SIGNED false
+#define ID_AA64MMFR1_EL1_ETS_NI UL(0b0000)
+#define ID_AA64MMFR1_EL1_ETS_IMP UL(0b0001)
+
+#define ID_AA64MMFR1_EL1_TWED GENMASK(35, 32)
+#define ID_AA64MMFR1_EL1_TWED_MASK GENMASK(35, 32)
+#define ID_AA64MMFR1_EL1_TWED_SHIFT 32
+#define ID_AA64MMFR1_EL1_TWED_WIDTH 4
+#define ID_AA64MMFR1_EL1_TWED_SIGNED false
+#define ID_AA64MMFR1_EL1_TWED_NI UL(0b0000)
+#define ID_AA64MMFR1_EL1_TWED_IMP UL(0b0001)
+
+#define ID_AA64MMFR1_EL1_XNX GENMASK(31, 28)
+#define ID_AA64MMFR1_EL1_XNX_MASK GENMASK(31, 28)
+#define ID_AA64MMFR1_EL1_XNX_SHIFT 28
+#define ID_AA64MMFR1_EL1_XNX_WIDTH 4
+#define ID_AA64MMFR1_EL1_XNX_SIGNED false
+#define ID_AA64MMFR1_EL1_XNX_NI UL(0b0000)
+#define ID_AA64MMFR1_EL1_XNX_IMP UL(0b0001)
+
+#define ID_AA64MMFR1_EL1_SpecSEI GENMASK(27, 24)
+#define ID_AA64MMFR1_EL1_SpecSEI_MASK GENMASK(27, 24)
+#define ID_AA64MMFR1_EL1_SpecSEI_SHIFT 24
+#define ID_AA64MMFR1_EL1_SpecSEI_WIDTH 4
+#define ID_AA64MMFR1_EL1_SpecSEI_SIGNED false
+#define ID_AA64MMFR1_EL1_SpecSEI_NI UL(0b0000)
+#define ID_AA64MMFR1_EL1_SpecSEI_IMP UL(0b0001)
+
+#define ID_AA64MMFR1_EL1_PAN GENMASK(23, 20)
+#define ID_AA64MMFR1_EL1_PAN_MASK GENMASK(23, 20)
+#define ID_AA64MMFR1_EL1_PAN_SHIFT 20
+#define ID_AA64MMFR1_EL1_PAN_WIDTH 4
+#define ID_AA64MMFR1_EL1_PAN_SIGNED false
+#define ID_AA64MMFR1_EL1_PAN_NI UL(0b0000)
+#define ID_AA64MMFR1_EL1_PAN_IMP UL(0b0001)
+#define ID_AA64MMFR1_EL1_PAN_PAN2 UL(0b0010)
+#define ID_AA64MMFR1_EL1_PAN_PAN3 UL(0b0011)
+
+#define ID_AA64MMFR1_EL1_LO GENMASK(19, 16)
+#define ID_AA64MMFR1_EL1_LO_MASK GENMASK(19, 16)
+#define ID_AA64MMFR1_EL1_LO_SHIFT 16
+#define ID_AA64MMFR1_EL1_LO_WIDTH 4
+#define ID_AA64MMFR1_EL1_LO_SIGNED false
+#define ID_AA64MMFR1_EL1_LO_NI UL(0b0000)
+#define ID_AA64MMFR1_EL1_LO_IMP UL(0b0001)
+
+#define ID_AA64MMFR1_EL1_HPDS GENMASK(15, 12)
+#define ID_AA64MMFR1_EL1_HPDS_MASK GENMASK(15, 12)
+#define ID_AA64MMFR1_EL1_HPDS_SHIFT 12
+#define ID_AA64MMFR1_EL1_HPDS_WIDTH 4
+#define ID_AA64MMFR1_EL1_HPDS_SIGNED false
+#define ID_AA64MMFR1_EL1_HPDS_NI UL(0b0000)
+#define ID_AA64MMFR1_EL1_HPDS_IMP UL(0b0001)
+#define ID_AA64MMFR1_EL1_HPDS_HPDS2 UL(0b0010)
+
+#define ID_AA64MMFR1_EL1_VH GENMASK(11, 8)
+#define ID_AA64MMFR1_EL1_VH_MASK GENMASK(11, 8)
+#define ID_AA64MMFR1_EL1_VH_SHIFT 8
+#define ID_AA64MMFR1_EL1_VH_WIDTH 4
+#define ID_AA64MMFR1_EL1_VH_SIGNED false
+#define ID_AA64MMFR1_EL1_VH_NI UL(0b0000)
+#define ID_AA64MMFR1_EL1_VH_IMP UL(0b0001)
+
+#define ID_AA64MMFR1_EL1_VMIDBits GENMASK(7, 4)
+#define ID_AA64MMFR1_EL1_VMIDBits_MASK GENMASK(7, 4)
+#define ID_AA64MMFR1_EL1_VMIDBits_SHIFT 4
+#define ID_AA64MMFR1_EL1_VMIDBits_WIDTH 4
+#define ID_AA64MMFR1_EL1_VMIDBits_8 UL(0b0000)
+#define ID_AA64MMFR1_EL1_VMIDBits_16 UL(0b0010)
+
+#define ID_AA64MMFR1_EL1_HAFDBS GENMASK(3, 0)
+#define ID_AA64MMFR1_EL1_HAFDBS_MASK GENMASK(3, 0)
+#define ID_AA64MMFR1_EL1_HAFDBS_SHIFT 0
+#define ID_AA64MMFR1_EL1_HAFDBS_WIDTH 4
+#define ID_AA64MMFR1_EL1_HAFDBS_SIGNED false
+#define ID_AA64MMFR1_EL1_HAFDBS_NI UL(0b0000)
+#define ID_AA64MMFR1_EL1_HAFDBS_AF UL(0b0001)
+#define ID_AA64MMFR1_EL1_HAFDBS_DBM UL(0b0010)
+
+#define ID_AA64MMFR1_EL1_RES0 (UL(0))
+#define ID_AA64MMFR1_EL1_RES1 (UL(0))
+#define ID_AA64MMFR1_EL1_UNKN (UL(0))
+
+#define REG_ID_AA64MMFR2_EL1 S3_0_C0_C7_2
+#define SYS_ID_AA64MMFR2_EL1 sys_reg(3, 0, 0, 7, 2)
+#define SYS_ID_AA64MMFR2_EL1_Op0 3
+#define SYS_ID_AA64MMFR2_EL1_Op1 0
+#define SYS_ID_AA64MMFR2_EL1_CRn 0
+#define SYS_ID_AA64MMFR2_EL1_CRm 7
+#define SYS_ID_AA64MMFR2_EL1_Op2 2
+
+#define ID_AA64MMFR2_EL1_E0PD GENMASK(63, 60)
+#define ID_AA64MMFR2_EL1_E0PD_MASK GENMASK(63, 60)
+#define ID_AA64MMFR2_EL1_E0PD_SHIFT 60
+#define ID_AA64MMFR2_EL1_E0PD_WIDTH 4
+#define ID_AA64MMFR2_EL1_E0PD_SIGNED false
+#define ID_AA64MMFR2_EL1_E0PD_NI UL(0b0000)
+#define ID_AA64MMFR2_EL1_E0PD_IMP UL(0b0001)
+
+#define ID_AA64MMFR2_EL1_EVT GENMASK(59, 56)
+#define ID_AA64MMFR2_EL1_EVT_MASK GENMASK(59, 56)
+#define ID_AA64MMFR2_EL1_EVT_SHIFT 56
+#define ID_AA64MMFR2_EL1_EVT_WIDTH 4
+#define ID_AA64MMFR2_EL1_EVT_SIGNED false
+#define ID_AA64MMFR2_EL1_EVT_NI UL(0b0000)
+#define ID_AA64MMFR2_EL1_EVT_IMP UL(0b0001)
+#define ID_AA64MMFR2_EL1_EVT_TTLBxS UL(0b0010)
+
+#define ID_AA64MMFR2_EL1_BBM GENMASK(55, 52)
+#define ID_AA64MMFR2_EL1_BBM_MASK GENMASK(55, 52)
+#define ID_AA64MMFR2_EL1_BBM_SHIFT 52
+#define ID_AA64MMFR2_EL1_BBM_WIDTH 4
+#define ID_AA64MMFR2_EL1_BBM_SIGNED false
+#define ID_AA64MMFR2_EL1_BBM_0 UL(0b0000)
+#define ID_AA64MMFR2_EL1_BBM_1 UL(0b0001)
+#define ID_AA64MMFR2_EL1_BBM_2 UL(0b0010)
+
+#define ID_AA64MMFR2_EL1_TTL GENMASK(51, 48)
+#define ID_AA64MMFR2_EL1_TTL_MASK GENMASK(51, 48)
+#define ID_AA64MMFR2_EL1_TTL_SHIFT 48
+#define ID_AA64MMFR2_EL1_TTL_WIDTH 4
+#define ID_AA64MMFR2_EL1_TTL_SIGNED false
+#define ID_AA64MMFR2_EL1_TTL_NI UL(0b0000)
+#define ID_AA64MMFR2_EL1_TTL_IMP UL(0b0001)
+
+#define ID_AA64MMFR2_EL1_FWB GENMASK(43, 40)
+#define ID_AA64MMFR2_EL1_FWB_MASK GENMASK(43, 40)
+#define ID_AA64MMFR2_EL1_FWB_SHIFT 40
+#define ID_AA64MMFR2_EL1_FWB_WIDTH 4
+#define ID_AA64MMFR2_EL1_FWB_SIGNED false
+#define ID_AA64MMFR2_EL1_FWB_NI UL(0b0000)
+#define ID_AA64MMFR2_EL1_FWB_IMP UL(0b0001)
+
+#define ID_AA64MMFR2_EL1_IDS GENMASK(39, 36)
+#define ID_AA64MMFR2_EL1_IDS_MASK GENMASK(39, 36)
+#define ID_AA64MMFR2_EL1_IDS_SHIFT 36
+#define ID_AA64MMFR2_EL1_IDS_WIDTH 4
+#define ID_AA64MMFR2_EL1_IDS_0x0 UL(0b0000)
+#define ID_AA64MMFR2_EL1_IDS_0x18 UL(0b0001)
+
+#define ID_AA64MMFR2_EL1_AT GENMASK(35, 32)
+#define ID_AA64MMFR2_EL1_AT_MASK GENMASK(35, 32)
+#define ID_AA64MMFR2_EL1_AT_SHIFT 32
+#define ID_AA64MMFR2_EL1_AT_WIDTH 4
+#define ID_AA64MMFR2_EL1_AT_SIGNED false
+#define ID_AA64MMFR2_EL1_AT_NI UL(0b0000)
+#define ID_AA64MMFR2_EL1_AT_IMP UL(0b0001)
+
+#define ID_AA64MMFR2_EL1_ST GENMASK(31, 28)
+#define ID_AA64MMFR2_EL1_ST_MASK GENMASK(31, 28)
+#define ID_AA64MMFR2_EL1_ST_SHIFT 28
+#define ID_AA64MMFR2_EL1_ST_WIDTH 4
+#define ID_AA64MMFR2_EL1_ST_39 UL(0b0000)
+#define ID_AA64MMFR2_EL1_ST_48_47 UL(0b0001)
+
+#define ID_AA64MMFR2_EL1_NV GENMASK(27, 24)
+#define ID_AA64MMFR2_EL1_NV_MASK GENMASK(27, 24)
+#define ID_AA64MMFR2_EL1_NV_SHIFT 24
+#define ID_AA64MMFR2_EL1_NV_WIDTH 4
+#define ID_AA64MMFR2_EL1_NV_SIGNED false
+#define ID_AA64MMFR2_EL1_NV_NI UL(0b0000)
+#define ID_AA64MMFR2_EL1_NV_IMP UL(0b0001)
+#define ID_AA64MMFR2_EL1_NV_NV2 UL(0b0010)
+
+#define ID_AA64MMFR2_EL1_CCIDX GENMASK(23, 20)
+#define ID_AA64MMFR2_EL1_CCIDX_MASK GENMASK(23, 20)
+#define ID_AA64MMFR2_EL1_CCIDX_SHIFT 20
+#define ID_AA64MMFR2_EL1_CCIDX_WIDTH 4
+#define ID_AA64MMFR2_EL1_CCIDX_32 UL(0b0000)
+#define ID_AA64MMFR2_EL1_CCIDX_64 UL(0b0001)
+
+#define ID_AA64MMFR2_EL1_VARange GENMASK(19, 16)
+#define ID_AA64MMFR2_EL1_VARange_MASK GENMASK(19, 16)
+#define ID_AA64MMFR2_EL1_VARange_SHIFT 16
+#define ID_AA64MMFR2_EL1_VARange_WIDTH 4
+#define ID_AA64MMFR2_EL1_VARange_48 UL(0b0000)
+#define ID_AA64MMFR2_EL1_VARange_52 UL(0b0001)
+
+#define ID_AA64MMFR2_EL1_IESB GENMASK(15, 12)
+#define ID_AA64MMFR2_EL1_IESB_MASK GENMASK(15, 12)
+#define ID_AA64MMFR2_EL1_IESB_SHIFT 12
+#define ID_AA64MMFR2_EL1_IESB_WIDTH 4
+#define ID_AA64MMFR2_EL1_IESB_SIGNED false
+#define ID_AA64MMFR2_EL1_IESB_NI UL(0b0000)
+#define ID_AA64MMFR2_EL1_IESB_IMP UL(0b0001)
+
+#define ID_AA64MMFR2_EL1_LSM GENMASK(11, 8)
+#define ID_AA64MMFR2_EL1_LSM_MASK GENMASK(11, 8)
+#define ID_AA64MMFR2_EL1_LSM_SHIFT 8
+#define ID_AA64MMFR2_EL1_LSM_WIDTH 4
+#define ID_AA64MMFR2_EL1_LSM_SIGNED false
+#define ID_AA64MMFR2_EL1_LSM_NI UL(0b0000)
+#define ID_AA64MMFR2_EL1_LSM_IMP UL(0b0001)
+
+#define ID_AA64MMFR2_EL1_UAO GENMASK(7, 4)
+#define ID_AA64MMFR2_EL1_UAO_MASK GENMASK(7, 4)
+#define ID_AA64MMFR2_EL1_UAO_SHIFT 4
+#define ID_AA64MMFR2_EL1_UAO_WIDTH 4
+#define ID_AA64MMFR2_EL1_UAO_SIGNED false
+#define ID_AA64MMFR2_EL1_UAO_NI UL(0b0000)
+#define ID_AA64MMFR2_EL1_UAO_IMP UL(0b0001)
+
+#define ID_AA64MMFR2_EL1_CnP GENMASK(3, 0)
+#define ID_AA64MMFR2_EL1_CnP_MASK GENMASK(3, 0)
+#define ID_AA64MMFR2_EL1_CnP_SHIFT 0
+#define ID_AA64MMFR2_EL1_CnP_WIDTH 4
+#define ID_AA64MMFR2_EL1_CnP_SIGNED false
+#define ID_AA64MMFR2_EL1_CnP_NI UL(0b0000)
+#define ID_AA64MMFR2_EL1_CnP_IMP UL(0b0001)
+
+#define ID_AA64MMFR2_EL1_RES0 (UL(0) | GENMASK_ULL(47, 44))
+#define ID_AA64MMFR2_EL1_RES1 (UL(0))
+#define ID_AA64MMFR2_EL1_UNKN (UL(0))
+
+#define REG_ID_AA64MMFR3_EL1 S3_0_C0_C7_3
+#define SYS_ID_AA64MMFR3_EL1 sys_reg(3, 0, 0, 7, 3)
+#define SYS_ID_AA64MMFR3_EL1_Op0 3
+#define SYS_ID_AA64MMFR3_EL1_Op1 0
+#define SYS_ID_AA64MMFR3_EL1_CRn 0
+#define SYS_ID_AA64MMFR3_EL1_CRm 7
+#define SYS_ID_AA64MMFR3_EL1_Op2 3
+
+#define ID_AA64MMFR3_EL1_Spec_FPACC GENMASK(63, 60)
+#define ID_AA64MMFR3_EL1_Spec_FPACC_MASK GENMASK(63, 60)
+#define ID_AA64MMFR3_EL1_Spec_FPACC_SHIFT 60
+#define ID_AA64MMFR3_EL1_Spec_FPACC_WIDTH 4
+#define ID_AA64MMFR3_EL1_Spec_FPACC_SIGNED false
+#define ID_AA64MMFR3_EL1_Spec_FPACC_NI UL(0b0000)
+#define ID_AA64MMFR3_EL1_Spec_FPACC_IMP UL(0b0001)
+
+#define ID_AA64MMFR3_EL1_ADERR GENMASK(59, 56)
+#define ID_AA64MMFR3_EL1_ADERR_MASK GENMASK(59, 56)
+#define ID_AA64MMFR3_EL1_ADERR_SHIFT 56
+#define ID_AA64MMFR3_EL1_ADERR_WIDTH 4
+#define ID_AA64MMFR3_EL1_ADERR_SIGNED false
+#define ID_AA64MMFR3_EL1_ADERR_NI UL(0b0000)
+#define ID_AA64MMFR3_EL1_ADERR_DEV_ASYNC UL(0b0001)
+#define ID_AA64MMFR3_EL1_ADERR_FEAT_ADERR UL(0b0010)
+#define ID_AA64MMFR3_EL1_ADERR_FEAT_ADERR_IND UL(0b0011)
+
+#define ID_AA64MMFR3_EL1_SDERR GENMASK(55, 52)
+#define ID_AA64MMFR3_EL1_SDERR_MASK GENMASK(55, 52)
+#define ID_AA64MMFR3_EL1_SDERR_SHIFT 52
+#define ID_AA64MMFR3_EL1_SDERR_WIDTH 4
+#define ID_AA64MMFR3_EL1_SDERR_SIGNED false
+#define ID_AA64MMFR3_EL1_SDERR_NI UL(0b0000)
+#define ID_AA64MMFR3_EL1_SDERR_DEV_SYNC UL(0b0001)
+#define ID_AA64MMFR3_EL1_SDERR_FEAT_ADERR UL(0b0010)
+#define ID_AA64MMFR3_EL1_SDERR_FEAT_ADERR_IND UL(0b0011)
+
+#define ID_AA64MMFR3_EL1_ANERR GENMASK(47, 44)
+#define ID_AA64MMFR3_EL1_ANERR_MASK GENMASK(47, 44)
+#define ID_AA64MMFR3_EL1_ANERR_SHIFT 44
+#define ID_AA64MMFR3_EL1_ANERR_WIDTH 4
+#define ID_AA64MMFR3_EL1_ANERR_SIGNED false
+#define ID_AA64MMFR3_EL1_ANERR_NI UL(0b0000)
+#define ID_AA64MMFR3_EL1_ANERR_ASYNC UL(0b0001)
+#define ID_AA64MMFR3_EL1_ANERR_FEAT_ANERR UL(0b0010)
+#define ID_AA64MMFR3_EL1_ANERR_FEAT_ANERR_IND UL(0b0011)
+
+#define ID_AA64MMFR3_EL1_SNERR GENMASK(43, 40)
+#define ID_AA64MMFR3_EL1_SNERR_MASK GENMASK(43, 40)
+#define ID_AA64MMFR3_EL1_SNERR_SHIFT 40
+#define ID_AA64MMFR3_EL1_SNERR_WIDTH 4
+#define ID_AA64MMFR3_EL1_SNERR_SIGNED false
+#define ID_AA64MMFR3_EL1_SNERR_NI UL(0b0000)
+#define ID_AA64MMFR3_EL1_SNERR_SYNC UL(0b0001)
+#define ID_AA64MMFR3_EL1_SNERR_FEAT_ANERR UL(0b0010)
+#define ID_AA64MMFR3_EL1_SNERR_FEAT_ANERR_IND UL(0b0011)
+
+#define ID_AA64MMFR3_EL1_D128_2 GENMASK(39, 36)
+#define ID_AA64MMFR3_EL1_D128_2_MASK GENMASK(39, 36)
+#define ID_AA64MMFR3_EL1_D128_2_SHIFT 36
+#define ID_AA64MMFR3_EL1_D128_2_WIDTH 4
+#define ID_AA64MMFR3_EL1_D128_2_SIGNED false
+#define ID_AA64MMFR3_EL1_D128_2_NI UL(0b0000)
+#define ID_AA64MMFR3_EL1_D128_2_IMP UL(0b0001)
+
+#define ID_AA64MMFR3_EL1_D128 GENMASK(35, 32)
+#define ID_AA64MMFR3_EL1_D128_MASK GENMASK(35, 32)
+#define ID_AA64MMFR3_EL1_D128_SHIFT 32
+#define ID_AA64MMFR3_EL1_D128_WIDTH 4
+#define ID_AA64MMFR3_EL1_D128_SIGNED false
+#define ID_AA64MMFR3_EL1_D128_NI UL(0b0000)
+#define ID_AA64MMFR3_EL1_D128_IMP UL(0b0001)
+
+#define ID_AA64MMFR3_EL1_MEC GENMASK(31, 28)
+#define ID_AA64MMFR3_EL1_MEC_MASK GENMASK(31, 28)
+#define ID_AA64MMFR3_EL1_MEC_SHIFT 28
+#define ID_AA64MMFR3_EL1_MEC_WIDTH 4
+#define ID_AA64MMFR3_EL1_MEC_SIGNED false
+#define ID_AA64MMFR3_EL1_MEC_NI UL(0b0000)
+#define ID_AA64MMFR3_EL1_MEC_IMP UL(0b0001)
+
+#define ID_AA64MMFR3_EL1_AIE GENMASK(27, 24)
+#define ID_AA64MMFR3_EL1_AIE_MASK GENMASK(27, 24)
+#define ID_AA64MMFR3_EL1_AIE_SHIFT 24
+#define ID_AA64MMFR3_EL1_AIE_WIDTH 4
+#define ID_AA64MMFR3_EL1_AIE_SIGNED false
+#define ID_AA64MMFR3_EL1_AIE_NI UL(0b0000)
+#define ID_AA64MMFR3_EL1_AIE_IMP UL(0b0001)
+
+#define ID_AA64MMFR3_EL1_S2POE GENMASK(23, 20)
+#define ID_AA64MMFR3_EL1_S2POE_MASK GENMASK(23, 20)
+#define ID_AA64MMFR3_EL1_S2POE_SHIFT 20
+#define ID_AA64MMFR3_EL1_S2POE_WIDTH 4
+#define ID_AA64MMFR3_EL1_S2POE_SIGNED false
+#define ID_AA64MMFR3_EL1_S2POE_NI UL(0b0000)
+#define ID_AA64MMFR3_EL1_S2POE_IMP UL(0b0001)
+
+#define ID_AA64MMFR3_EL1_S1POE GENMASK(19, 16)
+#define ID_AA64MMFR3_EL1_S1POE_MASK GENMASK(19, 16)
+#define ID_AA64MMFR3_EL1_S1POE_SHIFT 16
+#define ID_AA64MMFR3_EL1_S1POE_WIDTH 4
+#define ID_AA64MMFR3_EL1_S1POE_SIGNED false
+#define ID_AA64MMFR3_EL1_S1POE_NI UL(0b0000)
+#define ID_AA64MMFR3_EL1_S1POE_IMP UL(0b0001)
+
+#define ID_AA64MMFR3_EL1_S2PIE GENMASK(15, 12)
+#define ID_AA64MMFR3_EL1_S2PIE_MASK GENMASK(15, 12)
+#define ID_AA64MMFR3_EL1_S2PIE_SHIFT 12
+#define ID_AA64MMFR3_EL1_S2PIE_WIDTH 4
+#define ID_AA64MMFR3_EL1_S2PIE_SIGNED false
+#define ID_AA64MMFR3_EL1_S2PIE_NI UL(0b0000)
+#define ID_AA64MMFR3_EL1_S2PIE_IMP UL(0b0001)
+
+#define ID_AA64MMFR3_EL1_S1PIE GENMASK(11, 8)
+#define ID_AA64MMFR3_EL1_S1PIE_MASK GENMASK(11, 8)
+#define ID_AA64MMFR3_EL1_S1PIE_SHIFT 8
+#define ID_AA64MMFR3_EL1_S1PIE_WIDTH 4
+#define ID_AA64MMFR3_EL1_S1PIE_SIGNED false
+#define ID_AA64MMFR3_EL1_S1PIE_NI UL(0b0000)
+#define ID_AA64MMFR3_EL1_S1PIE_IMP UL(0b0001)
+
+#define ID_AA64MMFR3_EL1_SCTLRX GENMASK(7, 4)
+#define ID_AA64MMFR3_EL1_SCTLRX_MASK GENMASK(7, 4)
+#define ID_AA64MMFR3_EL1_SCTLRX_SHIFT 4
+#define ID_AA64MMFR3_EL1_SCTLRX_WIDTH 4
+#define ID_AA64MMFR3_EL1_SCTLRX_SIGNED false
+#define ID_AA64MMFR3_EL1_SCTLRX_NI UL(0b0000)
+#define ID_AA64MMFR3_EL1_SCTLRX_IMP UL(0b0001)
+
+#define ID_AA64MMFR3_EL1_TCRX GENMASK(3, 0)
+#define ID_AA64MMFR3_EL1_TCRX_MASK GENMASK(3, 0)
+#define ID_AA64MMFR3_EL1_TCRX_SHIFT 0
+#define ID_AA64MMFR3_EL1_TCRX_WIDTH 4
+#define ID_AA64MMFR3_EL1_TCRX_SIGNED false
+#define ID_AA64MMFR3_EL1_TCRX_NI UL(0b0000)
+#define ID_AA64MMFR3_EL1_TCRX_IMP UL(0b0001)
+
+#define ID_AA64MMFR3_EL1_RES0 (UL(0) | GENMASK_ULL(51, 48))
+#define ID_AA64MMFR3_EL1_RES1 (UL(0))
+#define ID_AA64MMFR3_EL1_UNKN (UL(0))
+
+#define REG_SCTLR_EL1 S3_0_C1_C0_0
+#define SYS_SCTLR_EL1 sys_reg(3, 0, 1, 0, 0)
+#define SYS_SCTLR_EL1_Op0 3
+#define SYS_SCTLR_EL1_Op1 0
+#define SYS_SCTLR_EL1_CRn 1
+#define SYS_SCTLR_EL1_CRm 0
+#define SYS_SCTLR_EL1_Op2 0
+
+#define SCTLR_EL1_TIDCP GENMASK(63, 63)
+#define SCTLR_EL1_TIDCP_MASK GENMASK(63, 63)
+#define SCTLR_EL1_TIDCP_SHIFT 63
+#define SCTLR_EL1_TIDCP_WIDTH 1
+
+#define SCTLR_EL1_SPINTMASK GENMASK(62, 62)
+#define SCTLR_EL1_SPINTMASK_MASK GENMASK(62, 62)
+#define SCTLR_EL1_SPINTMASK_SHIFT 62
+#define SCTLR_EL1_SPINTMASK_WIDTH 1
+
+#define SCTLR_EL1_NMI GENMASK(61, 61)
+#define SCTLR_EL1_NMI_MASK GENMASK(61, 61)
+#define SCTLR_EL1_NMI_SHIFT 61
+#define SCTLR_EL1_NMI_WIDTH 1
+
+#define SCTLR_EL1_EnTP2 GENMASK(60, 60)
+#define SCTLR_EL1_EnTP2_MASK GENMASK(60, 60)
+#define SCTLR_EL1_EnTP2_SHIFT 60
+#define SCTLR_EL1_EnTP2_WIDTH 1
+
+#define SCTLR_EL1_EPAN GENMASK(57, 57)
+#define SCTLR_EL1_EPAN_MASK GENMASK(57, 57)
+#define SCTLR_EL1_EPAN_SHIFT 57
+#define SCTLR_EL1_EPAN_WIDTH 1
+
+#define SCTLR_EL1_EnALS GENMASK(56, 56)
+#define SCTLR_EL1_EnALS_MASK GENMASK(56, 56)
+#define SCTLR_EL1_EnALS_SHIFT 56
+#define SCTLR_EL1_EnALS_WIDTH 1
+
+#define SCTLR_EL1_EnAS0 GENMASK(55, 55)
+#define SCTLR_EL1_EnAS0_MASK GENMASK(55, 55)
+#define SCTLR_EL1_EnAS0_SHIFT 55
+#define SCTLR_EL1_EnAS0_WIDTH 1
+
+#define SCTLR_EL1_EnASR GENMASK(54, 54)
+#define SCTLR_EL1_EnASR_MASK GENMASK(54, 54)
+#define SCTLR_EL1_EnASR_SHIFT 54
+#define SCTLR_EL1_EnASR_WIDTH 1
+
+#define SCTLR_EL1_TME GENMASK(53, 53)
+#define SCTLR_EL1_TME_MASK GENMASK(53, 53)
+#define SCTLR_EL1_TME_SHIFT 53
+#define SCTLR_EL1_TME_WIDTH 1
+
+#define SCTLR_EL1_TME0 GENMASK(52, 52)
+#define SCTLR_EL1_TME0_MASK GENMASK(52, 52)
+#define SCTLR_EL1_TME0_SHIFT 52
+#define SCTLR_EL1_TME0_WIDTH 1
+
+#define SCTLR_EL1_TMT GENMASK(51, 51)
+#define SCTLR_EL1_TMT_MASK GENMASK(51, 51)
+#define SCTLR_EL1_TMT_SHIFT 51
+#define SCTLR_EL1_TMT_WIDTH 1
+
+#define SCTLR_EL1_TMT0 GENMASK(50, 50)
+#define SCTLR_EL1_TMT0_MASK GENMASK(50, 50)
+#define SCTLR_EL1_TMT0_SHIFT 50
+#define SCTLR_EL1_TMT0_WIDTH 1
+
+#define SCTLR_EL1_TWEDEL GENMASK(49, 46)
+#define SCTLR_EL1_TWEDEL_MASK GENMASK(49, 46)
+#define SCTLR_EL1_TWEDEL_SHIFT 46
+#define SCTLR_EL1_TWEDEL_WIDTH 4
+
+#define SCTLR_EL1_TWEDEn GENMASK(45, 45)
+#define SCTLR_EL1_TWEDEn_MASK GENMASK(45, 45)
+#define SCTLR_EL1_TWEDEn_SHIFT 45
+#define SCTLR_EL1_TWEDEn_WIDTH 1
+
+#define SCTLR_EL1_DSSBS GENMASK(44, 44)
+#define SCTLR_EL1_DSSBS_MASK GENMASK(44, 44)
+#define SCTLR_EL1_DSSBS_SHIFT 44
+#define SCTLR_EL1_DSSBS_WIDTH 1
+
+#define SCTLR_EL1_ATA GENMASK(43, 43)
+#define SCTLR_EL1_ATA_MASK GENMASK(43, 43)
+#define SCTLR_EL1_ATA_SHIFT 43
+#define SCTLR_EL1_ATA_WIDTH 1
+
+#define SCTLR_EL1_ATA0 GENMASK(42, 42)
+#define SCTLR_EL1_ATA0_MASK GENMASK(42, 42)
+#define SCTLR_EL1_ATA0_SHIFT 42
+#define SCTLR_EL1_ATA0_WIDTH 1
+
+#define SCTLR_EL1_TCF GENMASK(41, 40)
+#define SCTLR_EL1_TCF_MASK GENMASK(41, 40)
+#define SCTLR_EL1_TCF_SHIFT 40
+#define SCTLR_EL1_TCF_WIDTH 2
+#define SCTLR_EL1_TCF_NONE UL(0b00)
+#define SCTLR_EL1_TCF_SYNC UL(0b01)
+#define SCTLR_EL1_TCF_ASYNC UL(0b10)
+#define SCTLR_EL1_TCF_ASYMM UL(0b11)
+
+#define SCTLR_EL1_TCF0 GENMASK(39, 38)
+#define SCTLR_EL1_TCF0_MASK GENMASK(39, 38)
+#define SCTLR_EL1_TCF0_SHIFT 38
+#define SCTLR_EL1_TCF0_WIDTH 2
+#define SCTLR_EL1_TCF0_NONE UL(0b00)
+#define SCTLR_EL1_TCF0_SYNC UL(0b01)
+#define SCTLR_EL1_TCF0_ASYNC UL(0b10)
+#define SCTLR_EL1_TCF0_ASYMM UL(0b11)
+
+#define SCTLR_EL1_ITFSB GENMASK(37, 37)
+#define SCTLR_EL1_ITFSB_MASK GENMASK(37, 37)
+#define SCTLR_EL1_ITFSB_SHIFT 37
+#define SCTLR_EL1_ITFSB_WIDTH 1
+
+#define SCTLR_EL1_BT1 GENMASK(36, 36)
+#define SCTLR_EL1_BT1_MASK GENMASK(36, 36)
+#define SCTLR_EL1_BT1_SHIFT 36
+#define SCTLR_EL1_BT1_WIDTH 1
+
+#define SCTLR_EL1_BT0 GENMASK(35, 35)
+#define SCTLR_EL1_BT0_MASK GENMASK(35, 35)
+#define SCTLR_EL1_BT0_SHIFT 35
+#define SCTLR_EL1_BT0_WIDTH 1
+
+#define SCTLR_EL1_MSCEn GENMASK(33, 33)
+#define SCTLR_EL1_MSCEn_MASK GENMASK(33, 33)
+#define SCTLR_EL1_MSCEn_SHIFT 33
+#define SCTLR_EL1_MSCEn_WIDTH 1
+
+#define SCTLR_EL1_CMOW GENMASK(32, 32)
+#define SCTLR_EL1_CMOW_MASK GENMASK(32, 32)
+#define SCTLR_EL1_CMOW_SHIFT 32
+#define SCTLR_EL1_CMOW_WIDTH 1
+
+#define SCTLR_EL1_EnIA GENMASK(31, 31)
+#define SCTLR_EL1_EnIA_MASK GENMASK(31, 31)
+#define SCTLR_EL1_EnIA_SHIFT 31
+#define SCTLR_EL1_EnIA_WIDTH 1
+
+#define SCTLR_EL1_EnIB GENMASK(30, 30)
+#define SCTLR_EL1_EnIB_MASK GENMASK(30, 30)
+#define SCTLR_EL1_EnIB_SHIFT 30
+#define SCTLR_EL1_EnIB_WIDTH 1
+
+#define SCTLR_EL1_LSMAOE GENMASK(29, 29)
+#define SCTLR_EL1_LSMAOE_MASK GENMASK(29, 29)
+#define SCTLR_EL1_LSMAOE_SHIFT 29
+#define SCTLR_EL1_LSMAOE_WIDTH 1
+
+#define SCTLR_EL1_nTLSMD GENMASK(28, 28)
+#define SCTLR_EL1_nTLSMD_MASK GENMASK(28, 28)
+#define SCTLR_EL1_nTLSMD_SHIFT 28
+#define SCTLR_EL1_nTLSMD_WIDTH 1
+
+#define SCTLR_EL1_EnDA GENMASK(27, 27)
+#define SCTLR_EL1_EnDA_MASK GENMASK(27, 27)
+#define SCTLR_EL1_EnDA_SHIFT 27
+#define SCTLR_EL1_EnDA_WIDTH 1
+
+#define SCTLR_EL1_UCI GENMASK(26, 26)
+#define SCTLR_EL1_UCI_MASK GENMASK(26, 26)
+#define SCTLR_EL1_UCI_SHIFT 26
+#define SCTLR_EL1_UCI_WIDTH 1
+
+#define SCTLR_EL1_EE GENMASK(25, 25)
+#define SCTLR_EL1_EE_MASK GENMASK(25, 25)
+#define SCTLR_EL1_EE_SHIFT 25
+#define SCTLR_EL1_EE_WIDTH 1
+
+#define SCTLR_EL1_E0E GENMASK(24, 24)
+#define SCTLR_EL1_E0E_MASK GENMASK(24, 24)
+#define SCTLR_EL1_E0E_SHIFT 24
+#define SCTLR_EL1_E0E_WIDTH 1
+
+#define SCTLR_EL1_SPAN GENMASK(23, 23)
+#define SCTLR_EL1_SPAN_MASK GENMASK(23, 23)
+#define SCTLR_EL1_SPAN_SHIFT 23
+#define SCTLR_EL1_SPAN_WIDTH 1
+
+#define SCTLR_EL1_EIS GENMASK(22, 22)
+#define SCTLR_EL1_EIS_MASK GENMASK(22, 22)
+#define SCTLR_EL1_EIS_SHIFT 22
+#define SCTLR_EL1_EIS_WIDTH 1
+
+#define SCTLR_EL1_IESB GENMASK(21, 21)
+#define SCTLR_EL1_IESB_MASK GENMASK(21, 21)
+#define SCTLR_EL1_IESB_SHIFT 21
+#define SCTLR_EL1_IESB_WIDTH 1
+
+#define SCTLR_EL1_TSCXT GENMASK(20, 20)
+#define SCTLR_EL1_TSCXT_MASK GENMASK(20, 20)
+#define SCTLR_EL1_TSCXT_SHIFT 20
+#define SCTLR_EL1_TSCXT_WIDTH 1
+
+#define SCTLR_EL1_WXN GENMASK(19, 19)
+#define SCTLR_EL1_WXN_MASK GENMASK(19, 19)
+#define SCTLR_EL1_WXN_SHIFT 19
+#define SCTLR_EL1_WXN_WIDTH 1
+
+#define SCTLR_EL1_nTWE GENMASK(18, 18)
+#define SCTLR_EL1_nTWE_MASK GENMASK(18, 18)
+#define SCTLR_EL1_nTWE_SHIFT 18
+#define SCTLR_EL1_nTWE_WIDTH 1
+
+#define SCTLR_EL1_nTWI GENMASK(16, 16)
+#define SCTLR_EL1_nTWI_MASK GENMASK(16, 16)
+#define SCTLR_EL1_nTWI_SHIFT 16
+#define SCTLR_EL1_nTWI_WIDTH 1
+
+#define SCTLR_EL1_UCT GENMASK(15, 15)
+#define SCTLR_EL1_UCT_MASK GENMASK(15, 15)
+#define SCTLR_EL1_UCT_SHIFT 15
+#define SCTLR_EL1_UCT_WIDTH 1
+
+#define SCTLR_EL1_DZE GENMASK(14, 14)
+#define SCTLR_EL1_DZE_MASK GENMASK(14, 14)
+#define SCTLR_EL1_DZE_SHIFT 14
+#define SCTLR_EL1_DZE_WIDTH 1
+
+#define SCTLR_EL1_EnDB GENMASK(13, 13)
+#define SCTLR_EL1_EnDB_MASK GENMASK(13, 13)
+#define SCTLR_EL1_EnDB_SHIFT 13
+#define SCTLR_EL1_EnDB_WIDTH 1
+
+#define SCTLR_EL1_I GENMASK(12, 12)
+#define SCTLR_EL1_I_MASK GENMASK(12, 12)
+#define SCTLR_EL1_I_SHIFT 12
+#define SCTLR_EL1_I_WIDTH 1
+
+#define SCTLR_EL1_EOS GENMASK(11, 11)
+#define SCTLR_EL1_EOS_MASK GENMASK(11, 11)
+#define SCTLR_EL1_EOS_SHIFT 11
+#define SCTLR_EL1_EOS_WIDTH 1
+
+#define SCTLR_EL1_EnRCTX GENMASK(10, 10)
+#define SCTLR_EL1_EnRCTX_MASK GENMASK(10, 10)
+#define SCTLR_EL1_EnRCTX_SHIFT 10
+#define SCTLR_EL1_EnRCTX_WIDTH 1
+
+#define SCTLR_EL1_UMA GENMASK(9, 9)
+#define SCTLR_EL1_UMA_MASK GENMASK(9, 9)
+#define SCTLR_EL1_UMA_SHIFT 9
+#define SCTLR_EL1_UMA_WIDTH 1
+
+#define SCTLR_EL1_SED GENMASK(8, 8)
+#define SCTLR_EL1_SED_MASK GENMASK(8, 8)
+#define SCTLR_EL1_SED_SHIFT 8
+#define SCTLR_EL1_SED_WIDTH 1
+
+#define SCTLR_EL1_ITD GENMASK(7, 7)
+#define SCTLR_EL1_ITD_MASK GENMASK(7, 7)
+#define SCTLR_EL1_ITD_SHIFT 7
+#define SCTLR_EL1_ITD_WIDTH 1
+
+#define SCTLR_EL1_nAA GENMASK(6, 6)
+#define SCTLR_EL1_nAA_MASK GENMASK(6, 6)
+#define SCTLR_EL1_nAA_SHIFT 6
+#define SCTLR_EL1_nAA_WIDTH 1
+
+#define SCTLR_EL1_CP15BEN GENMASK(5, 5)
+#define SCTLR_EL1_CP15BEN_MASK GENMASK(5, 5)
+#define SCTLR_EL1_CP15BEN_SHIFT 5
+#define SCTLR_EL1_CP15BEN_WIDTH 1
+
+#define SCTLR_EL1_SA0 GENMASK(4, 4)
+#define SCTLR_EL1_SA0_MASK GENMASK(4, 4)
+#define SCTLR_EL1_SA0_SHIFT 4
+#define SCTLR_EL1_SA0_WIDTH 1
+
+#define SCTLR_EL1_SA GENMASK(3, 3)
+#define SCTLR_EL1_SA_MASK GENMASK(3, 3)
+#define SCTLR_EL1_SA_SHIFT 3
+#define SCTLR_EL1_SA_WIDTH 1
+
+#define SCTLR_EL1_C GENMASK(2, 2)
+#define SCTLR_EL1_C_MASK GENMASK(2, 2)
+#define SCTLR_EL1_C_SHIFT 2
+#define SCTLR_EL1_C_WIDTH 1
+
+#define SCTLR_EL1_A GENMASK(1, 1)
+#define SCTLR_EL1_A_MASK GENMASK(1, 1)
+#define SCTLR_EL1_A_SHIFT 1
+#define SCTLR_EL1_A_WIDTH 1
+
+#define SCTLR_EL1_M GENMASK(0, 0)
+#define SCTLR_EL1_M_MASK GENMASK(0, 0)
+#define SCTLR_EL1_M_SHIFT 0
+#define SCTLR_EL1_M_WIDTH 1
+
+#define SCTLR_EL1_RES0 (UL(0) | GENMASK_ULL(59, 58) | GENMASK_ULL(34, 34) | GENMASK_ULL(17, 17))
+#define SCTLR_EL1_RES1 (UL(0))
+#define SCTLR_EL1_UNKN (UL(0))
+
+#define CPACR_ELx_TTA GENMASK(28, 28)
+#define CPACR_ELx_TTA_MASK GENMASK(28, 28)
+#define CPACR_ELx_TTA_SHIFT 28
+#define CPACR_ELx_TTA_WIDTH 1
+
+#define CPACR_ELx_SMEN GENMASK(25, 24)
+#define CPACR_ELx_SMEN_MASK GENMASK(25, 24)
+#define CPACR_ELx_SMEN_SHIFT 24
+#define CPACR_ELx_SMEN_WIDTH 2
+
+#define CPACR_ELx_FPEN GENMASK(21, 20)
+#define CPACR_ELx_FPEN_MASK GENMASK(21, 20)
+#define CPACR_ELx_FPEN_SHIFT 20
+#define CPACR_ELx_FPEN_WIDTH 2
+
+#define CPACR_ELx_ZEN GENMASK(17, 16)
+#define CPACR_ELx_ZEN_MASK GENMASK(17, 16)
+#define CPACR_ELx_ZEN_SHIFT 16
+#define CPACR_ELx_ZEN_WIDTH 2
+
+#define CPACR_ELx_RES0 (UL(0) | GENMASK_ULL(63, 29) | GENMASK_ULL(27, 26) | GENMASK_ULL(23, 22) | GENMASK_ULL(19, 18) | GENMASK_ULL(15, 0))
+#define CPACR_ELx_RES1 (UL(0))
+#define CPACR_ELx_UNKN (UL(0))
+
+#define REG_CPACR_EL1 S3_0_C1_C0_2
+#define SYS_CPACR_EL1 sys_reg(3, 0, 1, 0, 2)
+#define SYS_CPACR_EL1_Op0 3
+#define SYS_CPACR_EL1_Op1 0
+#define SYS_CPACR_EL1_CRn 1
+#define SYS_CPACR_EL1_CRm 0
+#define SYS_CPACR_EL1_Op2 2
+
+/* For CPACR_EL1 fields see CPACR_ELx */
+
+#define REG_SMPRI_EL1 S3_0_C1_C2_4
+#define SYS_SMPRI_EL1 sys_reg(3, 0, 1, 2, 4)
+#define SYS_SMPRI_EL1_Op0 3
+#define SYS_SMPRI_EL1_Op1 0
+#define SYS_SMPRI_EL1_CRn 1
+#define SYS_SMPRI_EL1_CRm 2
+#define SYS_SMPRI_EL1_Op2 4
+
+#define SMPRI_EL1_PRIORITY GENMASK(3, 0)
+#define SMPRI_EL1_PRIORITY_MASK GENMASK(3, 0)
+#define SMPRI_EL1_PRIORITY_SHIFT 0
+#define SMPRI_EL1_PRIORITY_WIDTH 4
+
+#define SMPRI_EL1_RES0 (UL(0) | GENMASK_ULL(63, 4))
+#define SMPRI_EL1_RES1 (UL(0))
+#define SMPRI_EL1_UNKN (UL(0))
+
+#define ZCR_ELx_LEN GENMASK(3, 0)
+#define ZCR_ELx_LEN_MASK GENMASK(3, 0)
+#define ZCR_ELx_LEN_SHIFT 0
+#define ZCR_ELx_LEN_WIDTH 4
+
+#define ZCR_ELx_RES0 (UL(0) | GENMASK_ULL(63, 9))
+#define ZCR_ELx_RES1 (UL(0))
+#define ZCR_ELx_UNKN (UL(0))
+
+#define REG_ZCR_EL1 S3_0_C1_C2_0
+#define SYS_ZCR_EL1 sys_reg(3, 0, 1, 2, 0)
+#define SYS_ZCR_EL1_Op0 3
+#define SYS_ZCR_EL1_Op1 0
+#define SYS_ZCR_EL1_CRn 1
+#define SYS_ZCR_EL1_CRm 2
+#define SYS_ZCR_EL1_Op2 0
+
+/* For ZCR_EL1 fields see ZCR_ELx */
+
+#define SMCR_ELx_FA64 GENMASK(31, 31)
+#define SMCR_ELx_FA64_MASK GENMASK(31, 31)
+#define SMCR_ELx_FA64_SHIFT 31
+#define SMCR_ELx_FA64_WIDTH 1
+
+#define SMCR_ELx_EZT0 GENMASK(30, 30)
+#define SMCR_ELx_EZT0_MASK GENMASK(30, 30)
+#define SMCR_ELx_EZT0_SHIFT 30
+#define SMCR_ELx_EZT0_WIDTH 1
+
+#define SMCR_ELx_LEN GENMASK(3, 0)
+#define SMCR_ELx_LEN_MASK GENMASK(3, 0)
+#define SMCR_ELx_LEN_SHIFT 0
+#define SMCR_ELx_LEN_WIDTH 4
+
+#define SMCR_ELx_RES0 (UL(0) | GENMASK_ULL(63, 32) | GENMASK_ULL(29, 9))
+#define SMCR_ELx_RES1 (UL(0))
+#define SMCR_ELx_UNKN (UL(0))
+
+#define REG_SMCR_EL1 S3_0_C1_C2_6
+#define SYS_SMCR_EL1 sys_reg(3, 0, 1, 2, 6)
+#define SYS_SMCR_EL1_Op0 3
+#define SYS_SMCR_EL1_Op1 0
+#define SYS_SMCR_EL1_CRn 1
+#define SYS_SMCR_EL1_CRm 2
+#define SYS_SMCR_EL1_Op2 6
+
+/* For SMCR_EL1 fields see SMCR_ELx */
+
+#define REG_ALLINT S3_0_C4_C3_0
+#define SYS_ALLINT sys_reg(3, 0, 4, 3, 0)
+#define SYS_ALLINT_Op0 3
+#define SYS_ALLINT_Op1 0
+#define SYS_ALLINT_CRn 4
+#define SYS_ALLINT_CRm 3
+#define SYS_ALLINT_Op2 0
+
+#define ALLINT_ALLINT GENMASK(13, 13)
+#define ALLINT_ALLINT_MASK GENMASK(13, 13)
+#define ALLINT_ALLINT_SHIFT 13
+#define ALLINT_ALLINT_WIDTH 1
+
+#define ALLINT_RES0 (UL(0) | GENMASK_ULL(63, 14) | GENMASK_ULL(12, 0))
+#define ALLINT_RES1 (UL(0))
+#define ALLINT_UNKN (UL(0))
+
+#define REG_FAR_EL1 S3_0_C6_C0_0
+#define SYS_FAR_EL1 sys_reg(3, 0, 6, 0, 0)
+#define SYS_FAR_EL1_Op0 3
+#define SYS_FAR_EL1_Op1 0
+#define SYS_FAR_EL1_CRn 6
+#define SYS_FAR_EL1_CRm 0
+#define SYS_FAR_EL1_Op2 0
+
+#define FAR_EL1_ADDR GENMASK(63, 0)
+#define FAR_EL1_ADDR_MASK GENMASK(63, 0)
+#define FAR_EL1_ADDR_SHIFT 0
+#define FAR_EL1_ADDR_WIDTH 64
+
+#define FAR_EL1_RES0 (UL(0))
+#define FAR_EL1_RES1 (UL(0))
+#define FAR_EL1_UNKN (UL(0))
+
+#define REG_PMSCR_EL1 S3_0_C9_C9_0
+#define SYS_PMSCR_EL1 sys_reg(3, 0, 9, 9, 0)
+#define SYS_PMSCR_EL1_Op0 3
+#define SYS_PMSCR_EL1_Op1 0
+#define SYS_PMSCR_EL1_CRn 9
+#define SYS_PMSCR_EL1_CRm 9
+#define SYS_PMSCR_EL1_Op2 0
+
+#define PMSCR_EL1_PCT GENMASK(7, 6)
+#define PMSCR_EL1_PCT_MASK GENMASK(7, 6)
+#define PMSCR_EL1_PCT_SHIFT 6
+#define PMSCR_EL1_PCT_WIDTH 2
+
+#define PMSCR_EL1_TS GENMASK(5, 5)
+#define PMSCR_EL1_TS_MASK GENMASK(5, 5)
+#define PMSCR_EL1_TS_SHIFT 5
+#define PMSCR_EL1_TS_WIDTH 1
+
+#define PMSCR_EL1_PA GENMASK(4, 4)
+#define PMSCR_EL1_PA_MASK GENMASK(4, 4)
+#define PMSCR_EL1_PA_SHIFT 4
+#define PMSCR_EL1_PA_WIDTH 1
+
+#define PMSCR_EL1_CX GENMASK(3, 3)
+#define PMSCR_EL1_CX_MASK GENMASK(3, 3)
+#define PMSCR_EL1_CX_SHIFT 3
+#define PMSCR_EL1_CX_WIDTH 1
+
+#define PMSCR_EL1_E1SPE GENMASK(1, 1)
+#define PMSCR_EL1_E1SPE_MASK GENMASK(1, 1)
+#define PMSCR_EL1_E1SPE_SHIFT 1
+#define PMSCR_EL1_E1SPE_WIDTH 1
+
+#define PMSCR_EL1_E0SPE GENMASK(0, 0)
+#define PMSCR_EL1_E0SPE_MASK GENMASK(0, 0)
+#define PMSCR_EL1_E0SPE_SHIFT 0
+#define PMSCR_EL1_E0SPE_WIDTH 1
+
+#define PMSCR_EL1_RES0 (UL(0) | GENMASK_ULL(63, 8) | GENMASK_ULL(2, 2))
+#define PMSCR_EL1_RES1 (UL(0))
+#define PMSCR_EL1_UNKN (UL(0))
+
+#define REG_PMSNEVFR_EL1 S3_0_C9_C9_1
+#define SYS_PMSNEVFR_EL1 sys_reg(3, 0, 9, 9, 1)
+#define SYS_PMSNEVFR_EL1_Op0 3
+#define SYS_PMSNEVFR_EL1_Op1 0
+#define SYS_PMSNEVFR_EL1_CRn 9
+#define SYS_PMSNEVFR_EL1_CRm 9
+#define SYS_PMSNEVFR_EL1_Op2 1
+
+#define PMSNEVFR_EL1_E GENMASK(63, 0)
+#define PMSNEVFR_EL1_E_MASK GENMASK(63, 0)
+#define PMSNEVFR_EL1_E_SHIFT 0
+#define PMSNEVFR_EL1_E_WIDTH 64
+
+#define PMSNEVFR_EL1_RES0 (UL(0))
+#define PMSNEVFR_EL1_RES1 (UL(0))
+#define PMSNEVFR_EL1_UNKN (UL(0))
+
+#define REG_PMSICR_EL1 S3_0_C9_C9_2
+#define SYS_PMSICR_EL1 sys_reg(3, 0, 9, 9, 2)
+#define SYS_PMSICR_EL1_Op0 3
+#define SYS_PMSICR_EL1_Op1 0
+#define SYS_PMSICR_EL1_CRn 9
+#define SYS_PMSICR_EL1_CRm 9
+#define SYS_PMSICR_EL1_Op2 2
+
+#define PMSICR_EL1_ECOUNT GENMASK(63, 56)
+#define PMSICR_EL1_ECOUNT_MASK GENMASK(63, 56)
+#define PMSICR_EL1_ECOUNT_SHIFT 56
+#define PMSICR_EL1_ECOUNT_WIDTH 8
+
+#define PMSICR_EL1_COUNT GENMASK(31, 0)
+#define PMSICR_EL1_COUNT_MASK GENMASK(31, 0)
+#define PMSICR_EL1_COUNT_SHIFT 0
+#define PMSICR_EL1_COUNT_WIDTH 32
+
+#define PMSICR_EL1_RES0 (UL(0) | GENMASK_ULL(55, 32))
+#define PMSICR_EL1_RES1 (UL(0))
+#define PMSICR_EL1_UNKN (UL(0))
+
+#define REG_PMSIRR_EL1 S3_0_C9_C9_3
+#define SYS_PMSIRR_EL1 sys_reg(3, 0, 9, 9, 3)
+#define SYS_PMSIRR_EL1_Op0 3
+#define SYS_PMSIRR_EL1_Op1 0
+#define SYS_PMSIRR_EL1_CRn 9
+#define SYS_PMSIRR_EL1_CRm 9
+#define SYS_PMSIRR_EL1_Op2 3
+
+#define PMSIRR_EL1_INTERVAL GENMASK(31, 8)
+#define PMSIRR_EL1_INTERVAL_MASK GENMASK(31, 8)
+#define PMSIRR_EL1_INTERVAL_SHIFT 8
+#define PMSIRR_EL1_INTERVAL_WIDTH 24
+
+#define PMSIRR_EL1_RND GENMASK(0, 0)
+#define PMSIRR_EL1_RND_MASK GENMASK(0, 0)
+#define PMSIRR_EL1_RND_SHIFT 0
+#define PMSIRR_EL1_RND_WIDTH 1
+
+#define PMSIRR_EL1_RES0 (UL(0) | GENMASK_ULL(63, 32) | GENMASK_ULL(7, 1))
+#define PMSIRR_EL1_RES1 (UL(0))
+#define PMSIRR_EL1_UNKN (UL(0))
+
+#define REG_PMSFCR_EL1 S3_0_C9_C9_4
+#define SYS_PMSFCR_EL1 sys_reg(3, 0, 9, 9, 4)
+#define SYS_PMSFCR_EL1_Op0 3
+#define SYS_PMSFCR_EL1_Op1 0
+#define SYS_PMSFCR_EL1_CRn 9
+#define SYS_PMSFCR_EL1_CRm 9
+#define SYS_PMSFCR_EL1_Op2 4
+
+#define PMSFCR_EL1_ST GENMASK(18, 18)
+#define PMSFCR_EL1_ST_MASK GENMASK(18, 18)
+#define PMSFCR_EL1_ST_SHIFT 18
+#define PMSFCR_EL1_ST_WIDTH 1
+
+#define PMSFCR_EL1_LD GENMASK(17, 17)
+#define PMSFCR_EL1_LD_MASK GENMASK(17, 17)
+#define PMSFCR_EL1_LD_SHIFT 17
+#define PMSFCR_EL1_LD_WIDTH 1
+
+#define PMSFCR_EL1_B GENMASK(16, 16)
+#define PMSFCR_EL1_B_MASK GENMASK(16, 16)
+#define PMSFCR_EL1_B_SHIFT 16
+#define PMSFCR_EL1_B_WIDTH 1
+
+#define PMSFCR_EL1_FnE GENMASK(3, 3)
+#define PMSFCR_EL1_FnE_MASK GENMASK(3, 3)
+#define PMSFCR_EL1_FnE_SHIFT 3
+#define PMSFCR_EL1_FnE_WIDTH 1
+
+#define PMSFCR_EL1_FL GENMASK(2, 2)
+#define PMSFCR_EL1_FL_MASK GENMASK(2, 2)
+#define PMSFCR_EL1_FL_SHIFT 2
+#define PMSFCR_EL1_FL_WIDTH 1
+
+#define PMSFCR_EL1_FT GENMASK(1, 1)
+#define PMSFCR_EL1_FT_MASK GENMASK(1, 1)
+#define PMSFCR_EL1_FT_SHIFT 1
+#define PMSFCR_EL1_FT_WIDTH 1
+
+#define PMSFCR_EL1_FE GENMASK(0, 0)
+#define PMSFCR_EL1_FE_MASK GENMASK(0, 0)
+#define PMSFCR_EL1_FE_SHIFT 0
+#define PMSFCR_EL1_FE_WIDTH 1
+
+#define PMSFCR_EL1_RES0 (UL(0) | GENMASK_ULL(63, 19) | GENMASK_ULL(15, 4))
+#define PMSFCR_EL1_RES1 (UL(0))
+#define PMSFCR_EL1_UNKN (UL(0))
+
+#define REG_PMSEVFR_EL1 S3_0_C9_C9_5
+#define SYS_PMSEVFR_EL1 sys_reg(3, 0, 9, 9, 5)
+#define SYS_PMSEVFR_EL1_Op0 3
+#define SYS_PMSEVFR_EL1_Op1 0
+#define SYS_PMSEVFR_EL1_CRn 9
+#define SYS_PMSEVFR_EL1_CRm 9
+#define SYS_PMSEVFR_EL1_Op2 5
+
+#define PMSEVFR_EL1_E GENMASK(63, 0)
+#define PMSEVFR_EL1_E_MASK GENMASK(63, 0)
+#define PMSEVFR_EL1_E_SHIFT 0
+#define PMSEVFR_EL1_E_WIDTH 64
+
+#define PMSEVFR_EL1_RES0 (UL(0))
+#define PMSEVFR_EL1_RES1 (UL(0))
+#define PMSEVFR_EL1_UNKN (UL(0))
+
+#define REG_PMSLATFR_EL1 S3_0_C9_C9_6
+#define SYS_PMSLATFR_EL1 sys_reg(3, 0, 9, 9, 6)
+#define SYS_PMSLATFR_EL1_Op0 3
+#define SYS_PMSLATFR_EL1_Op1 0
+#define SYS_PMSLATFR_EL1_CRn 9
+#define SYS_PMSLATFR_EL1_CRm 9
+#define SYS_PMSLATFR_EL1_Op2 6
+
+#define PMSLATFR_EL1_MINLAT GENMASK(15, 0)
+#define PMSLATFR_EL1_MINLAT_MASK GENMASK(15, 0)
+#define PMSLATFR_EL1_MINLAT_SHIFT 0
+#define PMSLATFR_EL1_MINLAT_WIDTH 16
+
+#define PMSLATFR_EL1_RES0 (UL(0) | GENMASK_ULL(63, 16))
+#define PMSLATFR_EL1_RES1 (UL(0))
+#define PMSLATFR_EL1_UNKN (UL(0))
+
+#define REG_PMSIDR_EL1 S3_0_C9_C9_7
+#define SYS_PMSIDR_EL1 sys_reg(3, 0, 9, 9, 7)
+#define SYS_PMSIDR_EL1_Op0 3
+#define SYS_PMSIDR_EL1_Op1 0
+#define SYS_PMSIDR_EL1_CRn 9
+#define SYS_PMSIDR_EL1_CRm 9
+#define SYS_PMSIDR_EL1_Op2 7
+
+#define PMSIDR_EL1_PBT GENMASK(24, 24)
+#define PMSIDR_EL1_PBT_MASK GENMASK(24, 24)
+#define PMSIDR_EL1_PBT_SHIFT 24
+#define PMSIDR_EL1_PBT_WIDTH 1
+
+#define PMSIDR_EL1_FORMAT GENMASK(23, 20)
+#define PMSIDR_EL1_FORMAT_MASK GENMASK(23, 20)
+#define PMSIDR_EL1_FORMAT_SHIFT 20
+#define PMSIDR_EL1_FORMAT_WIDTH 4
+
+#define PMSIDR_EL1_COUNTSIZE GENMASK(19, 16)
+#define PMSIDR_EL1_COUNTSIZE_MASK GENMASK(19, 16)
+#define PMSIDR_EL1_COUNTSIZE_SHIFT 16
+#define PMSIDR_EL1_COUNTSIZE_WIDTH 4
+#define PMSIDR_EL1_COUNTSIZE_12_BIT_SAT UL(0b0010)
+#define PMSIDR_EL1_COUNTSIZE_16_BIT_SAT UL(0b0011)
+
+#define PMSIDR_EL1_MAXSIZE GENMASK(15, 12)
+#define PMSIDR_EL1_MAXSIZE_MASK GENMASK(15, 12)
+#define PMSIDR_EL1_MAXSIZE_SHIFT 12
+#define PMSIDR_EL1_MAXSIZE_WIDTH 4
+
+#define PMSIDR_EL1_INTERVAL GENMASK(11, 8)
+#define PMSIDR_EL1_INTERVAL_MASK GENMASK(11, 8)
+#define PMSIDR_EL1_INTERVAL_SHIFT 8
+#define PMSIDR_EL1_INTERVAL_WIDTH 4
+#define PMSIDR_EL1_INTERVAL_256 UL(0b0000)
+#define PMSIDR_EL1_INTERVAL_512 UL(0b0010)
+#define PMSIDR_EL1_INTERVAL_768 UL(0b0011)
+#define PMSIDR_EL1_INTERVAL_1024 UL(0b0100)
+#define PMSIDR_EL1_INTERVAL_1536 UL(0b0101)
+#define PMSIDR_EL1_INTERVAL_2048 UL(0b0110)
+#define PMSIDR_EL1_INTERVAL_3072 UL(0b0111)
+#define PMSIDR_EL1_INTERVAL_4096 UL(0b1000)
+
+#define PMSIDR_EL1_FnE GENMASK(6, 6)
+#define PMSIDR_EL1_FnE_MASK GENMASK(6, 6)
+#define PMSIDR_EL1_FnE_SHIFT 6
+#define PMSIDR_EL1_FnE_WIDTH 1
+
+#define PMSIDR_EL1_ERND GENMASK(5, 5)
+#define PMSIDR_EL1_ERND_MASK GENMASK(5, 5)
+#define PMSIDR_EL1_ERND_SHIFT 5
+#define PMSIDR_EL1_ERND_WIDTH 1
+
+#define PMSIDR_EL1_LDS GENMASK(4, 4)
+#define PMSIDR_EL1_LDS_MASK GENMASK(4, 4)
+#define PMSIDR_EL1_LDS_SHIFT 4
+#define PMSIDR_EL1_LDS_WIDTH 1
+
+#define PMSIDR_EL1_ARCHINST GENMASK(3, 3)
+#define PMSIDR_EL1_ARCHINST_MASK GENMASK(3, 3)
+#define PMSIDR_EL1_ARCHINST_SHIFT 3
+#define PMSIDR_EL1_ARCHINST_WIDTH 1
+
+#define PMSIDR_EL1_FL GENMASK(2, 2)
+#define PMSIDR_EL1_FL_MASK GENMASK(2, 2)
+#define PMSIDR_EL1_FL_SHIFT 2
+#define PMSIDR_EL1_FL_WIDTH 1
+
+#define PMSIDR_EL1_FT GENMASK(1, 1)
+#define PMSIDR_EL1_FT_MASK GENMASK(1, 1)
+#define PMSIDR_EL1_FT_SHIFT 1
+#define PMSIDR_EL1_FT_WIDTH 1
+
+#define PMSIDR_EL1_FE GENMASK(0, 0)
+#define PMSIDR_EL1_FE_MASK GENMASK(0, 0)
+#define PMSIDR_EL1_FE_SHIFT 0
+#define PMSIDR_EL1_FE_WIDTH 1
+
+#define PMSIDR_EL1_RES0 (UL(0) | GENMASK_ULL(63, 25) | GENMASK_ULL(7, 7))
+#define PMSIDR_EL1_RES1 (UL(0))
+#define PMSIDR_EL1_UNKN (UL(0))
+
+#define REG_PMBLIMITR_EL1 S3_0_C9_C10_0
+#define SYS_PMBLIMITR_EL1 sys_reg(3, 0, 9, 10, 0)
+#define SYS_PMBLIMITR_EL1_Op0 3
+#define SYS_PMBLIMITR_EL1_Op1 0
+#define SYS_PMBLIMITR_EL1_CRn 9
+#define SYS_PMBLIMITR_EL1_CRm 10
+#define SYS_PMBLIMITR_EL1_Op2 0
+
+#define PMBLIMITR_EL1_LIMIT GENMASK(63, 12)
+#define PMBLIMITR_EL1_LIMIT_MASK GENMASK(63, 12)
+#define PMBLIMITR_EL1_LIMIT_SHIFT 12
+#define PMBLIMITR_EL1_LIMIT_WIDTH 52
+
+#define PMBLIMITR_EL1_PMFZ GENMASK(5, 5)
+#define PMBLIMITR_EL1_PMFZ_MASK GENMASK(5, 5)
+#define PMBLIMITR_EL1_PMFZ_SHIFT 5
+#define PMBLIMITR_EL1_PMFZ_WIDTH 1
+
+#define PMBLIMITR_EL1_FM GENMASK(2, 1)
+#define PMBLIMITR_EL1_FM_MASK GENMASK(2, 1)
+#define PMBLIMITR_EL1_FM_SHIFT 1
+#define PMBLIMITR_EL1_FM_WIDTH 2
+#define PMBLIMITR_EL1_FM_FILL UL(0b00)
+#define PMBLIMITR_EL1_FM_DISCARD UL(0b10)
+
+#define PMBLIMITR_EL1_E GENMASK(0, 0)
+#define PMBLIMITR_EL1_E_MASK GENMASK(0, 0)
+#define PMBLIMITR_EL1_E_SHIFT 0
+#define PMBLIMITR_EL1_E_WIDTH 1
+
+#define PMBLIMITR_EL1_RES0 (UL(0) | GENMASK_ULL(11, 6) | GENMASK_ULL(4, 3))
+#define PMBLIMITR_EL1_RES1 (UL(0))
+#define PMBLIMITR_EL1_UNKN (UL(0))
+
+#define REG_PMBPTR_EL1 S3_0_C9_C10_1
+#define SYS_PMBPTR_EL1 sys_reg(3, 0, 9, 10, 1)
+#define SYS_PMBPTR_EL1_Op0 3
+#define SYS_PMBPTR_EL1_Op1 0
+#define SYS_PMBPTR_EL1_CRn 9
+#define SYS_PMBPTR_EL1_CRm 10
+#define SYS_PMBPTR_EL1_Op2 1
+
+#define PMBPTR_EL1_PTR GENMASK(63, 0)
+#define PMBPTR_EL1_PTR_MASK GENMASK(63, 0)
+#define PMBPTR_EL1_PTR_SHIFT 0
+#define PMBPTR_EL1_PTR_WIDTH 64
+
+#define PMBPTR_EL1_RES0 (UL(0))
+#define PMBPTR_EL1_RES1 (UL(0))
+#define PMBPTR_EL1_UNKN (UL(0))
+
+#define REG_PMBSR_EL1 S3_0_C9_C10_3
+#define SYS_PMBSR_EL1 sys_reg(3, 0, 9, 10, 3)
+#define SYS_PMBSR_EL1_Op0 3
+#define SYS_PMBSR_EL1_Op1 0
+#define SYS_PMBSR_EL1_CRn 9
+#define SYS_PMBSR_EL1_CRm 10
+#define SYS_PMBSR_EL1_Op2 3
+
+#define PMBSR_EL1_EC GENMASK(31, 26)
+#define PMBSR_EL1_EC_MASK GENMASK(31, 26)
+#define PMBSR_EL1_EC_SHIFT 26
+#define PMBSR_EL1_EC_WIDTH 6
+#define PMBSR_EL1_EC_BUF UL(0b000000)
+#define PMBSR_EL1_EC_FAULT_S1 UL(0b100100)
+#define PMBSR_EL1_EC_FAULT_S2 UL(0b100101)
+#define PMBSR_EL1_EC_FAULT_GPC UL(0b011110)
+#define PMBSR_EL1_EC_IMP_DEF UL(0b011111)
+
+#define PMBSR_EL1_DL GENMASK(19, 19)
+#define PMBSR_EL1_DL_MASK GENMASK(19, 19)
+#define PMBSR_EL1_DL_SHIFT 19
+#define PMBSR_EL1_DL_WIDTH 1
+
+#define PMBSR_EL1_EA GENMASK(18, 18)
+#define PMBSR_EL1_EA_MASK GENMASK(18, 18)
+#define PMBSR_EL1_EA_SHIFT 18
+#define PMBSR_EL1_EA_WIDTH 1
+
+#define PMBSR_EL1_S GENMASK(17, 17)
+#define PMBSR_EL1_S_MASK GENMASK(17, 17)
+#define PMBSR_EL1_S_SHIFT 17
+#define PMBSR_EL1_S_WIDTH 1
+
+#define PMBSR_EL1_COLL GENMASK(16, 16)
+#define PMBSR_EL1_COLL_MASK GENMASK(16, 16)
+#define PMBSR_EL1_COLL_SHIFT 16
+#define PMBSR_EL1_COLL_WIDTH 1
+
+#define PMBSR_EL1_MSS GENMASK(15, 0)
+#define PMBSR_EL1_MSS_MASK GENMASK(15, 0)
+#define PMBSR_EL1_MSS_SHIFT 0
+#define PMBSR_EL1_MSS_WIDTH 16
+
+#define PMBSR_EL1_RES0 (UL(0) | GENMASK_ULL(63, 32) | GENMASK_ULL(25, 20))
+#define PMBSR_EL1_RES1 (UL(0))
+#define PMBSR_EL1_UNKN (UL(0))
+
+#define REG_PMBIDR_EL1 S3_0_C9_C10_7
+#define SYS_PMBIDR_EL1 sys_reg(3, 0, 9, 10, 7)
+#define SYS_PMBIDR_EL1_Op0 3
+#define SYS_PMBIDR_EL1_Op1 0
+#define SYS_PMBIDR_EL1_CRn 9
+#define SYS_PMBIDR_EL1_CRm 10
+#define SYS_PMBIDR_EL1_Op2 7
+
+#define PMBIDR_EL1_EA GENMASK(11, 8)
+#define PMBIDR_EL1_EA_MASK GENMASK(11, 8)
+#define PMBIDR_EL1_EA_SHIFT 8
+#define PMBIDR_EL1_EA_WIDTH 4
+#define PMBIDR_EL1_EA_NotDescribed UL(0b0000)
+#define PMBIDR_EL1_EA_Ignored UL(0b0001)
+#define PMBIDR_EL1_EA_SError UL(0b0010)
+
+#define PMBIDR_EL1_F GENMASK(5, 5)
+#define PMBIDR_EL1_F_MASK GENMASK(5, 5)
+#define PMBIDR_EL1_F_SHIFT 5
+#define PMBIDR_EL1_F_WIDTH 1
+
+#define PMBIDR_EL1_P GENMASK(4, 4)
+#define PMBIDR_EL1_P_MASK GENMASK(4, 4)
+#define PMBIDR_EL1_P_SHIFT 4
+#define PMBIDR_EL1_P_WIDTH 1
+
+#define PMBIDR_EL1_ALIGN GENMASK(3, 0)
+#define PMBIDR_EL1_ALIGN_MASK GENMASK(3, 0)
+#define PMBIDR_EL1_ALIGN_SHIFT 0
+#define PMBIDR_EL1_ALIGN_WIDTH 4
+
+#define PMBIDR_EL1_RES0 (UL(0) | GENMASK_ULL(63, 12) | GENMASK_ULL(7, 6))
+#define PMBIDR_EL1_RES1 (UL(0))
+#define PMBIDR_EL1_UNKN (UL(0))
+
+#define CONTEXTIDR_ELx_PROCID GENMASK(31, 0)
+#define CONTEXTIDR_ELx_PROCID_MASK GENMASK(31, 0)
+#define CONTEXTIDR_ELx_PROCID_SHIFT 0
+#define CONTEXTIDR_ELx_PROCID_WIDTH 32
+
+#define CONTEXTIDR_ELx_RES0 (UL(0) | GENMASK_ULL(63, 32))
+#define CONTEXTIDR_ELx_RES1 (UL(0))
+#define CONTEXTIDR_ELx_UNKN (UL(0))
+
+#define REG_CONTEXTIDR_EL1 S3_0_C13_C0_1
+#define SYS_CONTEXTIDR_EL1 sys_reg(3, 0, 13, 0, 1)
+#define SYS_CONTEXTIDR_EL1_Op0 3
+#define SYS_CONTEXTIDR_EL1_Op1 0
+#define SYS_CONTEXTIDR_EL1_CRn 13
+#define SYS_CONTEXTIDR_EL1_CRm 0
+#define SYS_CONTEXTIDR_EL1_Op2 1
+
+/* For CONTEXTIDR_EL1 fields see CONTEXTIDR_ELx */
+
+#define REG_TPIDR_EL1 S3_0_C13_C0_4
+#define SYS_TPIDR_EL1 sys_reg(3, 0, 13, 0, 4)
+#define SYS_TPIDR_EL1_Op0 3
+#define SYS_TPIDR_EL1_Op1 0
+#define SYS_TPIDR_EL1_CRn 13
+#define SYS_TPIDR_EL1_CRm 0
+#define SYS_TPIDR_EL1_Op2 4
+
+#define TPIDR_EL1_ThreadID GENMASK(63, 0)
+#define TPIDR_EL1_ThreadID_MASK GENMASK(63, 0)
+#define TPIDR_EL1_ThreadID_SHIFT 0
+#define TPIDR_EL1_ThreadID_WIDTH 64
+
+#define TPIDR_EL1_RES0 (UL(0))
+#define TPIDR_EL1_RES1 (UL(0))
+#define TPIDR_EL1_UNKN (UL(0))
+
+#define REG_SCXTNUM_EL1 S3_0_C13_C0_7
+#define SYS_SCXTNUM_EL1 sys_reg(3, 0, 13, 0, 7)
+#define SYS_SCXTNUM_EL1_Op0 3
+#define SYS_SCXTNUM_EL1_Op1 0
+#define SYS_SCXTNUM_EL1_CRn 13
+#define SYS_SCXTNUM_EL1_CRm 0
+#define SYS_SCXTNUM_EL1_Op2 7
+
+#define SCXTNUM_EL1_SoftwareContextNumber GENMASK(63, 0)
+#define SCXTNUM_EL1_SoftwareContextNumber_MASK GENMASK(63, 0)
+#define SCXTNUM_EL1_SoftwareContextNumber_SHIFT 0
+#define SCXTNUM_EL1_SoftwareContextNumber_WIDTH 64
+
+#define SCXTNUM_EL1_RES0 (UL(0))
+#define SCXTNUM_EL1_RES1 (UL(0))
+#define SCXTNUM_EL1_UNKN (UL(0))
+
+#define REG_CCSIDR_EL1 S3_1_C0_C0_0
+#define SYS_CCSIDR_EL1 sys_reg(3, 1, 0, 0, 0)
+#define SYS_CCSIDR_EL1_Op0 3
+#define SYS_CCSIDR_EL1_Op1 1
+#define SYS_CCSIDR_EL1_CRn 0
+#define SYS_CCSIDR_EL1_CRm 0
+#define SYS_CCSIDR_EL1_Op2 0
+
+#define CCSIDR_EL1_NumSets GENMASK(27, 13)
+#define CCSIDR_EL1_NumSets_MASK GENMASK(27, 13)
+#define CCSIDR_EL1_NumSets_SHIFT 13
+#define CCSIDR_EL1_NumSets_WIDTH 15
+
+#define CCSIDR_EL1_Associativity GENMASK(12, 3)
+#define CCSIDR_EL1_Associativity_MASK GENMASK(12, 3)
+#define CCSIDR_EL1_Associativity_SHIFT 3
+#define CCSIDR_EL1_Associativity_WIDTH 10
+
+#define CCSIDR_EL1_LineSize GENMASK(2, 0)
+#define CCSIDR_EL1_LineSize_MASK GENMASK(2, 0)
+#define CCSIDR_EL1_LineSize_SHIFT 0
+#define CCSIDR_EL1_LineSize_WIDTH 3
+
+#define CCSIDR_EL1_RES0 (UL(0) | GENMASK_ULL(63, 32))
+#define CCSIDR_EL1_RES1 (UL(0))
+#define CCSIDR_EL1_UNKN (UL(0) | GENMASK_ULL(31, 28))
+
+#define REG_CLIDR_EL1 S3_1_C0_C0_1
+#define SYS_CLIDR_EL1 sys_reg(3, 1, 0, 0, 1)
+#define SYS_CLIDR_EL1_Op0 3
+#define SYS_CLIDR_EL1_Op1 1
+#define SYS_CLIDR_EL1_CRn 0
+#define SYS_CLIDR_EL1_CRm 0
+#define SYS_CLIDR_EL1_Op2 1
+
+#define CLIDR_EL1_Ttypen GENMASK(46, 33)
+#define CLIDR_EL1_Ttypen_MASK GENMASK(46, 33)
+#define CLIDR_EL1_Ttypen_SHIFT 33
+#define CLIDR_EL1_Ttypen_WIDTH 14
+
+#define CLIDR_EL1_ICB GENMASK(32, 30)
+#define CLIDR_EL1_ICB_MASK GENMASK(32, 30)
+#define CLIDR_EL1_ICB_SHIFT 30
+#define CLIDR_EL1_ICB_WIDTH 3
+
+#define CLIDR_EL1_LoUU GENMASK(29, 27)
+#define CLIDR_EL1_LoUU_MASK GENMASK(29, 27)
+#define CLIDR_EL1_LoUU_SHIFT 27
+#define CLIDR_EL1_LoUU_WIDTH 3
+
+#define CLIDR_EL1_LoC GENMASK(26, 24)
+#define CLIDR_EL1_LoC_MASK GENMASK(26, 24)
+#define CLIDR_EL1_LoC_SHIFT 24
+#define CLIDR_EL1_LoC_WIDTH 3
+
+#define CLIDR_EL1_LoUIS GENMASK(23, 21)
+#define CLIDR_EL1_LoUIS_MASK GENMASK(23, 21)
+#define CLIDR_EL1_LoUIS_SHIFT 21
+#define CLIDR_EL1_LoUIS_WIDTH 3
+
+#define CLIDR_EL1_Ctype7 GENMASK(20, 18)
+#define CLIDR_EL1_Ctype7_MASK GENMASK(20, 18)
+#define CLIDR_EL1_Ctype7_SHIFT 18
+#define CLIDR_EL1_Ctype7_WIDTH 3
+
+#define CLIDR_EL1_Ctype6 GENMASK(17, 15)
+#define CLIDR_EL1_Ctype6_MASK GENMASK(17, 15)
+#define CLIDR_EL1_Ctype6_SHIFT 15
+#define CLIDR_EL1_Ctype6_WIDTH 3
+
+#define CLIDR_EL1_Ctype5 GENMASK(14, 12)
+#define CLIDR_EL1_Ctype5_MASK GENMASK(14, 12)
+#define CLIDR_EL1_Ctype5_SHIFT 12
+#define CLIDR_EL1_Ctype5_WIDTH 3
+
+#define CLIDR_EL1_Ctype4 GENMASK(11, 9)
+#define CLIDR_EL1_Ctype4_MASK GENMASK(11, 9)
+#define CLIDR_EL1_Ctype4_SHIFT 9
+#define CLIDR_EL1_Ctype4_WIDTH 3
+
+#define CLIDR_EL1_Ctype3 GENMASK(8, 6)
+#define CLIDR_EL1_Ctype3_MASK GENMASK(8, 6)
+#define CLIDR_EL1_Ctype3_SHIFT 6
+#define CLIDR_EL1_Ctype3_WIDTH 3
+
+#define CLIDR_EL1_Ctype2 GENMASK(5, 3)
+#define CLIDR_EL1_Ctype2_MASK GENMASK(5, 3)
+#define CLIDR_EL1_Ctype2_SHIFT 3
+#define CLIDR_EL1_Ctype2_WIDTH 3
+
+#define CLIDR_EL1_Ctype1 GENMASK(2, 0)
+#define CLIDR_EL1_Ctype1_MASK GENMASK(2, 0)
+#define CLIDR_EL1_Ctype1_SHIFT 0
+#define CLIDR_EL1_Ctype1_WIDTH 3
+
+#define CLIDR_EL1_RES0 (UL(0) | GENMASK_ULL(63, 47))
+#define CLIDR_EL1_RES1 (UL(0))
+#define CLIDR_EL1_UNKN (UL(0))
+
+#define REG_CCSIDR2_EL1 S3_1_C0_C0_2
+#define SYS_CCSIDR2_EL1 sys_reg(3, 1, 0, 0, 2)
+#define SYS_CCSIDR2_EL1_Op0 3
+#define SYS_CCSIDR2_EL1_Op1 1
+#define SYS_CCSIDR2_EL1_CRn 0
+#define SYS_CCSIDR2_EL1_CRm 0
+#define SYS_CCSIDR2_EL1_Op2 2
+
+#define CCSIDR2_EL1_NumSets GENMASK(23, 0)
+#define CCSIDR2_EL1_NumSets_MASK GENMASK(23, 0)
+#define CCSIDR2_EL1_NumSets_SHIFT 0
+#define CCSIDR2_EL1_NumSets_WIDTH 24
+
+#define CCSIDR2_EL1_RES0 (UL(0) | GENMASK_ULL(63, 24))
+#define CCSIDR2_EL1_RES1 (UL(0))
+#define CCSIDR2_EL1_UNKN (UL(0))
+
+#define REG_GMID_EL1 S3_1_C0_C0_4
+#define SYS_GMID_EL1 sys_reg(3, 1, 0, 0, 4)
+#define SYS_GMID_EL1_Op0 3
+#define SYS_GMID_EL1_Op1 1
+#define SYS_GMID_EL1_CRn 0
+#define SYS_GMID_EL1_CRm 0
+#define SYS_GMID_EL1_Op2 4
+
+#define GMID_EL1_BS GENMASK(3, 0)
+#define GMID_EL1_BS_MASK GENMASK(3, 0)
+#define GMID_EL1_BS_SHIFT 0
+#define GMID_EL1_BS_WIDTH 4
+
+#define GMID_EL1_RES0 (UL(0) | GENMASK_ULL(63, 4))
+#define GMID_EL1_RES1 (UL(0))
+#define GMID_EL1_UNKN (UL(0))
+
+#define REG_SMIDR_EL1 S3_1_C0_C0_6
+#define SYS_SMIDR_EL1 sys_reg(3, 1, 0, 0, 6)
+#define SYS_SMIDR_EL1_Op0 3
+#define SYS_SMIDR_EL1_Op1 1
+#define SYS_SMIDR_EL1_CRn 0
+#define SYS_SMIDR_EL1_CRm 0
+#define SYS_SMIDR_EL1_Op2 6
+
+#define SMIDR_EL1_IMPLEMENTER GENMASK(31, 24)
+#define SMIDR_EL1_IMPLEMENTER_MASK GENMASK(31, 24)
+#define SMIDR_EL1_IMPLEMENTER_SHIFT 24
+#define SMIDR_EL1_IMPLEMENTER_WIDTH 8
+
+#define SMIDR_EL1_REVISION GENMASK(23, 16)
+#define SMIDR_EL1_REVISION_MASK GENMASK(23, 16)
+#define SMIDR_EL1_REVISION_SHIFT 16
+#define SMIDR_EL1_REVISION_WIDTH 8
+
+#define SMIDR_EL1_SMPS GENMASK(15, 15)
+#define SMIDR_EL1_SMPS_MASK GENMASK(15, 15)
+#define SMIDR_EL1_SMPS_SHIFT 15
+#define SMIDR_EL1_SMPS_WIDTH 1
+
+#define SMIDR_EL1_AFFINITY GENMASK(11, 0)
+#define SMIDR_EL1_AFFINITY_MASK GENMASK(11, 0)
+#define SMIDR_EL1_AFFINITY_SHIFT 0
+#define SMIDR_EL1_AFFINITY_WIDTH 12
+
+#define SMIDR_EL1_RES0 (UL(0) | GENMASK_ULL(63, 32) | GENMASK_ULL(14, 12))
+#define SMIDR_EL1_RES1 (UL(0))
+#define SMIDR_EL1_UNKN (UL(0))
+
+#define REG_CSSELR_EL1 S3_2_C0_C0_0
+#define SYS_CSSELR_EL1 sys_reg(3, 2, 0, 0, 0)
+#define SYS_CSSELR_EL1_Op0 3
+#define SYS_CSSELR_EL1_Op1 2
+#define SYS_CSSELR_EL1_CRn 0
+#define SYS_CSSELR_EL1_CRm 0
+#define SYS_CSSELR_EL1_Op2 0
+
+#define CSSELR_EL1_TnD GENMASK(4, 4)
+#define CSSELR_EL1_TnD_MASK GENMASK(4, 4)
+#define CSSELR_EL1_TnD_SHIFT 4
+#define CSSELR_EL1_TnD_WIDTH 1
+
+#define CSSELR_EL1_Level GENMASK(3, 1)
+#define CSSELR_EL1_Level_MASK GENMASK(3, 1)
+#define CSSELR_EL1_Level_SHIFT 1
+#define CSSELR_EL1_Level_WIDTH 3
+
+#define CSSELR_EL1_InD GENMASK(0, 0)
+#define CSSELR_EL1_InD_MASK GENMASK(0, 0)
+#define CSSELR_EL1_InD_SHIFT 0
+#define CSSELR_EL1_InD_WIDTH 1
+
+#define CSSELR_EL1_RES0 (UL(0) | GENMASK_ULL(63, 5))
+#define CSSELR_EL1_RES1 (UL(0))
+#define CSSELR_EL1_UNKN (UL(0))
+
+#define REG_CTR_EL0 S3_3_C0_C0_1
+#define SYS_CTR_EL0 sys_reg(3, 3, 0, 0, 1)
+#define SYS_CTR_EL0_Op0 3
+#define SYS_CTR_EL0_Op1 3
+#define SYS_CTR_EL0_CRn 0
+#define SYS_CTR_EL0_CRm 0
+#define SYS_CTR_EL0_Op2 1
+
+#define CTR_EL0_TminLine GENMASK(37, 32)
+#define CTR_EL0_TminLine_MASK GENMASK(37, 32)
+#define CTR_EL0_TminLine_SHIFT 32
+#define CTR_EL0_TminLine_WIDTH 6
+
+#define CTR_EL0_DIC GENMASK(29, 29)
+#define CTR_EL0_DIC_MASK GENMASK(29, 29)
+#define CTR_EL0_DIC_SHIFT 29
+#define CTR_EL0_DIC_WIDTH 1
+
+#define CTR_EL0_IDC GENMASK(28, 28)
+#define CTR_EL0_IDC_MASK GENMASK(28, 28)
+#define CTR_EL0_IDC_SHIFT 28
+#define CTR_EL0_IDC_WIDTH 1
+
+#define CTR_EL0_CWG GENMASK(27, 24)
+#define CTR_EL0_CWG_MASK GENMASK(27, 24)
+#define CTR_EL0_CWG_SHIFT 24
+#define CTR_EL0_CWG_WIDTH 4
+
+#define CTR_EL0_ERG GENMASK(23, 20)
+#define CTR_EL0_ERG_MASK GENMASK(23, 20)
+#define CTR_EL0_ERG_SHIFT 20
+#define CTR_EL0_ERG_WIDTH 4
+
+#define CTR_EL0_DminLine GENMASK(19, 16)
+#define CTR_EL0_DminLine_MASK GENMASK(19, 16)
+#define CTR_EL0_DminLine_SHIFT 16
+#define CTR_EL0_DminLine_WIDTH 4
+
+#define CTR_EL0_L1Ip GENMASK(15, 14)
+#define CTR_EL0_L1Ip_MASK GENMASK(15, 14)
+#define CTR_EL0_L1Ip_SHIFT 14
+#define CTR_EL0_L1Ip_WIDTH 2
+#define CTR_EL0_L1Ip_VPIPT UL(0b00)
+#define CTR_EL0_L1Ip_RESERVED UL(0b01)
+#define CTR_EL0_L1Ip_VIPT UL(0b10)
+#define CTR_EL0_L1Ip_PIPT UL(0b11)
+
+#define CTR_EL0_IminLine GENMASK(3, 0)
+#define CTR_EL0_IminLine_MASK GENMASK(3, 0)
+#define CTR_EL0_IminLine_SHIFT 0
+#define CTR_EL0_IminLine_WIDTH 4
+
+#define CTR_EL0_RES0 (UL(0) | GENMASK_ULL(63, 38) | GENMASK_ULL(30, 30) | GENMASK_ULL(13, 4))
+#define CTR_EL0_RES1 (UL(0) | GENMASK_ULL(31, 31))
+#define CTR_EL0_UNKN (UL(0))
+
+#define REG_DCZID_EL0 S3_3_C0_C0_7
+#define SYS_DCZID_EL0 sys_reg(3, 3, 0, 0, 7)
+#define SYS_DCZID_EL0_Op0 3
+#define SYS_DCZID_EL0_Op1 3
+#define SYS_DCZID_EL0_CRn 0
+#define SYS_DCZID_EL0_CRm 0
+#define SYS_DCZID_EL0_Op2 7
+
+#define DCZID_EL0_DZP GENMASK(4, 4)
+#define DCZID_EL0_DZP_MASK GENMASK(4, 4)
+#define DCZID_EL0_DZP_SHIFT 4
+#define DCZID_EL0_DZP_WIDTH 1
+
+#define DCZID_EL0_BS GENMASK(3, 0)
+#define DCZID_EL0_BS_MASK GENMASK(3, 0)
+#define DCZID_EL0_BS_SHIFT 0
+#define DCZID_EL0_BS_WIDTH 4
+
+#define DCZID_EL0_RES0 (UL(0) | GENMASK_ULL(63, 5))
+#define DCZID_EL0_RES1 (UL(0))
+#define DCZID_EL0_UNKN (UL(0))
+
+#define REG_SVCR S3_3_C4_C2_2
+#define SYS_SVCR sys_reg(3, 3, 4, 2, 2)
+#define SYS_SVCR_Op0 3
+#define SYS_SVCR_Op1 3
+#define SYS_SVCR_CRn 4
+#define SYS_SVCR_CRm 2
+#define SYS_SVCR_Op2 2
+
+#define SVCR_ZA GENMASK(1, 1)
+#define SVCR_ZA_MASK GENMASK(1, 1)
+#define SVCR_ZA_SHIFT 1
+#define SVCR_ZA_WIDTH 1
+
+#define SVCR_SM GENMASK(0, 0)
+#define SVCR_SM_MASK GENMASK(0, 0)
+#define SVCR_SM_SHIFT 0
+#define SVCR_SM_WIDTH 1
+
+#define SVCR_RES0 (UL(0) | GENMASK_ULL(63, 2))
+#define SVCR_RES1 (UL(0))
+#define SVCR_UNKN (UL(0))
+
+#define HFGxTR_EL2_nAMAIR2_EL1 GENMASK(63, 63)
+#define HFGxTR_EL2_nAMAIR2_EL1_MASK GENMASK(63, 63)
+#define HFGxTR_EL2_nAMAIR2_EL1_SHIFT 63
+#define HFGxTR_EL2_nAMAIR2_EL1_WIDTH 1
+
+#define HFGxTR_EL2_nMAIR2_EL1 GENMASK(62, 62)
+#define HFGxTR_EL2_nMAIR2_EL1_MASK GENMASK(62, 62)
+#define HFGxTR_EL2_nMAIR2_EL1_SHIFT 62
+#define HFGxTR_EL2_nMAIR2_EL1_WIDTH 1
+
+#define HFGxTR_EL2_nS2POR_EL1 GENMASK(61, 61)
+#define HFGxTR_EL2_nS2POR_EL1_MASK GENMASK(61, 61)
+#define HFGxTR_EL2_nS2POR_EL1_SHIFT 61
+#define HFGxTR_EL2_nS2POR_EL1_WIDTH 1
+
+#define HFGxTR_EL2_nPOR_EL1 GENMASK(60, 60)
+#define HFGxTR_EL2_nPOR_EL1_MASK GENMASK(60, 60)
+#define HFGxTR_EL2_nPOR_EL1_SHIFT 60
+#define HFGxTR_EL2_nPOR_EL1_WIDTH 1
+
+#define HFGxTR_EL2_nPOR_EL0 GENMASK(59, 59)
+#define HFGxTR_EL2_nPOR_EL0_MASK GENMASK(59, 59)
+#define HFGxTR_EL2_nPOR_EL0_SHIFT 59
+#define HFGxTR_EL2_nPOR_EL0_WIDTH 1
+
+#define HFGxTR_EL2_nPIR_EL1 GENMASK(58, 58)
+#define HFGxTR_EL2_nPIR_EL1_MASK GENMASK(58, 58)
+#define HFGxTR_EL2_nPIR_EL1_SHIFT 58
+#define HFGxTR_EL2_nPIR_EL1_WIDTH 1
+
+#define HFGxTR_EL2_nPIRE0_EL1 GENMASK(57, 57)
+#define HFGxTR_EL2_nPIRE0_EL1_MASK GENMASK(57, 57)
+#define HFGxTR_EL2_nPIRE0_EL1_SHIFT 57
+#define HFGxTR_EL2_nPIRE0_EL1_WIDTH 1
+
+#define HFGxTR_EL2_nRCWMASK_EL1 GENMASK(56, 56)
+#define HFGxTR_EL2_nRCWMASK_EL1_MASK GENMASK(56, 56)
+#define HFGxTR_EL2_nRCWMASK_EL1_SHIFT 56
+#define HFGxTR_EL2_nRCWMASK_EL1_WIDTH 1
+
+#define HFGxTR_EL2_nTPIDR2_EL0 GENMASK(55, 55)
+#define HFGxTR_EL2_nTPIDR2_EL0_MASK GENMASK(55, 55)
+#define HFGxTR_EL2_nTPIDR2_EL0_SHIFT 55
+#define HFGxTR_EL2_nTPIDR2_EL0_WIDTH 1
+
+#define HFGxTR_EL2_nSMPRI_EL1 GENMASK(54, 54)
+#define HFGxTR_EL2_nSMPRI_EL1_MASK GENMASK(54, 54)
+#define HFGxTR_EL2_nSMPRI_EL1_SHIFT 54
+#define HFGxTR_EL2_nSMPRI_EL1_WIDTH 1
+
+#define HFGxTR_EL2_nGCS_EL1 GENMASK(53, 53)
+#define HFGxTR_EL2_nGCS_EL1_MASK GENMASK(53, 53)
+#define HFGxTR_EL2_nGCS_EL1_SHIFT 53
+#define HFGxTR_EL2_nGCS_EL1_WIDTH 1
+
+#define HFGxTR_EL2_nGCS_EL0 GENMASK(52, 52)
+#define HFGxTR_EL2_nGCS_EL0_MASK GENMASK(52, 52)
+#define HFGxTR_EL2_nGCS_EL0_SHIFT 52
+#define HFGxTR_EL2_nGCS_EL0_WIDTH 1
+
+#define HFGxTR_EL2_nACCDATA_EL1 GENMASK(50, 50)
+#define HFGxTR_EL2_nACCDATA_EL1_MASK GENMASK(50, 50)
+#define HFGxTR_EL2_nACCDATA_EL1_SHIFT 50
+#define HFGxTR_EL2_nACCDATA_EL1_WIDTH 1
+
+#define HFGxTR_EL2_ERXADDR_EL1 GENMASK(49, 49)
+#define HFGxTR_EL2_ERXADDR_EL1_MASK GENMASK(49, 49)
+#define HFGxTR_EL2_ERXADDR_EL1_SHIFT 49
+#define HFGxTR_EL2_ERXADDR_EL1_WIDTH 1
+
+#define HFGxTR_EL2_ERXPFGCDN_EL1 GENMASK(48, 48)
+#define HFGxTR_EL2_ERXPFGCDN_EL1_MASK GENMASK(48, 48)
+#define HFGxTR_EL2_ERXPFGCDN_EL1_SHIFT 48
+#define HFGxTR_EL2_ERXPFGCDN_EL1_WIDTH 1
+
+#define HFGxTR_EL2_ERXPFGCTL_EL1 GENMASK(47, 47)
+#define HFGxTR_EL2_ERXPFGCTL_EL1_MASK GENMASK(47, 47)
+#define HFGxTR_EL2_ERXPFGCTL_EL1_SHIFT 47
+#define HFGxTR_EL2_ERXPFGCTL_EL1_WIDTH 1
+
+#define HFGxTR_EL2_ERXPFGF_EL1 GENMASK(46, 46)
+#define HFGxTR_EL2_ERXPFGF_EL1_MASK GENMASK(46, 46)
+#define HFGxTR_EL2_ERXPFGF_EL1_SHIFT 46
+#define HFGxTR_EL2_ERXPFGF_EL1_WIDTH 1
+
+#define HFGxTR_EL2_ERXMISCn_EL1 GENMASK(45, 45)
+#define HFGxTR_EL2_ERXMISCn_EL1_MASK GENMASK(45, 45)
+#define HFGxTR_EL2_ERXMISCn_EL1_SHIFT 45
+#define HFGxTR_EL2_ERXMISCn_EL1_WIDTH 1
+
+#define HFGxTR_EL2_ERXSTATUS_EL1 GENMASK(44, 44)
+#define HFGxTR_EL2_ERXSTATUS_EL1_MASK GENMASK(44, 44)
+#define HFGxTR_EL2_ERXSTATUS_EL1_SHIFT 44
+#define HFGxTR_EL2_ERXSTATUS_EL1_WIDTH 1
+
+#define HFGxTR_EL2_ERXCTLR_EL1 GENMASK(43, 43)
+#define HFGxTR_EL2_ERXCTLR_EL1_MASK GENMASK(43, 43)
+#define HFGxTR_EL2_ERXCTLR_EL1_SHIFT 43
+#define HFGxTR_EL2_ERXCTLR_EL1_WIDTH 1
+
+#define HFGxTR_EL2_ERXFR_EL1 GENMASK(42, 42)
+#define HFGxTR_EL2_ERXFR_EL1_MASK GENMASK(42, 42)
+#define HFGxTR_EL2_ERXFR_EL1_SHIFT 42
+#define HFGxTR_EL2_ERXFR_EL1_WIDTH 1
+
+#define HFGxTR_EL2_ERRSELR_EL1 GENMASK(41, 41)
+#define HFGxTR_EL2_ERRSELR_EL1_MASK GENMASK(41, 41)
+#define HFGxTR_EL2_ERRSELR_EL1_SHIFT 41
+#define HFGxTR_EL2_ERRSELR_EL1_WIDTH 1
+
+#define HFGxTR_EL2_ERRIDR_EL1 GENMASK(40, 40)
+#define HFGxTR_EL2_ERRIDR_EL1_MASK GENMASK(40, 40)
+#define HFGxTR_EL2_ERRIDR_EL1_SHIFT 40
+#define HFGxTR_EL2_ERRIDR_EL1_WIDTH 1
+
+#define HFGxTR_EL2_ICC_IGRPENn_EL1 GENMASK(39, 39)
+#define HFGxTR_EL2_ICC_IGRPENn_EL1_MASK GENMASK(39, 39)
+#define HFGxTR_EL2_ICC_IGRPENn_EL1_SHIFT 39
+#define HFGxTR_EL2_ICC_IGRPENn_EL1_WIDTH 1
+
+#define HFGxTR_EL2_VBAR_EL1 GENMASK(38, 38)
+#define HFGxTR_EL2_VBAR_EL1_MASK GENMASK(38, 38)
+#define HFGxTR_EL2_VBAR_EL1_SHIFT 38
+#define HFGxTR_EL2_VBAR_EL1_WIDTH 1
+
+#define HFGxTR_EL2_TTBR1_EL1 GENMASK(37, 37)
+#define HFGxTR_EL2_TTBR1_EL1_MASK GENMASK(37, 37)
+#define HFGxTR_EL2_TTBR1_EL1_SHIFT 37
+#define HFGxTR_EL2_TTBR1_EL1_WIDTH 1
+
+#define HFGxTR_EL2_TTBR0_EL1 GENMASK(36, 36)
+#define HFGxTR_EL2_TTBR0_EL1_MASK GENMASK(36, 36)
+#define HFGxTR_EL2_TTBR0_EL1_SHIFT 36
+#define HFGxTR_EL2_TTBR0_EL1_WIDTH 1
+
+#define HFGxTR_EL2_TPIDR_EL0 GENMASK(35, 35)
+#define HFGxTR_EL2_TPIDR_EL0_MASK GENMASK(35, 35)
+#define HFGxTR_EL2_TPIDR_EL0_SHIFT 35
+#define HFGxTR_EL2_TPIDR_EL0_WIDTH 1
+
+#define HFGxTR_EL2_TPIDRRO_EL0 GENMASK(34, 34)
+#define HFGxTR_EL2_TPIDRRO_EL0_MASK GENMASK(34, 34)
+#define HFGxTR_EL2_TPIDRRO_EL0_SHIFT 34
+#define HFGxTR_EL2_TPIDRRO_EL0_WIDTH 1
+
+#define HFGxTR_EL2_TPIDR_EL1 GENMASK(33, 33)
+#define HFGxTR_EL2_TPIDR_EL1_MASK GENMASK(33, 33)
+#define HFGxTR_EL2_TPIDR_EL1_SHIFT 33
+#define HFGxTR_EL2_TPIDR_EL1_WIDTH 1
+
+#define HFGxTR_EL2_TCR_EL1 GENMASK(32, 32)
+#define HFGxTR_EL2_TCR_EL1_MASK GENMASK(32, 32)
+#define HFGxTR_EL2_TCR_EL1_SHIFT 32
+#define HFGxTR_EL2_TCR_EL1_WIDTH 1
+
+#define HFGxTR_EL2_SCXTNUM_EL0 GENMASK(31, 31)
+#define HFGxTR_EL2_SCXTNUM_EL0_MASK GENMASK(31, 31)
+#define HFGxTR_EL2_SCXTNUM_EL0_SHIFT 31
+#define HFGxTR_EL2_SCXTNUM_EL0_WIDTH 1
+
+#define HFGxTR_EL2_SCXTNUM_EL1 GENMASK(30, 30)
+#define HFGxTR_EL2_SCXTNUM_EL1_MASK GENMASK(30, 30)
+#define HFGxTR_EL2_SCXTNUM_EL1_SHIFT 30
+#define HFGxTR_EL2_SCXTNUM_EL1_WIDTH 1
+
+#define HFGxTR_EL2_SCTLR_EL1 GENMASK(29, 29)
+#define HFGxTR_EL2_SCTLR_EL1_MASK GENMASK(29, 29)
+#define HFGxTR_EL2_SCTLR_EL1_SHIFT 29
+#define HFGxTR_EL2_SCTLR_EL1_WIDTH 1
+
+#define HFGxTR_EL2_REVIDR_EL1 GENMASK(28, 28)
+#define HFGxTR_EL2_REVIDR_EL1_MASK GENMASK(28, 28)
+#define HFGxTR_EL2_REVIDR_EL1_SHIFT 28
+#define HFGxTR_EL2_REVIDR_EL1_WIDTH 1
+
+#define HFGxTR_EL2_PAR_EL1 GENMASK(27, 27)
+#define HFGxTR_EL2_PAR_EL1_MASK GENMASK(27, 27)
+#define HFGxTR_EL2_PAR_EL1_SHIFT 27
+#define HFGxTR_EL2_PAR_EL1_WIDTH 1
+
+#define HFGxTR_EL2_MPIDR_EL1 GENMASK(26, 26)
+#define HFGxTR_EL2_MPIDR_EL1_MASK GENMASK(26, 26)
+#define HFGxTR_EL2_MPIDR_EL1_SHIFT 26
+#define HFGxTR_EL2_MPIDR_EL1_WIDTH 1
+
+#define HFGxTR_EL2_MIDR_EL1 GENMASK(25, 25)
+#define HFGxTR_EL2_MIDR_EL1_MASK GENMASK(25, 25)
+#define HFGxTR_EL2_MIDR_EL1_SHIFT 25
+#define HFGxTR_EL2_MIDR_EL1_WIDTH 1
+
+#define HFGxTR_EL2_MAIR_EL1 GENMASK(24, 24)
+#define HFGxTR_EL2_MAIR_EL1_MASK GENMASK(24, 24)
+#define HFGxTR_EL2_MAIR_EL1_SHIFT 24
+#define HFGxTR_EL2_MAIR_EL1_WIDTH 1
+
+#define HFGxTR_EL2_LORSA_EL1 GENMASK(23, 23)
+#define HFGxTR_EL2_LORSA_EL1_MASK GENMASK(23, 23)
+#define HFGxTR_EL2_LORSA_EL1_SHIFT 23
+#define HFGxTR_EL2_LORSA_EL1_WIDTH 1
+
+#define HFGxTR_EL2_LORN_EL1 GENMASK(22, 22)
+#define HFGxTR_EL2_LORN_EL1_MASK GENMASK(22, 22)
+#define HFGxTR_EL2_LORN_EL1_SHIFT 22
+#define HFGxTR_EL2_LORN_EL1_WIDTH 1
+
+#define HFGxTR_EL2_LORID_EL1 GENMASK(21, 21)
+#define HFGxTR_EL2_LORID_EL1_MASK GENMASK(21, 21)
+#define HFGxTR_EL2_LORID_EL1_SHIFT 21
+#define HFGxTR_EL2_LORID_EL1_WIDTH 1
+
+#define HFGxTR_EL2_LOREA_EL1 GENMASK(20, 20)
+#define HFGxTR_EL2_LOREA_EL1_MASK GENMASK(20, 20)
+#define HFGxTR_EL2_LOREA_EL1_SHIFT 20
+#define HFGxTR_EL2_LOREA_EL1_WIDTH 1
+
+#define HFGxTR_EL2_LORC_EL1 GENMASK(19, 19)
+#define HFGxTR_EL2_LORC_EL1_MASK GENMASK(19, 19)
+#define HFGxTR_EL2_LORC_EL1_SHIFT 19
+#define HFGxTR_EL2_LORC_EL1_WIDTH 1
+
+#define HFGxTR_EL2_ISR_EL1 GENMASK(18, 18)
+#define HFGxTR_EL2_ISR_EL1_MASK GENMASK(18, 18)
+#define HFGxTR_EL2_ISR_EL1_SHIFT 18
+#define HFGxTR_EL2_ISR_EL1_WIDTH 1
+
+#define HFGxTR_EL2_FAR_EL1 GENMASK(17, 17)
+#define HFGxTR_EL2_FAR_EL1_MASK GENMASK(17, 17)
+#define HFGxTR_EL2_FAR_EL1_SHIFT 17
+#define HFGxTR_EL2_FAR_EL1_WIDTH 1
+
+#define HFGxTR_EL2_ESR_EL1 GENMASK(16, 16)
+#define HFGxTR_EL2_ESR_EL1_MASK GENMASK(16, 16)
+#define HFGxTR_EL2_ESR_EL1_SHIFT 16
+#define HFGxTR_EL2_ESR_EL1_WIDTH 1
+
+#define HFGxTR_EL2_DCZID_EL0 GENMASK(15, 15)
+#define HFGxTR_EL2_DCZID_EL0_MASK GENMASK(15, 15)
+#define HFGxTR_EL2_DCZID_EL0_SHIFT 15
+#define HFGxTR_EL2_DCZID_EL0_WIDTH 1
+
+#define HFGxTR_EL2_CTR_EL0 GENMASK(14, 14)
+#define HFGxTR_EL2_CTR_EL0_MASK GENMASK(14, 14)
+#define HFGxTR_EL2_CTR_EL0_SHIFT 14
+#define HFGxTR_EL2_CTR_EL0_WIDTH 1
+
+#define HFGxTR_EL2_CSSELR_EL1 GENMASK(13, 13)
+#define HFGxTR_EL2_CSSELR_EL1_MASK GENMASK(13, 13)
+#define HFGxTR_EL2_CSSELR_EL1_SHIFT 13
+#define HFGxTR_EL2_CSSELR_EL1_WIDTH 1
+
+#define HFGxTR_EL2_CPACR_EL1 GENMASK(12, 12)
+#define HFGxTR_EL2_CPACR_EL1_MASK GENMASK(12, 12)
+#define HFGxTR_EL2_CPACR_EL1_SHIFT 12
+#define HFGxTR_EL2_CPACR_EL1_WIDTH 1
+
+#define HFGxTR_EL2_CONTEXTIDR_EL1 GENMASK(11, 11)
+#define HFGxTR_EL2_CONTEXTIDR_EL1_MASK GENMASK(11, 11)
+#define HFGxTR_EL2_CONTEXTIDR_EL1_SHIFT 11
+#define HFGxTR_EL2_CONTEXTIDR_EL1_WIDTH 1
+
+#define HFGxTR_EL2_CLIDR_EL1 GENMASK(10, 10)
+#define HFGxTR_EL2_CLIDR_EL1_MASK GENMASK(10, 10)
+#define HFGxTR_EL2_CLIDR_EL1_SHIFT 10
+#define HFGxTR_EL2_CLIDR_EL1_WIDTH 1
+
+#define HFGxTR_EL2_CCSIDR_EL1 GENMASK(9, 9)
+#define HFGxTR_EL2_CCSIDR_EL1_MASK GENMASK(9, 9)
+#define HFGxTR_EL2_CCSIDR_EL1_SHIFT 9
+#define HFGxTR_EL2_CCSIDR_EL1_WIDTH 1
+
+#define HFGxTR_EL2_APIBKey GENMASK(8, 8)
+#define HFGxTR_EL2_APIBKey_MASK GENMASK(8, 8)
+#define HFGxTR_EL2_APIBKey_SHIFT 8
+#define HFGxTR_EL2_APIBKey_WIDTH 1
+
+#define HFGxTR_EL2_APIAKey GENMASK(7, 7)
+#define HFGxTR_EL2_APIAKey_MASK GENMASK(7, 7)
+#define HFGxTR_EL2_APIAKey_SHIFT 7
+#define HFGxTR_EL2_APIAKey_WIDTH 1
+
+#define HFGxTR_EL2_APGAKey GENMASK(6, 6)
+#define HFGxTR_EL2_APGAKey_MASK GENMASK(6, 6)
+#define HFGxTR_EL2_APGAKey_SHIFT 6
+#define HFGxTR_EL2_APGAKey_WIDTH 1
+
+#define HFGxTR_EL2_APDBKey GENMASK(5, 5)
+#define HFGxTR_EL2_APDBKey_MASK GENMASK(5, 5)
+#define HFGxTR_EL2_APDBKey_SHIFT 5
+#define HFGxTR_EL2_APDBKey_WIDTH 1
+
+#define HFGxTR_EL2_APDAKey GENMASK(4, 4)
+#define HFGxTR_EL2_APDAKey_MASK GENMASK(4, 4)
+#define HFGxTR_EL2_APDAKey_SHIFT 4
+#define HFGxTR_EL2_APDAKey_WIDTH 1
+
+#define HFGxTR_EL2_AMAIR_EL1 GENMASK(3, 3)
+#define HFGxTR_EL2_AMAIR_EL1_MASK GENMASK(3, 3)
+#define HFGxTR_EL2_AMAIR_EL1_SHIFT 3
+#define HFGxTR_EL2_AMAIR_EL1_WIDTH 1
+
+#define HFGxTR_EL2_AIDR_EL1 GENMASK(2, 2)
+#define HFGxTR_EL2_AIDR_EL1_MASK GENMASK(2, 2)
+#define HFGxTR_EL2_AIDR_EL1_SHIFT 2
+#define HFGxTR_EL2_AIDR_EL1_WIDTH 1
+
+#define HFGxTR_EL2_AFSR1_EL1 GENMASK(1, 1)
+#define HFGxTR_EL2_AFSR1_EL1_MASK GENMASK(1, 1)
+#define HFGxTR_EL2_AFSR1_EL1_SHIFT 1
+#define HFGxTR_EL2_AFSR1_EL1_WIDTH 1
+
+#define HFGxTR_EL2_AFSR0_EL1 GENMASK(0, 0)
+#define HFGxTR_EL2_AFSR0_EL1_MASK GENMASK(0, 0)
+#define HFGxTR_EL2_AFSR0_EL1_SHIFT 0
+#define HFGxTR_EL2_AFSR0_EL1_WIDTH 1
+
+#define HFGxTR_EL2_RES0 (UL(0) | GENMASK_ULL(51, 51))
+#define HFGxTR_EL2_RES1 (UL(0))
+#define HFGxTR_EL2_UNKN (UL(0))
+
+#define REG_HFGRTR_EL2 S3_4_C1_C1_4
+#define SYS_HFGRTR_EL2 sys_reg(3, 4, 1, 1, 4)
+#define SYS_HFGRTR_EL2_Op0 3
+#define SYS_HFGRTR_EL2_Op1 4
+#define SYS_HFGRTR_EL2_CRn 1
+#define SYS_HFGRTR_EL2_CRm 1
+#define SYS_HFGRTR_EL2_Op2 4
+
+/* For HFGRTR_EL2 fields see HFGxTR_EL2 */
+
+#define REG_HFGWTR_EL2 S3_4_C1_C1_5
+#define SYS_HFGWTR_EL2 sys_reg(3, 4, 1, 1, 5)
+#define SYS_HFGWTR_EL2_Op0 3
+#define SYS_HFGWTR_EL2_Op1 4
+#define SYS_HFGWTR_EL2_CRn 1
+#define SYS_HFGWTR_EL2_CRm 1
+#define SYS_HFGWTR_EL2_Op2 5
+
+/* For HFGWTR_EL2 fields see HFGxTR_EL2 */
+
+#define REG_HFGITR_EL2 S3_4_C1_C1_6
+#define SYS_HFGITR_EL2 sys_reg(3, 4, 1, 1, 6)
+#define SYS_HFGITR_EL2_Op0 3
+#define SYS_HFGITR_EL2_Op1 4
+#define SYS_HFGITR_EL2_CRn 1
+#define SYS_HFGITR_EL2_CRm 1
+#define SYS_HFGITR_EL2_Op2 6
+
+#define HFGITR_EL2_COSPRCTX GENMASK(60, 60)
+#define HFGITR_EL2_COSPRCTX_MASK GENMASK(60, 60)
+#define HFGITR_EL2_COSPRCTX_SHIFT 60
+#define HFGITR_EL2_COSPRCTX_WIDTH 1
+
+#define HFGITR_EL2_nGCSEPP GENMASK(59, 59)
+#define HFGITR_EL2_nGCSEPP_MASK GENMASK(59, 59)
+#define HFGITR_EL2_nGCSEPP_SHIFT 59
+#define HFGITR_EL2_nGCSEPP_WIDTH 1
+
+#define HFGITR_EL2_nGCSSTR_EL1 GENMASK(58, 58)
+#define HFGITR_EL2_nGCSSTR_EL1_MASK GENMASK(58, 58)
+#define HFGITR_EL2_nGCSSTR_EL1_SHIFT 58
+#define HFGITR_EL2_nGCSSTR_EL1_WIDTH 1
+
+#define HFGITR_EL2_nGCSPUSHM_EL1 GENMASK(57, 57)
+#define HFGITR_EL2_nGCSPUSHM_EL1_MASK GENMASK(57, 57)
+#define HFGITR_EL2_nGCSPUSHM_EL1_SHIFT 57
+#define HFGITR_EL2_nGCSPUSHM_EL1_WIDTH 1
+
+#define HFGITR_EL2_nBRBIALL GENMASK(56, 56)
+#define HFGITR_EL2_nBRBIALL_MASK GENMASK(56, 56)
+#define HFGITR_EL2_nBRBIALL_SHIFT 56
+#define HFGITR_EL2_nBRBIALL_WIDTH 1
+
+#define HFGITR_EL2_nBRBINJ GENMASK(55, 55)
+#define HFGITR_EL2_nBRBINJ_MASK GENMASK(55, 55)
+#define HFGITR_EL2_nBRBINJ_SHIFT 55
+#define HFGITR_EL2_nBRBINJ_WIDTH 1
+
+#define HFGITR_EL2_DCCVAC GENMASK(54, 54)
+#define HFGITR_EL2_DCCVAC_MASK GENMASK(54, 54)
+#define HFGITR_EL2_DCCVAC_SHIFT 54
+#define HFGITR_EL2_DCCVAC_WIDTH 1
+
+#define HFGITR_EL2_SVC_EL1 GENMASK(53, 53)
+#define HFGITR_EL2_SVC_EL1_MASK GENMASK(53, 53)
+#define HFGITR_EL2_SVC_EL1_SHIFT 53
+#define HFGITR_EL2_SVC_EL1_WIDTH 1
+
+#define HFGITR_EL2_SVC_EL0 GENMASK(52, 52)
+#define HFGITR_EL2_SVC_EL0_MASK GENMASK(52, 52)
+#define HFGITR_EL2_SVC_EL0_SHIFT 52
+#define HFGITR_EL2_SVC_EL0_WIDTH 1
+
+#define HFGITR_EL2_ERET GENMASK(51, 51)
+#define HFGITR_EL2_ERET_MASK GENMASK(51, 51)
+#define HFGITR_EL2_ERET_SHIFT 51
+#define HFGITR_EL2_ERET_WIDTH 1
+
+#define HFGITR_EL2_CPPRCTX GENMASK(50, 50)
+#define HFGITR_EL2_CPPRCTX_MASK GENMASK(50, 50)
+#define HFGITR_EL2_CPPRCTX_SHIFT 50
+#define HFGITR_EL2_CPPRCTX_WIDTH 1
+
+#define HFGITR_EL2_DVPRCTX GENMASK(49, 49)
+#define HFGITR_EL2_DVPRCTX_MASK GENMASK(49, 49)
+#define HFGITR_EL2_DVPRCTX_SHIFT 49
+#define HFGITR_EL2_DVPRCTX_WIDTH 1
+
+#define HFGITR_EL2_CFPRCTX GENMASK(48, 48)
+#define HFGITR_EL2_CFPRCTX_MASK GENMASK(48, 48)
+#define HFGITR_EL2_CFPRCTX_SHIFT 48
+#define HFGITR_EL2_CFPRCTX_WIDTH 1
+
+#define HFGITR_EL2_TLBIVAALE1 GENMASK(47, 47)
+#define HFGITR_EL2_TLBIVAALE1_MASK GENMASK(47, 47)
+#define HFGITR_EL2_TLBIVAALE1_SHIFT 47
+#define HFGITR_EL2_TLBIVAALE1_WIDTH 1
+
+#define HFGITR_EL2_TLBIVALE1 GENMASK(46, 46)
+#define HFGITR_EL2_TLBIVALE1_MASK GENMASK(46, 46)
+#define HFGITR_EL2_TLBIVALE1_SHIFT 46
+#define HFGITR_EL2_TLBIVALE1_WIDTH 1
+
+#define HFGITR_EL2_TLBIVAAE1 GENMASK(45, 45)
+#define HFGITR_EL2_TLBIVAAE1_MASK GENMASK(45, 45)
+#define HFGITR_EL2_TLBIVAAE1_SHIFT 45
+#define HFGITR_EL2_TLBIVAAE1_WIDTH 1
+
+#define HFGITR_EL2_TLBIASIDE1 GENMASK(44, 44)
+#define HFGITR_EL2_TLBIASIDE1_MASK GENMASK(44, 44)
+#define HFGITR_EL2_TLBIASIDE1_SHIFT 44
+#define HFGITR_EL2_TLBIASIDE1_WIDTH 1
+
+#define HFGITR_EL2_TLBIVAE1 GENMASK(43, 43)
+#define HFGITR_EL2_TLBIVAE1_MASK GENMASK(43, 43)
+#define HFGITR_EL2_TLBIVAE1_SHIFT 43
+#define HFGITR_EL2_TLBIVAE1_WIDTH 1
+
+#define HFGITR_EL2_TLBIVMALLE1 GENMASK(42, 42)
+#define HFGITR_EL2_TLBIVMALLE1_MASK GENMASK(42, 42)
+#define HFGITR_EL2_TLBIVMALLE1_SHIFT 42
+#define HFGITR_EL2_TLBIVMALLE1_WIDTH 1
+
+#define HFGITR_EL2_TLBIRVAALE1 GENMASK(41, 41)
+#define HFGITR_EL2_TLBIRVAALE1_MASK GENMASK(41, 41)
+#define HFGITR_EL2_TLBIRVAALE1_SHIFT 41
+#define HFGITR_EL2_TLBIRVAALE1_WIDTH 1
+
+#define HFGITR_EL2_TLBIRVALE1 GENMASK(40, 40)
+#define HFGITR_EL2_TLBIRVALE1_MASK GENMASK(40, 40)
+#define HFGITR_EL2_TLBIRVALE1_SHIFT 40
+#define HFGITR_EL2_TLBIRVALE1_WIDTH 1
+
+#define HFGITR_EL2_TLBIRVAAE1 GENMASK(39, 39)
+#define HFGITR_EL2_TLBIRVAAE1_MASK GENMASK(39, 39)
+#define HFGITR_EL2_TLBIRVAAE1_SHIFT 39
+#define HFGITR_EL2_TLBIRVAAE1_WIDTH 1
+
+#define HFGITR_EL2_TLBIRVAE1 GENMASK(38, 38)
+#define HFGITR_EL2_TLBIRVAE1_MASK GENMASK(38, 38)
+#define HFGITR_EL2_TLBIRVAE1_SHIFT 38
+#define HFGITR_EL2_TLBIRVAE1_WIDTH 1
+
+#define HFGITR_EL2_TLBIRVAALE1IS GENMASK(37, 37)
+#define HFGITR_EL2_TLBIRVAALE1IS_MASK GENMASK(37, 37)
+#define HFGITR_EL2_TLBIRVAALE1IS_SHIFT 37
+#define HFGITR_EL2_TLBIRVAALE1IS_WIDTH 1
+
+#define HFGITR_EL2_TLBIRVALE1IS GENMASK(36, 36)
+#define HFGITR_EL2_TLBIRVALE1IS_MASK GENMASK(36, 36)
+#define HFGITR_EL2_TLBIRVALE1IS_SHIFT 36
+#define HFGITR_EL2_TLBIRVALE1IS_WIDTH 1
+
+#define HFGITR_EL2_TLBIRVAAE1IS GENMASK(35, 35)
+#define HFGITR_EL2_TLBIRVAAE1IS_MASK GENMASK(35, 35)
+#define HFGITR_EL2_TLBIRVAAE1IS_SHIFT 35
+#define HFGITR_EL2_TLBIRVAAE1IS_WIDTH 1
+
+#define HFGITR_EL2_TLBIRVAE1IS GENMASK(34, 34)
+#define HFGITR_EL2_TLBIRVAE1IS_MASK GENMASK(34, 34)
+#define HFGITR_EL2_TLBIRVAE1IS_SHIFT 34
+#define HFGITR_EL2_TLBIRVAE1IS_WIDTH 1
+
+#define HFGITR_EL2_TLBIVAALE1IS GENMASK(33, 33)
+#define HFGITR_EL2_TLBIVAALE1IS_MASK GENMASK(33, 33)
+#define HFGITR_EL2_TLBIVAALE1IS_SHIFT 33
+#define HFGITR_EL2_TLBIVAALE1IS_WIDTH 1
+
+#define HFGITR_EL2_TLBIVALE1IS GENMASK(32, 32)
+#define HFGITR_EL2_TLBIVALE1IS_MASK GENMASK(32, 32)
+#define HFGITR_EL2_TLBIVALE1IS_SHIFT 32
+#define HFGITR_EL2_TLBIVALE1IS_WIDTH 1
+
+#define HFGITR_EL2_TLBIVAAE1IS GENMASK(31, 31)
+#define HFGITR_EL2_TLBIVAAE1IS_MASK GENMASK(31, 31)
+#define HFGITR_EL2_TLBIVAAE1IS_SHIFT 31
+#define HFGITR_EL2_TLBIVAAE1IS_WIDTH 1
+
+#define HFGITR_EL2_TLBIASIDE1IS GENMASK(30, 30)
+#define HFGITR_EL2_TLBIASIDE1IS_MASK GENMASK(30, 30)
+#define HFGITR_EL2_TLBIASIDE1IS_SHIFT 30
+#define HFGITR_EL2_TLBIASIDE1IS_WIDTH 1
+
+#define HFGITR_EL2_TLBIVAE1IS GENMASK(29, 29)
+#define HFGITR_EL2_TLBIVAE1IS_MASK GENMASK(29, 29)
+#define HFGITR_EL2_TLBIVAE1IS_SHIFT 29
+#define HFGITR_EL2_TLBIVAE1IS_WIDTH 1
+
+#define HFGITR_EL2_TLBIVMALLE1IS GENMASK(28, 28)
+#define HFGITR_EL2_TLBIVMALLE1IS_MASK GENMASK(28, 28)
+#define HFGITR_EL2_TLBIVMALLE1IS_SHIFT 28
+#define HFGITR_EL2_TLBIVMALLE1IS_WIDTH 1
+
+#define HFGITR_EL2_TLBIRVAALE1OS GENMASK(27, 27)
+#define HFGITR_EL2_TLBIRVAALE1OS_MASK GENMASK(27, 27)
+#define HFGITR_EL2_TLBIRVAALE1OS_SHIFT 27
+#define HFGITR_EL2_TLBIRVAALE1OS_WIDTH 1
+
+#define HFGITR_EL2_TLBIRVALE1OS GENMASK(26, 26)
+#define HFGITR_EL2_TLBIRVALE1OS_MASK GENMASK(26, 26)
+#define HFGITR_EL2_TLBIRVALE1OS_SHIFT 26
+#define HFGITR_EL2_TLBIRVALE1OS_WIDTH 1
+
+#define HFGITR_EL2_TLBIRVAAE1OS GENMASK(25, 25)
+#define HFGITR_EL2_TLBIRVAAE1OS_MASK GENMASK(25, 25)
+#define HFGITR_EL2_TLBIRVAAE1OS_SHIFT 25
+#define HFGITR_EL2_TLBIRVAAE1OS_WIDTH 1
+
+#define HFGITR_EL2_TLBIRVAE1OS GENMASK(24, 24)
+#define HFGITR_EL2_TLBIRVAE1OS_MASK GENMASK(24, 24)
+#define HFGITR_EL2_TLBIRVAE1OS_SHIFT 24
+#define HFGITR_EL2_TLBIRVAE1OS_WIDTH 1
+
+#define HFGITR_EL2_TLBIVAALE1OS GENMASK(23, 23)
+#define HFGITR_EL2_TLBIVAALE1OS_MASK GENMASK(23, 23)
+#define HFGITR_EL2_TLBIVAALE1OS_SHIFT 23
+#define HFGITR_EL2_TLBIVAALE1OS_WIDTH 1
+
+#define HFGITR_EL2_TLBIVALE1OS GENMASK(22, 22)
+#define HFGITR_EL2_TLBIVALE1OS_MASK GENMASK(22, 22)
+#define HFGITR_EL2_TLBIVALE1OS_SHIFT 22
+#define HFGITR_EL2_TLBIVALE1OS_WIDTH 1
+
+#define HFGITR_EL2_TLBIVAAE1OS GENMASK(21, 21)
+#define HFGITR_EL2_TLBIVAAE1OS_MASK GENMASK(21, 21)
+#define HFGITR_EL2_TLBIVAAE1OS_SHIFT 21
+#define HFGITR_EL2_TLBIVAAE1OS_WIDTH 1
+
+#define HFGITR_EL2_TLBIASIDE1OS GENMASK(20, 20)
+#define HFGITR_EL2_TLBIASIDE1OS_MASK GENMASK(20, 20)
+#define HFGITR_EL2_TLBIASIDE1OS_SHIFT 20
+#define HFGITR_EL2_TLBIASIDE1OS_WIDTH 1
+
+#define HFGITR_EL2_TLBIVAE1OS GENMASK(19, 19)
+#define HFGITR_EL2_TLBIVAE1OS_MASK GENMASK(19, 19)
+#define HFGITR_EL2_TLBIVAE1OS_SHIFT 19
+#define HFGITR_EL2_TLBIVAE1OS_WIDTH 1
+
+#define HFGITR_EL2_TLBIVMALLE1OS GENMASK(18, 18)
+#define HFGITR_EL2_TLBIVMALLE1OS_MASK GENMASK(18, 18)
+#define HFGITR_EL2_TLBIVMALLE1OS_SHIFT 18
+#define HFGITR_EL2_TLBIVMALLE1OS_WIDTH 1
+
+#define HFGITR_EL2_ATS1E1WP GENMASK(17, 17)
+#define HFGITR_EL2_ATS1E1WP_MASK GENMASK(17, 17)
+#define HFGITR_EL2_ATS1E1WP_SHIFT 17
+#define HFGITR_EL2_ATS1E1WP_WIDTH 1
+
+#define HFGITR_EL2_ATS1E1RP GENMASK(16, 16)
+#define HFGITR_EL2_ATS1E1RP_MASK GENMASK(16, 16)
+#define HFGITR_EL2_ATS1E1RP_SHIFT 16
+#define HFGITR_EL2_ATS1E1RP_WIDTH 1
+
+#define HFGITR_EL2_ATS1E0W GENMASK(15, 15)
+#define HFGITR_EL2_ATS1E0W_MASK GENMASK(15, 15)
+#define HFGITR_EL2_ATS1E0W_SHIFT 15
+#define HFGITR_EL2_ATS1E0W_WIDTH 1
+
+#define HFGITR_EL2_ATS1E0R GENMASK(14, 14)
+#define HFGITR_EL2_ATS1E0R_MASK GENMASK(14, 14)
+#define HFGITR_EL2_ATS1E0R_SHIFT 14
+#define HFGITR_EL2_ATS1E0R_WIDTH 1
+
+#define HFGITR_EL2_ATS1E1W GENMASK(13, 13)
+#define HFGITR_EL2_ATS1E1W_MASK GENMASK(13, 13)
+#define HFGITR_EL2_ATS1E1W_SHIFT 13
+#define HFGITR_EL2_ATS1E1W_WIDTH 1
+
+#define HFGITR_EL2_ATS1E1R GENMASK(12, 12)
+#define HFGITR_EL2_ATS1E1R_MASK GENMASK(12, 12)
+#define HFGITR_EL2_ATS1E1R_SHIFT 12
+#define HFGITR_EL2_ATS1E1R_WIDTH 1
+
+#define HFGITR_EL2_DCZVA GENMASK(11, 11)
+#define HFGITR_EL2_DCZVA_MASK GENMASK(11, 11)
+#define HFGITR_EL2_DCZVA_SHIFT 11
+#define HFGITR_EL2_DCZVA_WIDTH 1
+
+#define HFGITR_EL2_DCCIVAC GENMASK(10, 10)
+#define HFGITR_EL2_DCCIVAC_MASK GENMASK(10, 10)
+#define HFGITR_EL2_DCCIVAC_SHIFT 10
+#define HFGITR_EL2_DCCIVAC_WIDTH 1
+
+#define HFGITR_EL2_DCCVADP GENMASK(9, 9)
+#define HFGITR_EL2_DCCVADP_MASK GENMASK(9, 9)
+#define HFGITR_EL2_DCCVADP_SHIFT 9
+#define HFGITR_EL2_DCCVADP_WIDTH 1
+
+#define HFGITR_EL2_DCCVAP GENMASK(8, 8)
+#define HFGITR_EL2_DCCVAP_MASK GENMASK(8, 8)
+#define HFGITR_EL2_DCCVAP_SHIFT 8
+#define HFGITR_EL2_DCCVAP_WIDTH 1
+
+#define HFGITR_EL2_DCCVAU GENMASK(7, 7)
+#define HFGITR_EL2_DCCVAU_MASK GENMASK(7, 7)
+#define HFGITR_EL2_DCCVAU_SHIFT 7
+#define HFGITR_EL2_DCCVAU_WIDTH 1
+
+#define HFGITR_EL2_DCCISW GENMASK(6, 6)
+#define HFGITR_EL2_DCCISW_MASK GENMASK(6, 6)
+#define HFGITR_EL2_DCCISW_SHIFT 6
+#define HFGITR_EL2_DCCISW_WIDTH 1
+
+#define HFGITR_EL2_DCCSW GENMASK(5, 5)
+#define HFGITR_EL2_DCCSW_MASK GENMASK(5, 5)
+#define HFGITR_EL2_DCCSW_SHIFT 5
+#define HFGITR_EL2_DCCSW_WIDTH 1
+
+#define HFGITR_EL2_DCISW GENMASK(4, 4)
+#define HFGITR_EL2_DCISW_MASK GENMASK(4, 4)
+#define HFGITR_EL2_DCISW_SHIFT 4
+#define HFGITR_EL2_DCISW_WIDTH 1
+
+#define HFGITR_EL2_DCIVAC GENMASK(3, 3)
+#define HFGITR_EL2_DCIVAC_MASK GENMASK(3, 3)
+#define HFGITR_EL2_DCIVAC_SHIFT 3
+#define HFGITR_EL2_DCIVAC_WIDTH 1
+
+#define HFGITR_EL2_ICIVAU GENMASK(2, 2)
+#define HFGITR_EL2_ICIVAU_MASK GENMASK(2, 2)
+#define HFGITR_EL2_ICIVAU_SHIFT 2
+#define HFGITR_EL2_ICIVAU_WIDTH 1
+
+#define HFGITR_EL2_ICIALLU GENMASK(1, 1)
+#define HFGITR_EL2_ICIALLU_MASK GENMASK(1, 1)
+#define HFGITR_EL2_ICIALLU_SHIFT 1
+#define HFGITR_EL2_ICIALLU_WIDTH 1
+
+#define HFGITR_EL2_ICIALLUIS GENMASK(0, 0)
+#define HFGITR_EL2_ICIALLUIS_MASK GENMASK(0, 0)
+#define HFGITR_EL2_ICIALLUIS_SHIFT 0
+#define HFGITR_EL2_ICIALLUIS_WIDTH 1
+
+#define HFGITR_EL2_RES0 (UL(0) | GENMASK_ULL(63, 61))
+#define HFGITR_EL2_RES1 (UL(0))
+#define HFGITR_EL2_UNKN (UL(0))
+
+#define REG_HDFGRTR_EL2 S3_4_C3_C1_4
+#define SYS_HDFGRTR_EL2 sys_reg(3, 4, 3, 1, 4)
+#define SYS_HDFGRTR_EL2_Op0 3
+#define SYS_HDFGRTR_EL2_Op1 4
+#define SYS_HDFGRTR_EL2_CRn 3
+#define SYS_HDFGRTR_EL2_CRm 1
+#define SYS_HDFGRTR_EL2_Op2 4
+
+#define HDFGRTR_EL2_PMBIDR_EL1 GENMASK(63, 63)
+#define HDFGRTR_EL2_PMBIDR_EL1_MASK GENMASK(63, 63)
+#define HDFGRTR_EL2_PMBIDR_EL1_SHIFT 63
+#define HDFGRTR_EL2_PMBIDR_EL1_WIDTH 1
+
+#define HDFGRTR_EL2_nPMSNEVFR_EL1 GENMASK(62, 62)
+#define HDFGRTR_EL2_nPMSNEVFR_EL1_MASK GENMASK(62, 62)
+#define HDFGRTR_EL2_nPMSNEVFR_EL1_SHIFT 62
+#define HDFGRTR_EL2_nPMSNEVFR_EL1_WIDTH 1
+
+#define HDFGRTR_EL2_nBRBDATA GENMASK(61, 61)
+#define HDFGRTR_EL2_nBRBDATA_MASK GENMASK(61, 61)
+#define HDFGRTR_EL2_nBRBDATA_SHIFT 61
+#define HDFGRTR_EL2_nBRBDATA_WIDTH 1
+
+#define HDFGRTR_EL2_nBRBCTL GENMASK(60, 60)
+#define HDFGRTR_EL2_nBRBCTL_MASK GENMASK(60, 60)
+#define HDFGRTR_EL2_nBRBCTL_SHIFT 60
+#define HDFGRTR_EL2_nBRBCTL_WIDTH 1
+
+#define HDFGRTR_EL2_nBRBIDR GENMASK(59, 59)
+#define HDFGRTR_EL2_nBRBIDR_MASK GENMASK(59, 59)
+#define HDFGRTR_EL2_nBRBIDR_SHIFT 59
+#define HDFGRTR_EL2_nBRBIDR_WIDTH 1
+
+#define HDFGRTR_EL2_PMCEIDn_EL0 GENMASK(58, 58)
+#define HDFGRTR_EL2_PMCEIDn_EL0_MASK GENMASK(58, 58)
+#define HDFGRTR_EL2_PMCEIDn_EL0_SHIFT 58
+#define HDFGRTR_EL2_PMCEIDn_EL0_WIDTH 1
+
+#define HDFGRTR_EL2_PMUSERENR_EL0 GENMASK(57, 57)
+#define HDFGRTR_EL2_PMUSERENR_EL0_MASK GENMASK(57, 57)
+#define HDFGRTR_EL2_PMUSERENR_EL0_SHIFT 57
+#define HDFGRTR_EL2_PMUSERENR_EL0_WIDTH 1
+
+#define HDFGRTR_EL2_TRBTRG_EL1 GENMASK(56, 56)
+#define HDFGRTR_EL2_TRBTRG_EL1_MASK GENMASK(56, 56)
+#define HDFGRTR_EL2_TRBTRG_EL1_SHIFT 56
+#define HDFGRTR_EL2_TRBTRG_EL1_WIDTH 1
+
+#define HDFGRTR_EL2_TRBSR_EL1 GENMASK(55, 55)
+#define HDFGRTR_EL2_TRBSR_EL1_MASK GENMASK(55, 55)
+#define HDFGRTR_EL2_TRBSR_EL1_SHIFT 55
+#define HDFGRTR_EL2_TRBSR_EL1_WIDTH 1
+
+#define HDFGRTR_EL2_TRBPTR_EL1 GENMASK(54, 54)
+#define HDFGRTR_EL2_TRBPTR_EL1_MASK GENMASK(54, 54)
+#define HDFGRTR_EL2_TRBPTR_EL1_SHIFT 54
+#define HDFGRTR_EL2_TRBPTR_EL1_WIDTH 1
+
+#define HDFGRTR_EL2_TRBMAR_EL1 GENMASK(53, 53)
+#define HDFGRTR_EL2_TRBMAR_EL1_MASK GENMASK(53, 53)
+#define HDFGRTR_EL2_TRBMAR_EL1_SHIFT 53
+#define HDFGRTR_EL2_TRBMAR_EL1_WIDTH 1
+
+#define HDFGRTR_EL2_TRBLIMITR_EL1 GENMASK(52, 52)
+#define HDFGRTR_EL2_TRBLIMITR_EL1_MASK GENMASK(52, 52)
+#define HDFGRTR_EL2_TRBLIMITR_EL1_SHIFT 52
+#define HDFGRTR_EL2_TRBLIMITR_EL1_WIDTH 1
+
+#define HDFGRTR_EL2_TRBIDR_EL1 GENMASK(51, 51)
+#define HDFGRTR_EL2_TRBIDR_EL1_MASK GENMASK(51, 51)
+#define HDFGRTR_EL2_TRBIDR_EL1_SHIFT 51
+#define HDFGRTR_EL2_TRBIDR_EL1_WIDTH 1
+
+#define HDFGRTR_EL2_TRBBASER_EL1 GENMASK(50, 50)
+#define HDFGRTR_EL2_TRBBASER_EL1_MASK GENMASK(50, 50)
+#define HDFGRTR_EL2_TRBBASER_EL1_SHIFT 50
+#define HDFGRTR_EL2_TRBBASER_EL1_WIDTH 1
+
+#define HDFGRTR_EL2_TRCVICTLR GENMASK(48, 48)
+#define HDFGRTR_EL2_TRCVICTLR_MASK GENMASK(48, 48)
+#define HDFGRTR_EL2_TRCVICTLR_SHIFT 48
+#define HDFGRTR_EL2_TRCVICTLR_WIDTH 1
+
+#define HDFGRTR_EL2_TRCSTATR GENMASK(47, 47)
+#define HDFGRTR_EL2_TRCSTATR_MASK GENMASK(47, 47)
+#define HDFGRTR_EL2_TRCSTATR_SHIFT 47
+#define HDFGRTR_EL2_TRCSTATR_WIDTH 1
+
+#define HDFGRTR_EL2_TRCSSCSRn GENMASK(46, 46)
+#define HDFGRTR_EL2_TRCSSCSRn_MASK GENMASK(46, 46)
+#define HDFGRTR_EL2_TRCSSCSRn_SHIFT 46
+#define HDFGRTR_EL2_TRCSSCSRn_WIDTH 1
+
+#define HDFGRTR_EL2_TRCSEQSTR GENMASK(45, 45)
+#define HDFGRTR_EL2_TRCSEQSTR_MASK GENMASK(45, 45)
+#define HDFGRTR_EL2_TRCSEQSTR_SHIFT 45
+#define HDFGRTR_EL2_TRCSEQSTR_WIDTH 1
+
+#define HDFGRTR_EL2_TRCPRGCTLR GENMASK(44, 44)
+#define HDFGRTR_EL2_TRCPRGCTLR_MASK GENMASK(44, 44)
+#define HDFGRTR_EL2_TRCPRGCTLR_SHIFT 44
+#define HDFGRTR_EL2_TRCPRGCTLR_WIDTH 1
+
+#define HDFGRTR_EL2_TRCOSLSR GENMASK(43, 43)
+#define HDFGRTR_EL2_TRCOSLSR_MASK GENMASK(43, 43)
+#define HDFGRTR_EL2_TRCOSLSR_SHIFT 43
+#define HDFGRTR_EL2_TRCOSLSR_WIDTH 1
+
+#define HDFGRTR_EL2_TRCIMSPECn GENMASK(41, 41)
+#define HDFGRTR_EL2_TRCIMSPECn_MASK GENMASK(41, 41)
+#define HDFGRTR_EL2_TRCIMSPECn_SHIFT 41
+#define HDFGRTR_EL2_TRCIMSPECn_WIDTH 1
+
+#define HDFGRTR_EL2_TRCID GENMASK(40, 40)
+#define HDFGRTR_EL2_TRCID_MASK GENMASK(40, 40)
+#define HDFGRTR_EL2_TRCID_SHIFT 40
+#define HDFGRTR_EL2_TRCID_WIDTH 1
+
+#define HDFGRTR_EL2_TRCCNTVRn GENMASK(37, 37)
+#define HDFGRTR_EL2_TRCCNTVRn_MASK GENMASK(37, 37)
+#define HDFGRTR_EL2_TRCCNTVRn_SHIFT 37
+#define HDFGRTR_EL2_TRCCNTVRn_WIDTH 1
+
+#define HDFGRTR_EL2_TRCCLAIM GENMASK(36, 36)
+#define HDFGRTR_EL2_TRCCLAIM_MASK GENMASK(36, 36)
+#define HDFGRTR_EL2_TRCCLAIM_SHIFT 36
+#define HDFGRTR_EL2_TRCCLAIM_WIDTH 1
+
+#define HDFGRTR_EL2_TRCAUXCTLR GENMASK(35, 35)
+#define HDFGRTR_EL2_TRCAUXCTLR_MASK GENMASK(35, 35)
+#define HDFGRTR_EL2_TRCAUXCTLR_SHIFT 35
+#define HDFGRTR_EL2_TRCAUXCTLR_WIDTH 1
+
+#define HDFGRTR_EL2_TRCAUTHSTATUS GENMASK(34, 34)
+#define HDFGRTR_EL2_TRCAUTHSTATUS_MASK GENMASK(34, 34)
+#define HDFGRTR_EL2_TRCAUTHSTATUS_SHIFT 34
+#define HDFGRTR_EL2_TRCAUTHSTATUS_WIDTH 1
+
+#define HDFGRTR_EL2_TRC GENMASK(33, 33)
+#define HDFGRTR_EL2_TRC_MASK GENMASK(33, 33)
+#define HDFGRTR_EL2_TRC_SHIFT 33
+#define HDFGRTR_EL2_TRC_WIDTH 1
+
+#define HDFGRTR_EL2_PMSLATFR_EL1 GENMASK(32, 32)
+#define HDFGRTR_EL2_PMSLATFR_EL1_MASK GENMASK(32, 32)
+#define HDFGRTR_EL2_PMSLATFR_EL1_SHIFT 32
+#define HDFGRTR_EL2_PMSLATFR_EL1_WIDTH 1
+
+#define HDFGRTR_EL2_PMSIRR_EL1 GENMASK(31, 31)
+#define HDFGRTR_EL2_PMSIRR_EL1_MASK GENMASK(31, 31)
+#define HDFGRTR_EL2_PMSIRR_EL1_SHIFT 31
+#define HDFGRTR_EL2_PMSIRR_EL1_WIDTH 1
+
+#define HDFGRTR_EL2_PMSIDR_EL1 GENMASK(30, 30)
+#define HDFGRTR_EL2_PMSIDR_EL1_MASK GENMASK(30, 30)
+#define HDFGRTR_EL2_PMSIDR_EL1_SHIFT 30
+#define HDFGRTR_EL2_PMSIDR_EL1_WIDTH 1
+
+#define HDFGRTR_EL2_PMSICR_EL1 GENMASK(29, 29)
+#define HDFGRTR_EL2_PMSICR_EL1_MASK GENMASK(29, 29)
+#define HDFGRTR_EL2_PMSICR_EL1_SHIFT 29
+#define HDFGRTR_EL2_PMSICR_EL1_WIDTH 1
+
+#define HDFGRTR_EL2_PMSFCR_EL1 GENMASK(28, 28)
+#define HDFGRTR_EL2_PMSFCR_EL1_MASK GENMASK(28, 28)
+#define HDFGRTR_EL2_PMSFCR_EL1_SHIFT 28
+#define HDFGRTR_EL2_PMSFCR_EL1_WIDTH 1
+
+#define HDFGRTR_EL2_PMSEVFR_EL1 GENMASK(27, 27)
+#define HDFGRTR_EL2_PMSEVFR_EL1_MASK GENMASK(27, 27)
+#define HDFGRTR_EL2_PMSEVFR_EL1_SHIFT 27
+#define HDFGRTR_EL2_PMSEVFR_EL1_WIDTH 1
+
+#define HDFGRTR_EL2_PMSCR_EL1 GENMASK(26, 26)
+#define HDFGRTR_EL2_PMSCR_EL1_MASK GENMASK(26, 26)
+#define HDFGRTR_EL2_PMSCR_EL1_SHIFT 26
+#define HDFGRTR_EL2_PMSCR_EL1_WIDTH 1
+
+#define HDFGRTR_EL2_PMBSR_EL1 GENMASK(25, 25)
+#define HDFGRTR_EL2_PMBSR_EL1_MASK GENMASK(25, 25)
+#define HDFGRTR_EL2_PMBSR_EL1_SHIFT 25
+#define HDFGRTR_EL2_PMBSR_EL1_WIDTH 1
+
+#define HDFGRTR_EL2_PMBPTR_EL1 GENMASK(24, 24)
+#define HDFGRTR_EL2_PMBPTR_EL1_MASK GENMASK(24, 24)
+#define HDFGRTR_EL2_PMBPTR_EL1_SHIFT 24
+#define HDFGRTR_EL2_PMBPTR_EL1_WIDTH 1
+
+#define HDFGRTR_EL2_PMBLIMITR_EL1 GENMASK(23, 23)
+#define HDFGRTR_EL2_PMBLIMITR_EL1_MASK GENMASK(23, 23)
+#define HDFGRTR_EL2_PMBLIMITR_EL1_SHIFT 23
+#define HDFGRTR_EL2_PMBLIMITR_EL1_WIDTH 1
+
+#define HDFGRTR_EL2_PMMIR_EL1 GENMASK(22, 22)
+#define HDFGRTR_EL2_PMMIR_EL1_MASK GENMASK(22, 22)
+#define HDFGRTR_EL2_PMMIR_EL1_SHIFT 22
+#define HDFGRTR_EL2_PMMIR_EL1_WIDTH 1
+
+#define HDFGRTR_EL2_PMSELR_EL0 GENMASK(19, 19)
+#define HDFGRTR_EL2_PMSELR_EL0_MASK GENMASK(19, 19)
+#define HDFGRTR_EL2_PMSELR_EL0_SHIFT 19
+#define HDFGRTR_EL2_PMSELR_EL0_WIDTH 1
+
+#define HDFGRTR_EL2_PMOVS GENMASK(18, 18)
+#define HDFGRTR_EL2_PMOVS_MASK GENMASK(18, 18)
+#define HDFGRTR_EL2_PMOVS_SHIFT 18
+#define HDFGRTR_EL2_PMOVS_WIDTH 1
+
+#define HDFGRTR_EL2_PMINTEN GENMASK(17, 17)
+#define HDFGRTR_EL2_PMINTEN_MASK GENMASK(17, 17)
+#define HDFGRTR_EL2_PMINTEN_SHIFT 17
+#define HDFGRTR_EL2_PMINTEN_WIDTH 1
+
+#define HDFGRTR_EL2_PMCNTEN GENMASK(16, 16)
+#define HDFGRTR_EL2_PMCNTEN_MASK GENMASK(16, 16)
+#define HDFGRTR_EL2_PMCNTEN_SHIFT 16
+#define HDFGRTR_EL2_PMCNTEN_WIDTH 1
+
+#define HDFGRTR_EL2_PMCCNTR_EL0 GENMASK(15, 15)
+#define HDFGRTR_EL2_PMCCNTR_EL0_MASK GENMASK(15, 15)
+#define HDFGRTR_EL2_PMCCNTR_EL0_SHIFT 15
+#define HDFGRTR_EL2_PMCCNTR_EL0_WIDTH 1
+
+#define HDFGRTR_EL2_PMCCFILTR_EL0 GENMASK(14, 14)
+#define HDFGRTR_EL2_PMCCFILTR_EL0_MASK GENMASK(14, 14)
+#define HDFGRTR_EL2_PMCCFILTR_EL0_SHIFT 14
+#define HDFGRTR_EL2_PMCCFILTR_EL0_WIDTH 1
+
+#define HDFGRTR_EL2_PMEVTYPERn_EL0 GENMASK(13, 13)
+#define HDFGRTR_EL2_PMEVTYPERn_EL0_MASK GENMASK(13, 13)
+#define HDFGRTR_EL2_PMEVTYPERn_EL0_SHIFT 13
+#define HDFGRTR_EL2_PMEVTYPERn_EL0_WIDTH 1
+
+#define HDFGRTR_EL2_PMEVCNTRn_EL0 GENMASK(12, 12)
+#define HDFGRTR_EL2_PMEVCNTRn_EL0_MASK GENMASK(12, 12)
+#define HDFGRTR_EL2_PMEVCNTRn_EL0_SHIFT 12
+#define HDFGRTR_EL2_PMEVCNTRn_EL0_WIDTH 1
+
+#define HDFGRTR_EL2_OSDLR_EL1 GENMASK(11, 11)
+#define HDFGRTR_EL2_OSDLR_EL1_MASK GENMASK(11, 11)
+#define HDFGRTR_EL2_OSDLR_EL1_SHIFT 11
+#define HDFGRTR_EL2_OSDLR_EL1_WIDTH 1
+
+#define HDFGRTR_EL2_OSECCR_EL1 GENMASK(10, 10)
+#define HDFGRTR_EL2_OSECCR_EL1_MASK GENMASK(10, 10)
+#define HDFGRTR_EL2_OSECCR_EL1_SHIFT 10
+#define HDFGRTR_EL2_OSECCR_EL1_WIDTH 1
+
+#define HDFGRTR_EL2_OSLSR_EL1 GENMASK(9, 9)
+#define HDFGRTR_EL2_OSLSR_EL1_MASK GENMASK(9, 9)
+#define HDFGRTR_EL2_OSLSR_EL1_SHIFT 9
+#define HDFGRTR_EL2_OSLSR_EL1_WIDTH 1
+
+#define HDFGRTR_EL2_DBGPRCR_EL1 GENMASK(7, 7)
+#define HDFGRTR_EL2_DBGPRCR_EL1_MASK GENMASK(7, 7)
+#define HDFGRTR_EL2_DBGPRCR_EL1_SHIFT 7
+#define HDFGRTR_EL2_DBGPRCR_EL1_WIDTH 1
+
+#define HDFGRTR_EL2_DBGAUTHSTATUS_EL1 GENMASK(6, 6)
+#define HDFGRTR_EL2_DBGAUTHSTATUS_EL1_MASK GENMASK(6, 6)
+#define HDFGRTR_EL2_DBGAUTHSTATUS_EL1_SHIFT 6
+#define HDFGRTR_EL2_DBGAUTHSTATUS_EL1_WIDTH 1
+
+#define HDFGRTR_EL2_DBGCLAIM GENMASK(5, 5)
+#define HDFGRTR_EL2_DBGCLAIM_MASK GENMASK(5, 5)
+#define HDFGRTR_EL2_DBGCLAIM_SHIFT 5
+#define HDFGRTR_EL2_DBGCLAIM_WIDTH 1
+
+#define HDFGRTR_EL2_MDSCR_EL1 GENMASK(4, 4)
+#define HDFGRTR_EL2_MDSCR_EL1_MASK GENMASK(4, 4)
+#define HDFGRTR_EL2_MDSCR_EL1_SHIFT 4
+#define HDFGRTR_EL2_MDSCR_EL1_WIDTH 1
+
+#define HDFGRTR_EL2_DBGWVRn_EL1 GENMASK(3, 3)
+#define HDFGRTR_EL2_DBGWVRn_EL1_MASK GENMASK(3, 3)
+#define HDFGRTR_EL2_DBGWVRn_EL1_SHIFT 3
+#define HDFGRTR_EL2_DBGWVRn_EL1_WIDTH 1
+
+#define HDFGRTR_EL2_DBGWCRn_EL1 GENMASK(2, 2)
+#define HDFGRTR_EL2_DBGWCRn_EL1_MASK GENMASK(2, 2)
+#define HDFGRTR_EL2_DBGWCRn_EL1_SHIFT 2
+#define HDFGRTR_EL2_DBGWCRn_EL1_WIDTH 1
+
+#define HDFGRTR_EL2_DBGBVRn_EL1 GENMASK(1, 1)
+#define HDFGRTR_EL2_DBGBVRn_EL1_MASK GENMASK(1, 1)
+#define HDFGRTR_EL2_DBGBVRn_EL1_SHIFT 1
+#define HDFGRTR_EL2_DBGBVRn_EL1_WIDTH 1
+
+#define HDFGRTR_EL2_DBGBCRn_EL1 GENMASK(0, 0)
+#define HDFGRTR_EL2_DBGBCRn_EL1_MASK GENMASK(0, 0)
+#define HDFGRTR_EL2_DBGBCRn_EL1_SHIFT 0
+#define HDFGRTR_EL2_DBGBCRn_EL1_WIDTH 1
+
+#define HDFGRTR_EL2_RES0 (UL(0) | GENMASK_ULL(49, 49) | GENMASK_ULL(42, 42) | GENMASK_ULL(39, 38) | GENMASK_ULL(21, 20) | GENMASK_ULL(8, 8))
+#define HDFGRTR_EL2_RES1 (UL(0))
+#define HDFGRTR_EL2_UNKN (UL(0))
+
+#define REG_HDFGWTR_EL2 S3_4_C3_C1_5
+#define SYS_HDFGWTR_EL2 sys_reg(3, 4, 3, 1, 5)
+#define SYS_HDFGWTR_EL2_Op0 3
+#define SYS_HDFGWTR_EL2_Op1 4
+#define SYS_HDFGWTR_EL2_CRn 3
+#define SYS_HDFGWTR_EL2_CRm 1
+#define SYS_HDFGWTR_EL2_Op2 5
+
+#define HDFGWTR_EL2_nPMSNEVFR_EL1 GENMASK(62, 62)
+#define HDFGWTR_EL2_nPMSNEVFR_EL1_MASK GENMASK(62, 62)
+#define HDFGWTR_EL2_nPMSNEVFR_EL1_SHIFT 62
+#define HDFGWTR_EL2_nPMSNEVFR_EL1_WIDTH 1
+
+#define HDFGWTR_EL2_nBRBDATA GENMASK(61, 61)
+#define HDFGWTR_EL2_nBRBDATA_MASK GENMASK(61, 61)
+#define HDFGWTR_EL2_nBRBDATA_SHIFT 61
+#define HDFGWTR_EL2_nBRBDATA_WIDTH 1
+
+#define HDFGWTR_EL2_nBRBCTL GENMASK(60, 60)
+#define HDFGWTR_EL2_nBRBCTL_MASK GENMASK(60, 60)
+#define HDFGWTR_EL2_nBRBCTL_SHIFT 60
+#define HDFGWTR_EL2_nBRBCTL_WIDTH 1
+
+#define HDFGWTR_EL2_PMUSERENR_EL0 GENMASK(57, 57)
+#define HDFGWTR_EL2_PMUSERENR_EL0_MASK GENMASK(57, 57)
+#define HDFGWTR_EL2_PMUSERENR_EL0_SHIFT 57
+#define HDFGWTR_EL2_PMUSERENR_EL0_WIDTH 1
+
+#define HDFGWTR_EL2_TRBTRG_EL1 GENMASK(56, 56)
+#define HDFGWTR_EL2_TRBTRG_EL1_MASK GENMASK(56, 56)
+#define HDFGWTR_EL2_TRBTRG_EL1_SHIFT 56
+#define HDFGWTR_EL2_TRBTRG_EL1_WIDTH 1
+
+#define HDFGWTR_EL2_TRBSR_EL1 GENMASK(55, 55)
+#define HDFGWTR_EL2_TRBSR_EL1_MASK GENMASK(55, 55)
+#define HDFGWTR_EL2_TRBSR_EL1_SHIFT 55
+#define HDFGWTR_EL2_TRBSR_EL1_WIDTH 1
+
+#define HDFGWTR_EL2_TRBPTR_EL1 GENMASK(54, 54)
+#define HDFGWTR_EL2_TRBPTR_EL1_MASK GENMASK(54, 54)
+#define HDFGWTR_EL2_TRBPTR_EL1_SHIFT 54
+#define HDFGWTR_EL2_TRBPTR_EL1_WIDTH 1
+
+#define HDFGWTR_EL2_TRBMAR_EL1 GENMASK(53, 53)
+#define HDFGWTR_EL2_TRBMAR_EL1_MASK GENMASK(53, 53)
+#define HDFGWTR_EL2_TRBMAR_EL1_SHIFT 53
+#define HDFGWTR_EL2_TRBMAR_EL1_WIDTH 1
+
+#define HDFGWTR_EL2_TRBLIMITR_EL1 GENMASK(52, 52)
+#define HDFGWTR_EL2_TRBLIMITR_EL1_MASK GENMASK(52, 52)
+#define HDFGWTR_EL2_TRBLIMITR_EL1_SHIFT 52
+#define HDFGWTR_EL2_TRBLIMITR_EL1_WIDTH 1
+
+#define HDFGWTR_EL2_TRBBASER_EL1 GENMASK(50, 50)
+#define HDFGWTR_EL2_TRBBASER_EL1_MASK GENMASK(50, 50)
+#define HDFGWTR_EL2_TRBBASER_EL1_SHIFT 50
+#define HDFGWTR_EL2_TRBBASER_EL1_WIDTH 1
+
+#define HDFGWTR_EL2_TRFCR_EL1 GENMASK(49, 49)
+#define HDFGWTR_EL2_TRFCR_EL1_MASK GENMASK(49, 49)
+#define HDFGWTR_EL2_TRFCR_EL1_SHIFT 49
+#define HDFGWTR_EL2_TRFCR_EL1_WIDTH 1
+
+#define HDFGWTR_EL2_TRCVICTLR GENMASK(48, 48)
+#define HDFGWTR_EL2_TRCVICTLR_MASK GENMASK(48, 48)
+#define HDFGWTR_EL2_TRCVICTLR_SHIFT 48
+#define HDFGWTR_EL2_TRCVICTLR_WIDTH 1
+
+#define HDFGWTR_EL2_TRCSSCSRn GENMASK(46, 46)
+#define HDFGWTR_EL2_TRCSSCSRn_MASK GENMASK(46, 46)
+#define HDFGWTR_EL2_TRCSSCSRn_SHIFT 46
+#define HDFGWTR_EL2_TRCSSCSRn_WIDTH 1
+
+#define HDFGWTR_EL2_TRCSEQSTR GENMASK(45, 45)
+#define HDFGWTR_EL2_TRCSEQSTR_MASK GENMASK(45, 45)
+#define HDFGWTR_EL2_TRCSEQSTR_SHIFT 45
+#define HDFGWTR_EL2_TRCSEQSTR_WIDTH 1
+
+#define HDFGWTR_EL2_TRCPRGCTLR GENMASK(44, 44)
+#define HDFGWTR_EL2_TRCPRGCTLR_MASK GENMASK(44, 44)
+#define HDFGWTR_EL2_TRCPRGCTLR_SHIFT 44
+#define HDFGWTR_EL2_TRCPRGCTLR_WIDTH 1
+
+#define HDFGWTR_EL2_TRCOSLAR GENMASK(42, 42)
+#define HDFGWTR_EL2_TRCOSLAR_MASK GENMASK(42, 42)
+#define HDFGWTR_EL2_TRCOSLAR_SHIFT 42
+#define HDFGWTR_EL2_TRCOSLAR_WIDTH 1
+
+#define HDFGWTR_EL2_TRCIMSPECn GENMASK(41, 41)
+#define HDFGWTR_EL2_TRCIMSPECn_MASK GENMASK(41, 41)
+#define HDFGWTR_EL2_TRCIMSPECn_SHIFT 41
+#define HDFGWTR_EL2_TRCIMSPECn_WIDTH 1
+
+#define HDFGWTR_EL2_TRCCNTVRn GENMASK(37, 37)
+#define HDFGWTR_EL2_TRCCNTVRn_MASK GENMASK(37, 37)
+#define HDFGWTR_EL2_TRCCNTVRn_SHIFT 37
+#define HDFGWTR_EL2_TRCCNTVRn_WIDTH 1
+
+#define HDFGWTR_EL2_TRCCLAIM GENMASK(36, 36)
+#define HDFGWTR_EL2_TRCCLAIM_MASK GENMASK(36, 36)
+#define HDFGWTR_EL2_TRCCLAIM_SHIFT 36
+#define HDFGWTR_EL2_TRCCLAIM_WIDTH 1
+
+#define HDFGWTR_EL2_TRCAUXCTLR GENMASK(35, 35)
+#define HDFGWTR_EL2_TRCAUXCTLR_MASK GENMASK(35, 35)
+#define HDFGWTR_EL2_TRCAUXCTLR_SHIFT 35
+#define HDFGWTR_EL2_TRCAUXCTLR_WIDTH 1
+
+#define HDFGWTR_EL2_TRC GENMASK(33, 33)
+#define HDFGWTR_EL2_TRC_MASK GENMASK(33, 33)
+#define HDFGWTR_EL2_TRC_SHIFT 33
+#define HDFGWTR_EL2_TRC_WIDTH 1
+
+#define HDFGWTR_EL2_PMSLATFR_EL1 GENMASK(32, 32)
+#define HDFGWTR_EL2_PMSLATFR_EL1_MASK GENMASK(32, 32)
+#define HDFGWTR_EL2_PMSLATFR_EL1_SHIFT 32
+#define HDFGWTR_EL2_PMSLATFR_EL1_WIDTH 1
+
+#define HDFGWTR_EL2_PMSIRR_EL1 GENMASK(31, 31)
+#define HDFGWTR_EL2_PMSIRR_EL1_MASK GENMASK(31, 31)
+#define HDFGWTR_EL2_PMSIRR_EL1_SHIFT 31
+#define HDFGWTR_EL2_PMSIRR_EL1_WIDTH 1
+
+#define HDFGWTR_EL2_PMSICR_EL1 GENMASK(29, 29)
+#define HDFGWTR_EL2_PMSICR_EL1_MASK GENMASK(29, 29)
+#define HDFGWTR_EL2_PMSICR_EL1_SHIFT 29
+#define HDFGWTR_EL2_PMSICR_EL1_WIDTH 1
+
+#define HDFGWTR_EL2_PMSFCR_EL1 GENMASK(28, 28)
+#define HDFGWTR_EL2_PMSFCR_EL1_MASK GENMASK(28, 28)
+#define HDFGWTR_EL2_PMSFCR_EL1_SHIFT 28
+#define HDFGWTR_EL2_PMSFCR_EL1_WIDTH 1
+
+#define HDFGWTR_EL2_PMSEVFR_EL1 GENMASK(27, 27)
+#define HDFGWTR_EL2_PMSEVFR_EL1_MASK GENMASK(27, 27)
+#define HDFGWTR_EL2_PMSEVFR_EL1_SHIFT 27
+#define HDFGWTR_EL2_PMSEVFR_EL1_WIDTH 1
+
+#define HDFGWTR_EL2_PMSCR_EL1 GENMASK(26, 26)
+#define HDFGWTR_EL2_PMSCR_EL1_MASK GENMASK(26, 26)
+#define HDFGWTR_EL2_PMSCR_EL1_SHIFT 26
+#define HDFGWTR_EL2_PMSCR_EL1_WIDTH 1
+
+#define HDFGWTR_EL2_PMBSR_EL1 GENMASK(25, 25)
+#define HDFGWTR_EL2_PMBSR_EL1_MASK GENMASK(25, 25)
+#define HDFGWTR_EL2_PMBSR_EL1_SHIFT 25
+#define HDFGWTR_EL2_PMBSR_EL1_WIDTH 1
+
+#define HDFGWTR_EL2_PMBPTR_EL1 GENMASK(24, 24)
+#define HDFGWTR_EL2_PMBPTR_EL1_MASK GENMASK(24, 24)
+#define HDFGWTR_EL2_PMBPTR_EL1_SHIFT 24
+#define HDFGWTR_EL2_PMBPTR_EL1_WIDTH 1
+
+#define HDFGWTR_EL2_PMBLIMITR_EL1 GENMASK(23, 23)
+#define HDFGWTR_EL2_PMBLIMITR_EL1_MASK GENMASK(23, 23)
+#define HDFGWTR_EL2_PMBLIMITR_EL1_SHIFT 23
+#define HDFGWTR_EL2_PMBLIMITR_EL1_WIDTH 1
+
+#define HDFGWTR_EL2_PMCR_EL0 GENMASK(21, 21)
+#define HDFGWTR_EL2_PMCR_EL0_MASK GENMASK(21, 21)
+#define HDFGWTR_EL2_PMCR_EL0_SHIFT 21
+#define HDFGWTR_EL2_PMCR_EL0_WIDTH 1
+
+#define HDFGWTR_EL2_PMSWINC_EL0 GENMASK(20, 20)
+#define HDFGWTR_EL2_PMSWINC_EL0_MASK GENMASK(20, 20)
+#define HDFGWTR_EL2_PMSWINC_EL0_SHIFT 20
+#define HDFGWTR_EL2_PMSWINC_EL0_WIDTH 1
+
+#define HDFGWTR_EL2_PMSELR_EL0 GENMASK(19, 19)
+#define HDFGWTR_EL2_PMSELR_EL0_MASK GENMASK(19, 19)
+#define HDFGWTR_EL2_PMSELR_EL0_SHIFT 19
+#define HDFGWTR_EL2_PMSELR_EL0_WIDTH 1
+
+#define HDFGWTR_EL2_PMOVS GENMASK(18, 18)
+#define HDFGWTR_EL2_PMOVS_MASK GENMASK(18, 18)
+#define HDFGWTR_EL2_PMOVS_SHIFT 18
+#define HDFGWTR_EL2_PMOVS_WIDTH 1
+
+#define HDFGWTR_EL2_PMINTEN GENMASK(17, 17)
+#define HDFGWTR_EL2_PMINTEN_MASK GENMASK(17, 17)
+#define HDFGWTR_EL2_PMINTEN_SHIFT 17
+#define HDFGWTR_EL2_PMINTEN_WIDTH 1
+
+#define HDFGWTR_EL2_PMCNTEN GENMASK(16, 16)
+#define HDFGWTR_EL2_PMCNTEN_MASK GENMASK(16, 16)
+#define HDFGWTR_EL2_PMCNTEN_SHIFT 16
+#define HDFGWTR_EL2_PMCNTEN_WIDTH 1
+
+#define HDFGWTR_EL2_PMCCNTR_EL0 GENMASK(15, 15)
+#define HDFGWTR_EL2_PMCCNTR_EL0_MASK GENMASK(15, 15)
+#define HDFGWTR_EL2_PMCCNTR_EL0_SHIFT 15
+#define HDFGWTR_EL2_PMCCNTR_EL0_WIDTH 1
+
+#define HDFGWTR_EL2_PMCCFILTR_EL0 GENMASK(14, 14)
+#define HDFGWTR_EL2_PMCCFILTR_EL0_MASK GENMASK(14, 14)
+#define HDFGWTR_EL2_PMCCFILTR_EL0_SHIFT 14
+#define HDFGWTR_EL2_PMCCFILTR_EL0_WIDTH 1
+
+#define HDFGWTR_EL2_PMEVTYPERn_EL0 GENMASK(13, 13)
+#define HDFGWTR_EL2_PMEVTYPERn_EL0_MASK GENMASK(13, 13)
+#define HDFGWTR_EL2_PMEVTYPERn_EL0_SHIFT 13
+#define HDFGWTR_EL2_PMEVTYPERn_EL0_WIDTH 1
+
+#define HDFGWTR_EL2_PMEVCNTRn_EL0 GENMASK(12, 12)
+#define HDFGWTR_EL2_PMEVCNTRn_EL0_MASK GENMASK(12, 12)
+#define HDFGWTR_EL2_PMEVCNTRn_EL0_SHIFT 12
+#define HDFGWTR_EL2_PMEVCNTRn_EL0_WIDTH 1
+
+#define HDFGWTR_EL2_OSDLR_EL1 GENMASK(11, 11)
+#define HDFGWTR_EL2_OSDLR_EL1_MASK GENMASK(11, 11)
+#define HDFGWTR_EL2_OSDLR_EL1_SHIFT 11
+#define HDFGWTR_EL2_OSDLR_EL1_WIDTH 1
+
+#define HDFGWTR_EL2_OSECCR_EL1 GENMASK(10, 10)
+#define HDFGWTR_EL2_OSECCR_EL1_MASK GENMASK(10, 10)
+#define HDFGWTR_EL2_OSECCR_EL1_SHIFT 10
+#define HDFGWTR_EL2_OSECCR_EL1_WIDTH 1
+
+#define HDFGWTR_EL2_OSLAR_EL1 GENMASK(8, 8)
+#define HDFGWTR_EL2_OSLAR_EL1_MASK GENMASK(8, 8)
+#define HDFGWTR_EL2_OSLAR_EL1_SHIFT 8
+#define HDFGWTR_EL2_OSLAR_EL1_WIDTH 1
+
+#define HDFGWTR_EL2_DBGPRCR_EL1 GENMASK(7, 7)
+#define HDFGWTR_EL2_DBGPRCR_EL1_MASK GENMASK(7, 7)
+#define HDFGWTR_EL2_DBGPRCR_EL1_SHIFT 7
+#define HDFGWTR_EL2_DBGPRCR_EL1_WIDTH 1
+
+#define HDFGWTR_EL2_DBGCLAIM GENMASK(5, 5)
+#define HDFGWTR_EL2_DBGCLAIM_MASK GENMASK(5, 5)
+#define HDFGWTR_EL2_DBGCLAIM_SHIFT 5
+#define HDFGWTR_EL2_DBGCLAIM_WIDTH 1
+
+#define HDFGWTR_EL2_MDSCR_EL1 GENMASK(4, 4)
+#define HDFGWTR_EL2_MDSCR_EL1_MASK GENMASK(4, 4)
+#define HDFGWTR_EL2_MDSCR_EL1_SHIFT 4
+#define HDFGWTR_EL2_MDSCR_EL1_WIDTH 1
+
+#define HDFGWTR_EL2_DBGWVRn_EL1 GENMASK(3, 3)
+#define HDFGWTR_EL2_DBGWVRn_EL1_MASK GENMASK(3, 3)
+#define HDFGWTR_EL2_DBGWVRn_EL1_SHIFT 3
+#define HDFGWTR_EL2_DBGWVRn_EL1_WIDTH 1
+
+#define HDFGWTR_EL2_DBGWCRn_EL1 GENMASK(2, 2)
+#define HDFGWTR_EL2_DBGWCRn_EL1_MASK GENMASK(2, 2)
+#define HDFGWTR_EL2_DBGWCRn_EL1_SHIFT 2
+#define HDFGWTR_EL2_DBGWCRn_EL1_WIDTH 1
+
+#define HDFGWTR_EL2_DBGBVRn_EL1 GENMASK(1, 1)
+#define HDFGWTR_EL2_DBGBVRn_EL1_MASK GENMASK(1, 1)
+#define HDFGWTR_EL2_DBGBVRn_EL1_SHIFT 1
+#define HDFGWTR_EL2_DBGBVRn_EL1_WIDTH 1
+
+#define HDFGWTR_EL2_DBGBCRn_EL1 GENMASK(0, 0)
+#define HDFGWTR_EL2_DBGBCRn_EL1_MASK GENMASK(0, 0)
+#define HDFGWTR_EL2_DBGBCRn_EL1_SHIFT 0
+#define HDFGWTR_EL2_DBGBCRn_EL1_WIDTH 1
+
+#define HDFGWTR_EL2_RES0 (UL(0) | GENMASK_ULL(63, 63) | GENMASK_ULL(59, 58) | GENMASK_ULL(51, 51) | GENMASK_ULL(47, 47) | GENMASK_ULL(43, 43) | GENMASK_ULL(40, 38) | GENMASK_ULL(34, 34) | GENMASK_ULL(30, 30) | GENMASK_ULL(22, 22) | GENMASK_ULL(9, 9) | GENMASK_ULL(6, 6))
+#define HDFGWTR_EL2_RES1 (UL(0))
+#define HDFGWTR_EL2_UNKN (UL(0))
+
+#define REG_ZCR_EL2 S3_4_C1_C2_0
+#define SYS_ZCR_EL2 sys_reg(3, 4, 1, 2, 0)
+#define SYS_ZCR_EL2_Op0 3
+#define SYS_ZCR_EL2_Op1 4
+#define SYS_ZCR_EL2_CRn 1
+#define SYS_ZCR_EL2_CRm 2
+#define SYS_ZCR_EL2_Op2 0
+
+/* For ZCR_EL2 fields see ZCR_ELx */
+
+#define REG_HCRX_EL2 S3_4_C1_C2_2
+#define SYS_HCRX_EL2 sys_reg(3, 4, 1, 2, 2)
+#define SYS_HCRX_EL2_Op0 3
+#define SYS_HCRX_EL2_Op1 4
+#define SYS_HCRX_EL2_CRn 1
+#define SYS_HCRX_EL2_CRm 2
+#define SYS_HCRX_EL2_Op2 2
+
+#define HCRX_EL2_GCSEn GENMASK(22, 22)
+#define HCRX_EL2_GCSEn_MASK GENMASK(22, 22)
+#define HCRX_EL2_GCSEn_SHIFT 22
+#define HCRX_EL2_GCSEn_WIDTH 1
+
+#define HCRX_EL2_EnIDCP128 GENMASK(21, 21)
+#define HCRX_EL2_EnIDCP128_MASK GENMASK(21, 21)
+#define HCRX_EL2_EnIDCP128_SHIFT 21
+#define HCRX_EL2_EnIDCP128_WIDTH 1
+
+#define HCRX_EL2_EnSDERR GENMASK(20, 20)
+#define HCRX_EL2_EnSDERR_MASK GENMASK(20, 20)
+#define HCRX_EL2_EnSDERR_SHIFT 20
+#define HCRX_EL2_EnSDERR_WIDTH 1
+
+#define HCRX_EL2_TMEA GENMASK(19, 19)
+#define HCRX_EL2_TMEA_MASK GENMASK(19, 19)
+#define HCRX_EL2_TMEA_SHIFT 19
+#define HCRX_EL2_TMEA_WIDTH 1
+
+#define HCRX_EL2_EnSNERR GENMASK(18, 18)
+#define HCRX_EL2_EnSNERR_MASK GENMASK(18, 18)
+#define HCRX_EL2_EnSNERR_SHIFT 18
+#define HCRX_EL2_EnSNERR_WIDTH 1
+
+#define HCRX_EL2_D128En GENMASK(17, 17)
+#define HCRX_EL2_D128En_MASK GENMASK(17, 17)
+#define HCRX_EL2_D128En_SHIFT 17
+#define HCRX_EL2_D128En_WIDTH 1
+
+#define HCRX_EL2_PTTWI GENMASK(16, 16)
+#define HCRX_EL2_PTTWI_MASK GENMASK(16, 16)
+#define HCRX_EL2_PTTWI_SHIFT 16
+#define HCRX_EL2_PTTWI_WIDTH 1
+
+#define HCRX_EL2_SCTLR2En GENMASK(15, 15)
+#define HCRX_EL2_SCTLR2En_MASK GENMASK(15, 15)
+#define HCRX_EL2_SCTLR2En_SHIFT 15
+#define HCRX_EL2_SCTLR2En_WIDTH 1
+
+#define HCRX_EL2_TCR2En GENMASK(14, 14)
+#define HCRX_EL2_TCR2En_MASK GENMASK(14, 14)
+#define HCRX_EL2_TCR2En_SHIFT 14
+#define HCRX_EL2_TCR2En_WIDTH 1
+
+#define HCRX_EL2_MSCEn GENMASK(11, 11)
+#define HCRX_EL2_MSCEn_MASK GENMASK(11, 11)
+#define HCRX_EL2_MSCEn_SHIFT 11
+#define HCRX_EL2_MSCEn_WIDTH 1
+
+#define HCRX_EL2_MCE2 GENMASK(10, 10)
+#define HCRX_EL2_MCE2_MASK GENMASK(10, 10)
+#define HCRX_EL2_MCE2_SHIFT 10
+#define HCRX_EL2_MCE2_WIDTH 1
+
+#define HCRX_EL2_CMOW GENMASK(9, 9)
+#define HCRX_EL2_CMOW_MASK GENMASK(9, 9)
+#define HCRX_EL2_CMOW_SHIFT 9
+#define HCRX_EL2_CMOW_WIDTH 1
+
+#define HCRX_EL2_VFNMI GENMASK(8, 8)
+#define HCRX_EL2_VFNMI_MASK GENMASK(8, 8)
+#define HCRX_EL2_VFNMI_SHIFT 8
+#define HCRX_EL2_VFNMI_WIDTH 1
+
+#define HCRX_EL2_VINMI GENMASK(7, 7)
+#define HCRX_EL2_VINMI_MASK GENMASK(7, 7)
+#define HCRX_EL2_VINMI_SHIFT 7
+#define HCRX_EL2_VINMI_WIDTH 1
+
+#define HCRX_EL2_TALLINT GENMASK(6, 6)
+#define HCRX_EL2_TALLINT_MASK GENMASK(6, 6)
+#define HCRX_EL2_TALLINT_SHIFT 6
+#define HCRX_EL2_TALLINT_WIDTH 1
+
+#define HCRX_EL2_SMPME GENMASK(5, 5)
+#define HCRX_EL2_SMPME_MASK GENMASK(5, 5)
+#define HCRX_EL2_SMPME_SHIFT 5
+#define HCRX_EL2_SMPME_WIDTH 1
+
+#define HCRX_EL2_FGTnXS GENMASK(4, 4)
+#define HCRX_EL2_FGTnXS_MASK GENMASK(4, 4)
+#define HCRX_EL2_FGTnXS_SHIFT 4
+#define HCRX_EL2_FGTnXS_WIDTH 1
+
+#define HCRX_EL2_FnXS GENMASK(3, 3)
+#define HCRX_EL2_FnXS_MASK GENMASK(3, 3)
+#define HCRX_EL2_FnXS_SHIFT 3
+#define HCRX_EL2_FnXS_WIDTH 1
+
+#define HCRX_EL2_EnASR GENMASK(2, 2)
+#define HCRX_EL2_EnASR_MASK GENMASK(2, 2)
+#define HCRX_EL2_EnASR_SHIFT 2
+#define HCRX_EL2_EnASR_WIDTH 1
+
+#define HCRX_EL2_EnALS GENMASK(1, 1)
+#define HCRX_EL2_EnALS_MASK GENMASK(1, 1)
+#define HCRX_EL2_EnALS_SHIFT 1
+#define HCRX_EL2_EnALS_WIDTH 1
+
+#define HCRX_EL2_EnAS0 GENMASK(0, 0)
+#define HCRX_EL2_EnAS0_MASK GENMASK(0, 0)
+#define HCRX_EL2_EnAS0_SHIFT 0
+#define HCRX_EL2_EnAS0_WIDTH 1
+
+#define HCRX_EL2_RES0 (UL(0) | GENMASK_ULL(63, 23) | GENMASK_ULL(13, 12))
+#define HCRX_EL2_RES1 (UL(0))
+#define HCRX_EL2_UNKN (UL(0))
+
+#define REG_SMPRIMAP_EL2 S3_4_C1_C2_5
+#define SYS_SMPRIMAP_EL2 sys_reg(3, 4, 1, 2, 5)
+#define SYS_SMPRIMAP_EL2_Op0 3
+#define SYS_SMPRIMAP_EL2_Op1 4
+#define SYS_SMPRIMAP_EL2_CRn 1
+#define SYS_SMPRIMAP_EL2_CRm 2
+#define SYS_SMPRIMAP_EL2_Op2 5
+
+#define SMPRIMAP_EL2_P15 GENMASK(63, 60)
+#define SMPRIMAP_EL2_P15_MASK GENMASK(63, 60)
+#define SMPRIMAP_EL2_P15_SHIFT 60
+#define SMPRIMAP_EL2_P15_WIDTH 4
+
+#define SMPRIMAP_EL2_P14 GENMASK(59, 56)
+#define SMPRIMAP_EL2_P14_MASK GENMASK(59, 56)
+#define SMPRIMAP_EL2_P14_SHIFT 56
+#define SMPRIMAP_EL2_P14_WIDTH 4
+
+#define SMPRIMAP_EL2_P13 GENMASK(55, 52)
+#define SMPRIMAP_EL2_P13_MASK GENMASK(55, 52)
+#define SMPRIMAP_EL2_P13_SHIFT 52
+#define SMPRIMAP_EL2_P13_WIDTH 4
+
+#define SMPRIMAP_EL2_P12 GENMASK(51, 48)
+#define SMPRIMAP_EL2_P12_MASK GENMASK(51, 48)
+#define SMPRIMAP_EL2_P12_SHIFT 48
+#define SMPRIMAP_EL2_P12_WIDTH 4
+
+#define SMPRIMAP_EL2_P11 GENMASK(47, 44)
+#define SMPRIMAP_EL2_P11_MASK GENMASK(47, 44)
+#define SMPRIMAP_EL2_P11_SHIFT 44
+#define SMPRIMAP_EL2_P11_WIDTH 4
+
+#define SMPRIMAP_EL2_P10 GENMASK(43, 40)
+#define SMPRIMAP_EL2_P10_MASK GENMASK(43, 40)
+#define SMPRIMAP_EL2_P10_SHIFT 40
+#define SMPRIMAP_EL2_P10_WIDTH 4
+
+#define SMPRIMAP_EL2_F9 GENMASK(39, 36)
+#define SMPRIMAP_EL2_F9_MASK GENMASK(39, 36)
+#define SMPRIMAP_EL2_F9_SHIFT 36
+#define SMPRIMAP_EL2_F9_WIDTH 4
+
+#define SMPRIMAP_EL2_P8 GENMASK(35, 32)
+#define SMPRIMAP_EL2_P8_MASK GENMASK(35, 32)
+#define SMPRIMAP_EL2_P8_SHIFT 32
+#define SMPRIMAP_EL2_P8_WIDTH 4
+
+#define SMPRIMAP_EL2_P7 GENMASK(31, 28)
+#define SMPRIMAP_EL2_P7_MASK GENMASK(31, 28)
+#define SMPRIMAP_EL2_P7_SHIFT 28
+#define SMPRIMAP_EL2_P7_WIDTH 4
+
+#define SMPRIMAP_EL2_P6 GENMASK(27, 24)
+#define SMPRIMAP_EL2_P6_MASK GENMASK(27, 24)
+#define SMPRIMAP_EL2_P6_SHIFT 24
+#define SMPRIMAP_EL2_P6_WIDTH 4
+
+#define SMPRIMAP_EL2_P5 GENMASK(23, 20)
+#define SMPRIMAP_EL2_P5_MASK GENMASK(23, 20)
+#define SMPRIMAP_EL2_P5_SHIFT 20
+#define SMPRIMAP_EL2_P5_WIDTH 4
+
+#define SMPRIMAP_EL2_P4 GENMASK(19, 16)
+#define SMPRIMAP_EL2_P4_MASK GENMASK(19, 16)
+#define SMPRIMAP_EL2_P4_SHIFT 16
+#define SMPRIMAP_EL2_P4_WIDTH 4
+
+#define SMPRIMAP_EL2_P3 GENMASK(15, 12)
+#define SMPRIMAP_EL2_P3_MASK GENMASK(15, 12)
+#define SMPRIMAP_EL2_P3_SHIFT 12
+#define SMPRIMAP_EL2_P3_WIDTH 4
+
+#define SMPRIMAP_EL2_P2 GENMASK(11, 8)
+#define SMPRIMAP_EL2_P2_MASK GENMASK(11, 8)
+#define SMPRIMAP_EL2_P2_SHIFT 8
+#define SMPRIMAP_EL2_P2_WIDTH 4
+
+#define SMPRIMAP_EL2_P1 GENMASK(7, 4)
+#define SMPRIMAP_EL2_P1_MASK GENMASK(7, 4)
+#define SMPRIMAP_EL2_P1_SHIFT 4
+#define SMPRIMAP_EL2_P1_WIDTH 4
+
+#define SMPRIMAP_EL2_P0 GENMASK(3, 0)
+#define SMPRIMAP_EL2_P0_MASK GENMASK(3, 0)
+#define SMPRIMAP_EL2_P0_SHIFT 0
+#define SMPRIMAP_EL2_P0_WIDTH 4
+
+#define SMPRIMAP_EL2_RES0 (UL(0))
+#define SMPRIMAP_EL2_RES1 (UL(0))
+#define SMPRIMAP_EL2_UNKN (UL(0))
+
+#define REG_SMCR_EL2 S3_4_C1_C2_6
+#define SYS_SMCR_EL2 sys_reg(3, 4, 1, 2, 6)
+#define SYS_SMCR_EL2_Op0 3
+#define SYS_SMCR_EL2_Op1 4
+#define SYS_SMCR_EL2_CRn 1
+#define SYS_SMCR_EL2_CRm 2
+#define SYS_SMCR_EL2_Op2 6
+
+/* For SMCR_EL2 fields see SMCR_ELx */
+
+#define REG_DACR32_EL2 S3_4_C3_C0_0
+#define SYS_DACR32_EL2 sys_reg(3, 4, 3, 0, 0)
+#define SYS_DACR32_EL2_Op0 3
+#define SYS_DACR32_EL2_Op1 4
+#define SYS_DACR32_EL2_CRn 3
+#define SYS_DACR32_EL2_CRm 0
+#define SYS_DACR32_EL2_Op2 0
+
+#define DACR32_EL2_D15 GENMASK(31, 30)
+#define DACR32_EL2_D15_MASK GENMASK(31, 30)
+#define DACR32_EL2_D15_SHIFT 30
+#define DACR32_EL2_D15_WIDTH 2
+
+#define DACR32_EL2_D14 GENMASK(29, 28)
+#define DACR32_EL2_D14_MASK GENMASK(29, 28)
+#define DACR32_EL2_D14_SHIFT 28
+#define DACR32_EL2_D14_WIDTH 2
+
+#define DACR32_EL2_D13 GENMASK(27, 26)
+#define DACR32_EL2_D13_MASK GENMASK(27, 26)
+#define DACR32_EL2_D13_SHIFT 26
+#define DACR32_EL2_D13_WIDTH 2
+
+#define DACR32_EL2_D12 GENMASK(25, 24)
+#define DACR32_EL2_D12_MASK GENMASK(25, 24)
+#define DACR32_EL2_D12_SHIFT 24
+#define DACR32_EL2_D12_WIDTH 2
+
+#define DACR32_EL2_D11 GENMASK(23, 22)
+#define DACR32_EL2_D11_MASK GENMASK(23, 22)
+#define DACR32_EL2_D11_SHIFT 22
+#define DACR32_EL2_D11_WIDTH 2
+
+#define DACR32_EL2_D10 GENMASK(21, 20)
+#define DACR32_EL2_D10_MASK GENMASK(21, 20)
+#define DACR32_EL2_D10_SHIFT 20
+#define DACR32_EL2_D10_WIDTH 2
+
+#define DACR32_EL2_D9 GENMASK(19, 18)
+#define DACR32_EL2_D9_MASK GENMASK(19, 18)
+#define DACR32_EL2_D9_SHIFT 18
+#define DACR32_EL2_D9_WIDTH 2
+
+#define DACR32_EL2_D8 GENMASK(17, 16)
+#define DACR32_EL2_D8_MASK GENMASK(17, 16)
+#define DACR32_EL2_D8_SHIFT 16
+#define DACR32_EL2_D8_WIDTH 2
+
+#define DACR32_EL2_D7 GENMASK(15, 14)
+#define DACR32_EL2_D7_MASK GENMASK(15, 14)
+#define DACR32_EL2_D7_SHIFT 14
+#define DACR32_EL2_D7_WIDTH 2
+
+#define DACR32_EL2_D6 GENMASK(13, 12)
+#define DACR32_EL2_D6_MASK GENMASK(13, 12)
+#define DACR32_EL2_D6_SHIFT 12
+#define DACR32_EL2_D6_WIDTH 2
+
+#define DACR32_EL2_D5 GENMASK(11, 10)
+#define DACR32_EL2_D5_MASK GENMASK(11, 10)
+#define DACR32_EL2_D5_SHIFT 10
+#define DACR32_EL2_D5_WIDTH 2
+
+#define DACR32_EL2_D4 GENMASK(9, 8)
+#define DACR32_EL2_D4_MASK GENMASK(9, 8)
+#define DACR32_EL2_D4_SHIFT 8
+#define DACR32_EL2_D4_WIDTH 2
+
+#define DACR32_EL2_D3 GENMASK(7, 6)
+#define DACR32_EL2_D3_MASK GENMASK(7, 6)
+#define DACR32_EL2_D3_SHIFT 6
+#define DACR32_EL2_D3_WIDTH 2
+
+#define DACR32_EL2_D2 GENMASK(5, 4)
+#define DACR32_EL2_D2_MASK GENMASK(5, 4)
+#define DACR32_EL2_D2_SHIFT 4
+#define DACR32_EL2_D2_WIDTH 2
+
+#define DACR32_EL2_D1 GENMASK(3, 2)
+#define DACR32_EL2_D1_MASK GENMASK(3, 2)
+#define DACR32_EL2_D1_SHIFT 2
+#define DACR32_EL2_D1_WIDTH 2
+
+#define DACR32_EL2_D0 GENMASK(1, 0)
+#define DACR32_EL2_D0_MASK GENMASK(1, 0)
+#define DACR32_EL2_D0_SHIFT 0
+#define DACR32_EL2_D0_WIDTH 2
+
+#define DACR32_EL2_RES0 (UL(0) | GENMASK_ULL(63, 32))
+#define DACR32_EL2_RES1 (UL(0))
+#define DACR32_EL2_UNKN (UL(0))
+
+#define REG_FAR_EL2 S3_4_C6_C0_0
+#define SYS_FAR_EL2 sys_reg(3, 4, 6, 0, 0)
+#define SYS_FAR_EL2_Op0 3
+#define SYS_FAR_EL2_Op1 4
+#define SYS_FAR_EL2_CRn 6
+#define SYS_FAR_EL2_CRm 0
+#define SYS_FAR_EL2_Op2 0
+
+#define FAR_EL2_ADDR GENMASK(63, 0)
+#define FAR_EL2_ADDR_MASK GENMASK(63, 0)
+#define FAR_EL2_ADDR_SHIFT 0
+#define FAR_EL2_ADDR_WIDTH 64
+
+#define FAR_EL2_RES0 (UL(0))
+#define FAR_EL2_RES1 (UL(0))
+#define FAR_EL2_UNKN (UL(0))
+
+#define REG_PMSCR_EL2 S3_4_C9_C9_0
+#define SYS_PMSCR_EL2 sys_reg(3, 4, 9, 9, 0)
+#define SYS_PMSCR_EL2_Op0 3
+#define SYS_PMSCR_EL2_Op1 4
+#define SYS_PMSCR_EL2_CRn 9
+#define SYS_PMSCR_EL2_CRm 9
+#define SYS_PMSCR_EL2_Op2 0
+
+#define PMSCR_EL2_PCT GENMASK(7, 6)
+#define PMSCR_EL2_PCT_MASK GENMASK(7, 6)
+#define PMSCR_EL2_PCT_SHIFT 6
+#define PMSCR_EL2_PCT_WIDTH 2
+#define PMSCR_EL2_PCT_VIRT UL(0b00)
+#define PMSCR_EL2_PCT_PHYS UL(0b01)
+#define PMSCR_EL2_PCT_GUEST UL(0b11)
+
+#define PMSCR_EL2_TS GENMASK(5, 5)
+#define PMSCR_EL2_TS_MASK GENMASK(5, 5)
+#define PMSCR_EL2_TS_SHIFT 5
+#define PMSCR_EL2_TS_WIDTH 1
+
+#define PMSCR_EL2_PA GENMASK(4, 4)
+#define PMSCR_EL2_PA_MASK GENMASK(4, 4)
+#define PMSCR_EL2_PA_SHIFT 4
+#define PMSCR_EL2_PA_WIDTH 1
+
+#define PMSCR_EL2_CX GENMASK(3, 3)
+#define PMSCR_EL2_CX_MASK GENMASK(3, 3)
+#define PMSCR_EL2_CX_SHIFT 3
+#define PMSCR_EL2_CX_WIDTH 1
+
+#define PMSCR_EL2_E2SPE GENMASK(1, 1)
+#define PMSCR_EL2_E2SPE_MASK GENMASK(1, 1)
+#define PMSCR_EL2_E2SPE_SHIFT 1
+#define PMSCR_EL2_E2SPE_WIDTH 1
+
+#define PMSCR_EL2_E0HSPE GENMASK(0, 0)
+#define PMSCR_EL2_E0HSPE_MASK GENMASK(0, 0)
+#define PMSCR_EL2_E0HSPE_SHIFT 0
+#define PMSCR_EL2_E0HSPE_WIDTH 1
+
+#define PMSCR_EL2_RES0 (UL(0) | GENMASK_ULL(63, 8) | GENMASK_ULL(2, 2))
+#define PMSCR_EL2_RES1 (UL(0))
+#define PMSCR_EL2_UNKN (UL(0))
+
+#define REG_CONTEXTIDR_EL2 S3_4_C13_C0_1
+#define SYS_CONTEXTIDR_EL2 sys_reg(3, 4, 13, 0, 1)
+#define SYS_CONTEXTIDR_EL2_Op0 3
+#define SYS_CONTEXTIDR_EL2_Op1 4
+#define SYS_CONTEXTIDR_EL2_CRn 13
+#define SYS_CONTEXTIDR_EL2_CRm 0
+#define SYS_CONTEXTIDR_EL2_Op2 1
+
+/* For CONTEXTIDR_EL2 fields see CONTEXTIDR_ELx */
+
+#define REG_CNTPOFF_EL2 S3_4_C14_C0_6
+#define SYS_CNTPOFF_EL2 sys_reg(3, 4, 14, 0, 6)
+#define SYS_CNTPOFF_EL2_Op0 3
+#define SYS_CNTPOFF_EL2_Op1 4
+#define SYS_CNTPOFF_EL2_CRn 14
+#define SYS_CNTPOFF_EL2_CRm 0
+#define SYS_CNTPOFF_EL2_Op2 6
+
+#define CNTPOFF_EL2_PhysicalOffset GENMASK(63, 0)
+#define CNTPOFF_EL2_PhysicalOffset_MASK GENMASK(63, 0)
+#define CNTPOFF_EL2_PhysicalOffset_SHIFT 0
+#define CNTPOFF_EL2_PhysicalOffset_WIDTH 64
+
+#define CNTPOFF_EL2_RES0 (UL(0))
+#define CNTPOFF_EL2_RES1 (UL(0))
+#define CNTPOFF_EL2_UNKN (UL(0))
+
+#define REG_CPACR_EL12 S3_5_C1_C0_2
+#define SYS_CPACR_EL12 sys_reg(3, 5, 1, 0, 2)
+#define SYS_CPACR_EL12_Op0 3
+#define SYS_CPACR_EL12_Op1 5
+#define SYS_CPACR_EL12_CRn 1
+#define SYS_CPACR_EL12_CRm 0
+#define SYS_CPACR_EL12_Op2 2
+
+/* For CPACR_EL12 fields see CPACR_ELx */
+
+#define REG_ZCR_EL12 S3_5_C1_C2_0
+#define SYS_ZCR_EL12 sys_reg(3, 5, 1, 2, 0)
+#define SYS_ZCR_EL12_Op0 3
+#define SYS_ZCR_EL12_Op1 5
+#define SYS_ZCR_EL12_CRn 1
+#define SYS_ZCR_EL12_CRm 2
+#define SYS_ZCR_EL12_Op2 0
+
+/* For ZCR_EL12 fields see ZCR_ELx */
+
+#define REG_SMCR_EL12 S3_5_C1_C2_6
+#define SYS_SMCR_EL12 sys_reg(3, 5, 1, 2, 6)
+#define SYS_SMCR_EL12_Op0 3
+#define SYS_SMCR_EL12_Op1 5
+#define SYS_SMCR_EL12_CRn 1
+#define SYS_SMCR_EL12_CRm 2
+#define SYS_SMCR_EL12_Op2 6
+
+/* For SMCR_EL12 fields see SMCR_ELx */
+
+#define REG_FAR_EL12 S3_5_C6_C0_0
+#define SYS_FAR_EL12 sys_reg(3, 5, 6, 0, 0)
+#define SYS_FAR_EL12_Op0 3
+#define SYS_FAR_EL12_Op1 5
+#define SYS_FAR_EL12_CRn 6
+#define SYS_FAR_EL12_CRm 0
+#define SYS_FAR_EL12_Op2 0
+
+#define FAR_EL12_ADDR GENMASK(63, 0)
+#define FAR_EL12_ADDR_MASK GENMASK(63, 0)
+#define FAR_EL12_ADDR_SHIFT 0
+#define FAR_EL12_ADDR_WIDTH 64
+
+#define FAR_EL12_RES0 (UL(0))
+#define FAR_EL12_RES1 (UL(0))
+#define FAR_EL12_UNKN (UL(0))
+
+#define REG_CONTEXTIDR_EL12 S3_5_C13_C0_1
+#define SYS_CONTEXTIDR_EL12 sys_reg(3, 5, 13, 0, 1)
+#define SYS_CONTEXTIDR_EL12_Op0 3
+#define SYS_CONTEXTIDR_EL12_Op1 5
+#define SYS_CONTEXTIDR_EL12_CRn 13
+#define SYS_CONTEXTIDR_EL12_CRm 0
+#define SYS_CONTEXTIDR_EL12_Op2 1
+
+/* For CONTEXTIDR_EL12 fields see CONTEXTIDR_ELx */
+
+#define TTBRx_EL1_ASID GENMASK(63, 48)
+#define TTBRx_EL1_ASID_MASK GENMASK(63, 48)
+#define TTBRx_EL1_ASID_SHIFT 48
+#define TTBRx_EL1_ASID_WIDTH 16
+
+#define TTBRx_EL1_BADDR GENMASK(47, 1)
+#define TTBRx_EL1_BADDR_MASK GENMASK(47, 1)
+#define TTBRx_EL1_BADDR_SHIFT 1
+#define TTBRx_EL1_BADDR_WIDTH 47
+
+#define TTBRx_EL1_CnP GENMASK(0, 0)
+#define TTBRx_EL1_CnP_MASK GENMASK(0, 0)
+#define TTBRx_EL1_CnP_SHIFT 0
+#define TTBRx_EL1_CnP_WIDTH 1
+
+#define TTBRx_EL1_RES0 (UL(0))
+#define TTBRx_EL1_RES1 (UL(0))
+#define TTBRx_EL1_UNKN (UL(0))
+
+#define REG_TTBR0_EL1 S3_0_C2_C0_0
+#define SYS_TTBR0_EL1 sys_reg(3, 0, 2, 0, 0)
+#define SYS_TTBR0_EL1_Op0 3
+#define SYS_TTBR0_EL1_Op1 0
+#define SYS_TTBR0_EL1_CRn 2
+#define SYS_TTBR0_EL1_CRm 0
+#define SYS_TTBR0_EL1_Op2 0
+
+/* For TTBR0_EL1 fields see TTBRx_EL1 */
+
+#define REG_TTBR1_EL1 S3_0_C2_C0_1
+#define SYS_TTBR1_EL1 sys_reg(3, 0, 2, 0, 1)
+#define SYS_TTBR1_EL1_Op0 3
+#define SYS_TTBR1_EL1_Op1 0
+#define SYS_TTBR1_EL1_CRn 2
+#define SYS_TTBR1_EL1_CRm 0
+#define SYS_TTBR1_EL1_Op2 1
+
+/* For TTBR1_EL1 fields see TTBRx_EL1 */
+
+#define TCR2_EL1x_DisCH1 GENMASK(15, 15)
+#define TCR2_EL1x_DisCH1_MASK GENMASK(15, 15)
+#define TCR2_EL1x_DisCH1_SHIFT 15
+#define TCR2_EL1x_DisCH1_WIDTH 1
+
+#define TCR2_EL1x_DisCH0 GENMASK(14, 14)
+#define TCR2_EL1x_DisCH0_MASK GENMASK(14, 14)
+#define TCR2_EL1x_DisCH0_SHIFT 14
+#define TCR2_EL1x_DisCH0_WIDTH 1
+
+#define TCR2_EL1x_HAFT GENMASK(11, 11)
+#define TCR2_EL1x_HAFT_MASK GENMASK(11, 11)
+#define TCR2_EL1x_HAFT_SHIFT 11
+#define TCR2_EL1x_HAFT_WIDTH 1
+
+#define TCR2_EL1x_PTTWI GENMASK(10, 10)
+#define TCR2_EL1x_PTTWI_MASK GENMASK(10, 10)
+#define TCR2_EL1x_PTTWI_SHIFT 10
+#define TCR2_EL1x_PTTWI_WIDTH 1
+
+#define TCR2_EL1x_D128 GENMASK(5, 5)
+#define TCR2_EL1x_D128_MASK GENMASK(5, 5)
+#define TCR2_EL1x_D128_SHIFT 5
+#define TCR2_EL1x_D128_WIDTH 1
+
+#define TCR2_EL1x_AIE GENMASK(4, 4)
+#define TCR2_EL1x_AIE_MASK GENMASK(4, 4)
+#define TCR2_EL1x_AIE_SHIFT 4
+#define TCR2_EL1x_AIE_WIDTH 1
+
+#define TCR2_EL1x_POE GENMASK(3, 3)
+#define TCR2_EL1x_POE_MASK GENMASK(3, 3)
+#define TCR2_EL1x_POE_SHIFT 3
+#define TCR2_EL1x_POE_WIDTH 1
+
+#define TCR2_EL1x_E0POE GENMASK(2, 2)
+#define TCR2_EL1x_E0POE_MASK GENMASK(2, 2)
+#define TCR2_EL1x_E0POE_SHIFT 2
+#define TCR2_EL1x_E0POE_WIDTH 1
+
+#define TCR2_EL1x_PIE GENMASK(1, 1)
+#define TCR2_EL1x_PIE_MASK GENMASK(1, 1)
+#define TCR2_EL1x_PIE_SHIFT 1
+#define TCR2_EL1x_PIE_WIDTH 1
+
+#define TCR2_EL1x_PnCH GENMASK(0, 0)
+#define TCR2_EL1x_PnCH_MASK GENMASK(0, 0)
+#define TCR2_EL1x_PnCH_SHIFT 0
+#define TCR2_EL1x_PnCH_WIDTH 1
+
+#define TCR2_EL1x_RES0 (UL(0) | GENMASK_ULL(63, 16) | GENMASK_ULL(13, 12) | GENMASK_ULL(9, 6))
+#define TCR2_EL1x_RES1 (UL(0))
+#define TCR2_EL1x_UNKN (UL(0))
+
+#define REG_TCR2_EL1 S3_0_C2_C0_3
+#define SYS_TCR2_EL1 sys_reg(3, 0, 2, 0, 3)
+#define SYS_TCR2_EL1_Op0 3
+#define SYS_TCR2_EL1_Op1 0
+#define SYS_TCR2_EL1_CRn 2
+#define SYS_TCR2_EL1_CRm 0
+#define SYS_TCR2_EL1_Op2 3
+
+/* For TCR2_EL1 fields see TCR2_EL1x */
+
+#define REG_TCR2_EL12 S3_5_C2_C0_3
+#define SYS_TCR2_EL12 sys_reg(3, 5, 2, 0, 3)
+#define SYS_TCR2_EL12_Op0 3
+#define SYS_TCR2_EL12_Op1 5
+#define SYS_TCR2_EL12_CRn 2
+#define SYS_TCR2_EL12_CRm 0
+#define SYS_TCR2_EL12_Op2 3
+
+/* For TCR2_EL12 fields see TCR2_EL1x */
+
+#define REG_TCR2_EL2 S3_4_C2_C0_3
+#define SYS_TCR2_EL2 sys_reg(3, 4, 2, 0, 3)
+#define SYS_TCR2_EL2_Op0 3
+#define SYS_TCR2_EL2_Op1 4
+#define SYS_TCR2_EL2_CRn 2
+#define SYS_TCR2_EL2_CRm 0
+#define SYS_TCR2_EL2_Op2 3
+
+#define TCR2_EL2_DisCH1 GENMASK(15, 15)
+#define TCR2_EL2_DisCH1_MASK GENMASK(15, 15)
+#define TCR2_EL2_DisCH1_SHIFT 15
+#define TCR2_EL2_DisCH1_WIDTH 1
+
+#define TCR2_EL2_DisCH0 GENMASK(14, 14)
+#define TCR2_EL2_DisCH0_MASK GENMASK(14, 14)
+#define TCR2_EL2_DisCH0_SHIFT 14
+#define TCR2_EL2_DisCH0_WIDTH 1
+
+#define TCR2_EL2_AMEC1 GENMASK(13, 13)
+#define TCR2_EL2_AMEC1_MASK GENMASK(13, 13)
+#define TCR2_EL2_AMEC1_SHIFT 13
+#define TCR2_EL2_AMEC1_WIDTH 1
+
+#define TCR2_EL2_AMEC0 GENMASK(12, 12)
+#define TCR2_EL2_AMEC0_MASK GENMASK(12, 12)
+#define TCR2_EL2_AMEC0_SHIFT 12
+#define TCR2_EL2_AMEC0_WIDTH 1
+
+#define TCR2_EL2_HAFT GENMASK(11, 11)
+#define TCR2_EL2_HAFT_MASK GENMASK(11, 11)
+#define TCR2_EL2_HAFT_SHIFT 11
+#define TCR2_EL2_HAFT_WIDTH 1
+
+#define TCR2_EL2_PTTWI GENMASK(10, 10)
+#define TCR2_EL2_PTTWI_MASK GENMASK(10, 10)
+#define TCR2_EL2_PTTWI_SHIFT 10
+#define TCR2_EL2_PTTWI_WIDTH 1
+
+#define TCR2_EL2_SKL1 GENMASK(9, 8)
+#define TCR2_EL2_SKL1_MASK GENMASK(9, 8)
+#define TCR2_EL2_SKL1_SHIFT 8
+#define TCR2_EL2_SKL1_WIDTH 2
+
+#define TCR2_EL2_SKL0 GENMASK(7, 6)
+#define TCR2_EL2_SKL0_MASK GENMASK(7, 6)
+#define TCR2_EL2_SKL0_SHIFT 6
+#define TCR2_EL2_SKL0_WIDTH 2
+
+#define TCR2_EL2_D128 GENMASK(5, 5)
+#define TCR2_EL2_D128_MASK GENMASK(5, 5)
+#define TCR2_EL2_D128_SHIFT 5
+#define TCR2_EL2_D128_WIDTH 1
+
+#define TCR2_EL2_AIE GENMASK(4, 4)
+#define TCR2_EL2_AIE_MASK GENMASK(4, 4)
+#define TCR2_EL2_AIE_SHIFT 4
+#define TCR2_EL2_AIE_WIDTH 1
+
+#define TCR2_EL2_POE GENMASK(3, 3)
+#define TCR2_EL2_POE_MASK GENMASK(3, 3)
+#define TCR2_EL2_POE_SHIFT 3
+#define TCR2_EL2_POE_WIDTH 1
+
+#define TCR2_EL2_E0POE GENMASK(2, 2)
+#define TCR2_EL2_E0POE_MASK GENMASK(2, 2)
+#define TCR2_EL2_E0POE_SHIFT 2
+#define TCR2_EL2_E0POE_WIDTH 1
+
+#define TCR2_EL2_PIE GENMASK(1, 1)
+#define TCR2_EL2_PIE_MASK GENMASK(1, 1)
+#define TCR2_EL2_PIE_SHIFT 1
+#define TCR2_EL2_PIE_WIDTH 1
+
+#define TCR2_EL2_PnCH GENMASK(0, 0)
+#define TCR2_EL2_PnCH_MASK GENMASK(0, 0)
+#define TCR2_EL2_PnCH_SHIFT 0
+#define TCR2_EL2_PnCH_WIDTH 1
+
+#define TCR2_EL2_RES0 (UL(0) | GENMASK_ULL(63, 16))
+#define TCR2_EL2_RES1 (UL(0))
+#define TCR2_EL2_UNKN (UL(0))
+
+#define PIRx_ELx_Perm15 GENMASK(63, 60)
+#define PIRx_ELx_Perm15_MASK GENMASK(63, 60)
+#define PIRx_ELx_Perm15_SHIFT 60
+#define PIRx_ELx_Perm15_WIDTH 4
+
+#define PIRx_ELx_Perm14 GENMASK(59, 56)
+#define PIRx_ELx_Perm14_MASK GENMASK(59, 56)
+#define PIRx_ELx_Perm14_SHIFT 56
+#define PIRx_ELx_Perm14_WIDTH 4
+
+#define PIRx_ELx_Perm13 GENMASK(55, 52)
+#define PIRx_ELx_Perm13_MASK GENMASK(55, 52)
+#define PIRx_ELx_Perm13_SHIFT 52
+#define PIRx_ELx_Perm13_WIDTH 4
+
+#define PIRx_ELx_Perm12 GENMASK(51, 48)
+#define PIRx_ELx_Perm12_MASK GENMASK(51, 48)
+#define PIRx_ELx_Perm12_SHIFT 48
+#define PIRx_ELx_Perm12_WIDTH 4
+
+#define PIRx_ELx_Perm11 GENMASK(47, 44)
+#define PIRx_ELx_Perm11_MASK GENMASK(47, 44)
+#define PIRx_ELx_Perm11_SHIFT 44
+#define PIRx_ELx_Perm11_WIDTH 4
+
+#define PIRx_ELx_Perm10 GENMASK(43, 40)
+#define PIRx_ELx_Perm10_MASK GENMASK(43, 40)
+#define PIRx_ELx_Perm10_SHIFT 40
+#define PIRx_ELx_Perm10_WIDTH 4
+
+#define PIRx_ELx_Perm9 GENMASK(39, 36)
+#define PIRx_ELx_Perm9_MASK GENMASK(39, 36)
+#define PIRx_ELx_Perm9_SHIFT 36
+#define PIRx_ELx_Perm9_WIDTH 4
+
+#define PIRx_ELx_Perm8 GENMASK(35, 32)
+#define PIRx_ELx_Perm8_MASK GENMASK(35, 32)
+#define PIRx_ELx_Perm8_SHIFT 32
+#define PIRx_ELx_Perm8_WIDTH 4
+
+#define PIRx_ELx_Perm7 GENMASK(31, 28)
+#define PIRx_ELx_Perm7_MASK GENMASK(31, 28)
+#define PIRx_ELx_Perm7_SHIFT 28
+#define PIRx_ELx_Perm7_WIDTH 4
+
+#define PIRx_ELx_Perm6 GENMASK(27, 24)
+#define PIRx_ELx_Perm6_MASK GENMASK(27, 24)
+#define PIRx_ELx_Perm6_SHIFT 24
+#define PIRx_ELx_Perm6_WIDTH 4
+
+#define PIRx_ELx_Perm5 GENMASK(23, 20)
+#define PIRx_ELx_Perm5_MASK GENMASK(23, 20)
+#define PIRx_ELx_Perm5_SHIFT 20
+#define PIRx_ELx_Perm5_WIDTH 4
+
+#define PIRx_ELx_Perm4 GENMASK(19, 16)
+#define PIRx_ELx_Perm4_MASK GENMASK(19, 16)
+#define PIRx_ELx_Perm4_SHIFT 16
+#define PIRx_ELx_Perm4_WIDTH 4
+
+#define PIRx_ELx_Perm3 GENMASK(15, 12)
+#define PIRx_ELx_Perm3_MASK GENMASK(15, 12)
+#define PIRx_ELx_Perm3_SHIFT 12
+#define PIRx_ELx_Perm3_WIDTH 4
+
+#define PIRx_ELx_Perm2 GENMASK(11, 8)
+#define PIRx_ELx_Perm2_MASK GENMASK(11, 8)
+#define PIRx_ELx_Perm2_SHIFT 8
+#define PIRx_ELx_Perm2_WIDTH 4
+
+#define PIRx_ELx_Perm1 GENMASK(7, 4)
+#define PIRx_ELx_Perm1_MASK GENMASK(7, 4)
+#define PIRx_ELx_Perm1_SHIFT 4
+#define PIRx_ELx_Perm1_WIDTH 4
+
+#define PIRx_ELx_Perm0 GENMASK(3, 0)
+#define PIRx_ELx_Perm0_MASK GENMASK(3, 0)
+#define PIRx_ELx_Perm0_SHIFT 0
+#define PIRx_ELx_Perm0_WIDTH 4
+
+#define PIRx_ELx_RES0 (UL(0))
+#define PIRx_ELx_RES1 (UL(0))
+#define PIRx_ELx_UNKN (UL(0))
+
+#define REG_PIRE0_EL1 S3_0_C10_C2_2
+#define SYS_PIRE0_EL1 sys_reg(3, 0, 10, 2, 2)
+#define SYS_PIRE0_EL1_Op0 3
+#define SYS_PIRE0_EL1_Op1 0
+#define SYS_PIRE0_EL1_CRn 10
+#define SYS_PIRE0_EL1_CRm 2
+#define SYS_PIRE0_EL1_Op2 2
+
+/* For PIRE0_EL1 fields see PIRx_ELx */
+
+#define REG_PIRE0_EL12 S3_5_C10_C2_2
+#define SYS_PIRE0_EL12 sys_reg(3, 5, 10, 2, 2)
+#define SYS_PIRE0_EL12_Op0 3
+#define SYS_PIRE0_EL12_Op1 5
+#define SYS_PIRE0_EL12_CRn 10
+#define SYS_PIRE0_EL12_CRm 2
+#define SYS_PIRE0_EL12_Op2 2
+
+/* For PIRE0_EL12 fields see PIRx_ELx */
+
+#define REG_PIR_EL1 S3_0_C10_C2_3
+#define SYS_PIR_EL1 sys_reg(3, 0, 10, 2, 3)
+#define SYS_PIR_EL1_Op0 3
+#define SYS_PIR_EL1_Op1 0
+#define SYS_PIR_EL1_CRn 10
+#define SYS_PIR_EL1_CRm 2
+#define SYS_PIR_EL1_Op2 3
+
+/* For PIR_EL1 fields see PIRx_ELx */
+
+#define REG_PIR_EL12 S3_5_C10_C2_3
+#define SYS_PIR_EL12 sys_reg(3, 5, 10, 2, 3)
+#define SYS_PIR_EL12_Op0 3
+#define SYS_PIR_EL12_Op1 5
+#define SYS_PIR_EL12_CRn 10
+#define SYS_PIR_EL12_CRm 2
+#define SYS_PIR_EL12_Op2 3
+
+/* For PIR_EL12 fields see PIRx_ELx */
+
+#define REG_PIR_EL2 S3_4_C10_C2_3
+#define SYS_PIR_EL2 sys_reg(3, 4, 10, 2, 3)
+#define SYS_PIR_EL2_Op0 3
+#define SYS_PIR_EL2_Op1 4
+#define SYS_PIR_EL2_CRn 10
+#define SYS_PIR_EL2_CRm 2
+#define SYS_PIR_EL2_Op2 3
+
+/* For PIR_EL2 fields see PIRx_ELx */
+
+#define REG_LORSA_EL1 S3_0_C10_C4_0
+#define SYS_LORSA_EL1 sys_reg(3, 0, 10, 4, 0)
+#define SYS_LORSA_EL1_Op0 3
+#define SYS_LORSA_EL1_Op1 0
+#define SYS_LORSA_EL1_CRn 10
+#define SYS_LORSA_EL1_CRm 4
+#define SYS_LORSA_EL1_Op2 0
+
+#define LORSA_EL1_SA GENMASK(51, 16)
+#define LORSA_EL1_SA_MASK GENMASK(51, 16)
+#define LORSA_EL1_SA_SHIFT 16
+#define LORSA_EL1_SA_WIDTH 36
+
+#define LORSA_EL1_Valid GENMASK(0, 0)
+#define LORSA_EL1_Valid_MASK GENMASK(0, 0)
+#define LORSA_EL1_Valid_SHIFT 0
+#define LORSA_EL1_Valid_WIDTH 1
+
+#define LORSA_EL1_RES0 (UL(0) | GENMASK_ULL(63, 52) | GENMASK_ULL(15, 1))
+#define LORSA_EL1_RES1 (UL(0))
+#define LORSA_EL1_UNKN (UL(0))
+
+#define REG_LOREA_EL1 S3_0_C10_C4_1
+#define SYS_LOREA_EL1 sys_reg(3, 0, 10, 4, 1)
+#define SYS_LOREA_EL1_Op0 3
+#define SYS_LOREA_EL1_Op1 0
+#define SYS_LOREA_EL1_CRn 10
+#define SYS_LOREA_EL1_CRm 4
+#define SYS_LOREA_EL1_Op2 1
+
+#define LOREA_EL1_EA_51_48 GENMASK(51, 48)
+#define LOREA_EL1_EA_51_48_MASK GENMASK(51, 48)
+#define LOREA_EL1_EA_51_48_SHIFT 48
+#define LOREA_EL1_EA_51_48_WIDTH 4
+
+#define LOREA_EL1_EA_47_16 GENMASK(47, 16)
+#define LOREA_EL1_EA_47_16_MASK GENMASK(47, 16)
+#define LOREA_EL1_EA_47_16_SHIFT 16
+#define LOREA_EL1_EA_47_16_WIDTH 32
+
+#define LOREA_EL1_RES0 (UL(0) | GENMASK_ULL(63, 52) | GENMASK_ULL(15, 0))
+#define LOREA_EL1_RES1 (UL(0))
+#define LOREA_EL1_UNKN (UL(0))
+
+#define REG_LORN_EL1 S3_0_C10_C4_2
+#define SYS_LORN_EL1 sys_reg(3, 0, 10, 4, 2)
+#define SYS_LORN_EL1_Op0 3
+#define SYS_LORN_EL1_Op1 0
+#define SYS_LORN_EL1_CRn 10
+#define SYS_LORN_EL1_CRm 4
+#define SYS_LORN_EL1_Op2 2
+
+#define LORN_EL1_Num GENMASK(7, 0)
+#define LORN_EL1_Num_MASK GENMASK(7, 0)
+#define LORN_EL1_Num_SHIFT 0
+#define LORN_EL1_Num_WIDTH 8
+
+#define LORN_EL1_RES0 (UL(0) | GENMASK_ULL(63, 8))
+#define LORN_EL1_RES1 (UL(0))
+#define LORN_EL1_UNKN (UL(0))
+
+#define REG_LORC_EL1 S3_0_C10_C4_3
+#define SYS_LORC_EL1 sys_reg(3, 0, 10, 4, 3)
+#define SYS_LORC_EL1_Op0 3
+#define SYS_LORC_EL1_Op1 0
+#define SYS_LORC_EL1_CRn 10
+#define SYS_LORC_EL1_CRm 4
+#define SYS_LORC_EL1_Op2 3
+
+#define LORC_EL1_DS GENMASK(9, 2)
+#define LORC_EL1_DS_MASK GENMASK(9, 2)
+#define LORC_EL1_DS_SHIFT 2
+#define LORC_EL1_DS_WIDTH 8
+
+#define LORC_EL1_EN GENMASK(0, 0)
+#define LORC_EL1_EN_MASK GENMASK(0, 0)
+#define LORC_EL1_EN_SHIFT 0
+#define LORC_EL1_EN_WIDTH 1
+
+#define LORC_EL1_RES0 (UL(0) | GENMASK_ULL(63, 10) | GENMASK_ULL(1, 1))
+#define LORC_EL1_RES1 (UL(0))
+#define LORC_EL1_UNKN (UL(0))
+
+#define REG_LORID_EL1 S3_0_C10_C4_7
+#define SYS_LORID_EL1 sys_reg(3, 0, 10, 4, 7)
+#define SYS_LORID_EL1_Op0 3
+#define SYS_LORID_EL1_Op1 0
+#define SYS_LORID_EL1_CRn 10
+#define SYS_LORID_EL1_CRm 4
+#define SYS_LORID_EL1_Op2 7
+
+#define LORID_EL1_LD GENMASK(23, 16)
+#define LORID_EL1_LD_MASK GENMASK(23, 16)
+#define LORID_EL1_LD_SHIFT 16
+#define LORID_EL1_LD_WIDTH 8
+
+#define LORID_EL1_LR GENMASK(7, 0)
+#define LORID_EL1_LR_MASK GENMASK(7, 0)
+#define LORID_EL1_LR_SHIFT 0
+#define LORID_EL1_LR_WIDTH 8
+
+#define LORID_EL1_RES0 (UL(0) | GENMASK_ULL(63, 24) | GENMASK_ULL(15, 8))
+#define LORID_EL1_RES1 (UL(0))
+#define LORID_EL1_UNKN (UL(0))
+
+#define REG_ISR_EL1 S3_0_C12_C1_0
+#define SYS_ISR_EL1 sys_reg(3, 0, 12, 1, 0)
+#define SYS_ISR_EL1_Op0 3
+#define SYS_ISR_EL1_Op1 0
+#define SYS_ISR_EL1_CRn 12
+#define SYS_ISR_EL1_CRm 1
+#define SYS_ISR_EL1_Op2 0
+
+#define ISR_EL1_IS GENMASK(10, 10)
+#define ISR_EL1_IS_MASK GENMASK(10, 10)
+#define ISR_EL1_IS_SHIFT 10
+#define ISR_EL1_IS_WIDTH 1
+
+#define ISR_EL1_FS GENMASK(9, 9)
+#define ISR_EL1_FS_MASK GENMASK(9, 9)
+#define ISR_EL1_FS_SHIFT 9
+#define ISR_EL1_FS_WIDTH 1
+
+#define ISR_EL1_A GENMASK(8, 8)
+#define ISR_EL1_A_MASK GENMASK(8, 8)
+#define ISR_EL1_A_SHIFT 8
+#define ISR_EL1_A_WIDTH 1
+
+#define ISR_EL1_I GENMASK(7, 7)
+#define ISR_EL1_I_MASK GENMASK(7, 7)
+#define ISR_EL1_I_SHIFT 7
+#define ISR_EL1_I_WIDTH 1
+
+#define ISR_EL1_F GENMASK(6, 6)
+#define ISR_EL1_F_MASK GENMASK(6, 6)
+#define ISR_EL1_F_SHIFT 6
+#define ISR_EL1_F_WIDTH 1
+
+#define ISR_EL1_RES0 (UL(0) | GENMASK_ULL(63, 11) | GENMASK_ULL(5, 0))
+#define ISR_EL1_RES1 (UL(0))
+#define ISR_EL1_UNKN (UL(0))
+
+#define REG_ICC_NMIAR1_EL1 S3_0_C12_C9_5
+#define SYS_ICC_NMIAR1_EL1 sys_reg(3, 0, 12, 9, 5)
+#define SYS_ICC_NMIAR1_EL1_Op0 3
+#define SYS_ICC_NMIAR1_EL1_Op1 0
+#define SYS_ICC_NMIAR1_EL1_CRn 12
+#define SYS_ICC_NMIAR1_EL1_CRm 9
+#define SYS_ICC_NMIAR1_EL1_Op2 5
+
+#define ICC_NMIAR1_EL1_INTID GENMASK(23, 0)
+#define ICC_NMIAR1_EL1_INTID_MASK GENMASK(23, 0)
+#define ICC_NMIAR1_EL1_INTID_SHIFT 0
+#define ICC_NMIAR1_EL1_INTID_WIDTH 24
+
+#define ICC_NMIAR1_EL1_RES0 (UL(0) | GENMASK_ULL(63, 24))
+#define ICC_NMIAR1_EL1_RES1 (UL(0))
+#define ICC_NMIAR1_EL1_UNKN (UL(0))
+
+#define REG_TRBLIMITR_EL1 S3_0_C9_C11_0
+#define SYS_TRBLIMITR_EL1 sys_reg(3, 0, 9, 11, 0)
+#define SYS_TRBLIMITR_EL1_Op0 3
+#define SYS_TRBLIMITR_EL1_Op1 0
+#define SYS_TRBLIMITR_EL1_CRn 9
+#define SYS_TRBLIMITR_EL1_CRm 11
+#define SYS_TRBLIMITR_EL1_Op2 0
+
+#define TRBLIMITR_EL1_LIMIT GENMASK(63, 12)
+#define TRBLIMITR_EL1_LIMIT_MASK GENMASK(63, 12)
+#define TRBLIMITR_EL1_LIMIT_SHIFT 12
+#define TRBLIMITR_EL1_LIMIT_WIDTH 52
+
+#define TRBLIMITR_EL1_XE GENMASK(6, 6)
+#define TRBLIMITR_EL1_XE_MASK GENMASK(6, 6)
+#define TRBLIMITR_EL1_XE_SHIFT 6
+#define TRBLIMITR_EL1_XE_WIDTH 1
+
+#define TRBLIMITR_EL1_nVM GENMASK(5, 5)
+#define TRBLIMITR_EL1_nVM_MASK GENMASK(5, 5)
+#define TRBLIMITR_EL1_nVM_SHIFT 5
+#define TRBLIMITR_EL1_nVM_WIDTH 1
+
+#define TRBLIMITR_EL1_TM GENMASK(4, 3)
+#define TRBLIMITR_EL1_TM_MASK GENMASK(4, 3)
+#define TRBLIMITR_EL1_TM_SHIFT 3
+#define TRBLIMITR_EL1_TM_WIDTH 2
+#define TRBLIMITR_EL1_TM_STOP UL(0b00)
+#define TRBLIMITR_EL1_TM_IRQ UL(0b01)
+#define TRBLIMITR_EL1_TM_IGNR UL(0b11)
+
+#define TRBLIMITR_EL1_FM GENMASK(2, 1)
+#define TRBLIMITR_EL1_FM_MASK GENMASK(2, 1)
+#define TRBLIMITR_EL1_FM_SHIFT 1
+#define TRBLIMITR_EL1_FM_WIDTH 2
+#define TRBLIMITR_EL1_FM_FILL UL(0b00)
+#define TRBLIMITR_EL1_FM_WRAP UL(0b01)
+#define TRBLIMITR_EL1_FM_CBUF UL(0b11)
+
+#define TRBLIMITR_EL1_E GENMASK(0, 0)
+#define TRBLIMITR_EL1_E_MASK GENMASK(0, 0)
+#define TRBLIMITR_EL1_E_SHIFT 0
+#define TRBLIMITR_EL1_E_WIDTH 1
+
+#define TRBLIMITR_EL1_RES0 (UL(0) | GENMASK_ULL(11, 7))
+#define TRBLIMITR_EL1_RES1 (UL(0))
+#define TRBLIMITR_EL1_UNKN (UL(0))
+
+#define REG_TRBPTR_EL1 S3_0_C9_C11_1
+#define SYS_TRBPTR_EL1 sys_reg(3, 0, 9, 11, 1)
+#define SYS_TRBPTR_EL1_Op0 3
+#define SYS_TRBPTR_EL1_Op1 0
+#define SYS_TRBPTR_EL1_CRn 9
+#define SYS_TRBPTR_EL1_CRm 11
+#define SYS_TRBPTR_EL1_Op2 1
+
+#define TRBPTR_EL1_PTR GENMASK(63, 0)
+#define TRBPTR_EL1_PTR_MASK GENMASK(63, 0)
+#define TRBPTR_EL1_PTR_SHIFT 0
+#define TRBPTR_EL1_PTR_WIDTH 64
+
+#define TRBPTR_EL1_RES0 (UL(0))
+#define TRBPTR_EL1_RES1 (UL(0))
+#define TRBPTR_EL1_UNKN (UL(0))
+
+#define REG_TRBBASER_EL1 S3_0_C9_C11_2
+#define SYS_TRBBASER_EL1 sys_reg(3, 0, 9, 11, 2)
+#define SYS_TRBBASER_EL1_Op0 3
+#define SYS_TRBBASER_EL1_Op1 0
+#define SYS_TRBBASER_EL1_CRn 9
+#define SYS_TRBBASER_EL1_CRm 11
+#define SYS_TRBBASER_EL1_Op2 2
+
+#define TRBBASER_EL1_BASE GENMASK(63, 12)
+#define TRBBASER_EL1_BASE_MASK GENMASK(63, 12)
+#define TRBBASER_EL1_BASE_SHIFT 12
+#define TRBBASER_EL1_BASE_WIDTH 52
+
+#define TRBBASER_EL1_RES0 (UL(0) | GENMASK_ULL(11, 0))
+#define TRBBASER_EL1_RES1 (UL(0))
+#define TRBBASER_EL1_UNKN (UL(0))
+
+#define REG_TRBSR_EL1 S3_0_C9_C11_3
+#define SYS_TRBSR_EL1 sys_reg(3, 0, 9, 11, 3)
+#define SYS_TRBSR_EL1_Op0 3
+#define SYS_TRBSR_EL1_Op1 0
+#define SYS_TRBSR_EL1_CRn 9
+#define SYS_TRBSR_EL1_CRm 11
+#define SYS_TRBSR_EL1_Op2 3
+
+#define TRBSR_EL1_MSS2 GENMASK(55, 32)
+#define TRBSR_EL1_MSS2_MASK GENMASK(55, 32)
+#define TRBSR_EL1_MSS2_SHIFT 32
+#define TRBSR_EL1_MSS2_WIDTH 24
+
+#define TRBSR_EL1_EC GENMASK(31, 26)
+#define TRBSR_EL1_EC_MASK GENMASK(31, 26)
+#define TRBSR_EL1_EC_SHIFT 26
+#define TRBSR_EL1_EC_WIDTH 6
+
+#define TRBSR_EL1_DAT GENMASK(23, 23)
+#define TRBSR_EL1_DAT_MASK GENMASK(23, 23)
+#define TRBSR_EL1_DAT_SHIFT 23
+#define TRBSR_EL1_DAT_WIDTH 1
+
+#define TRBSR_EL1_IRQ GENMASK(22, 22)
+#define TRBSR_EL1_IRQ_MASK GENMASK(22, 22)
+#define TRBSR_EL1_IRQ_SHIFT 22
+#define TRBSR_EL1_IRQ_WIDTH 1
+
+#define TRBSR_EL1_TRG GENMASK(21, 21)
+#define TRBSR_EL1_TRG_MASK GENMASK(21, 21)
+#define TRBSR_EL1_TRG_SHIFT 21
+#define TRBSR_EL1_TRG_WIDTH 1
+
+#define TRBSR_EL1_WRAP GENMASK(20, 20)
+#define TRBSR_EL1_WRAP_MASK GENMASK(20, 20)
+#define TRBSR_EL1_WRAP_SHIFT 20
+#define TRBSR_EL1_WRAP_WIDTH 1
+
+#define TRBSR_EL1_EA GENMASK(18, 18)
+#define TRBSR_EL1_EA_MASK GENMASK(18, 18)
+#define TRBSR_EL1_EA_SHIFT 18
+#define TRBSR_EL1_EA_WIDTH 1
+
+#define TRBSR_EL1_S GENMASK(17, 17)
+#define TRBSR_EL1_S_MASK GENMASK(17, 17)
+#define TRBSR_EL1_S_SHIFT 17
+#define TRBSR_EL1_S_WIDTH 1
+
+#define TRBSR_EL1_MSS GENMASK(15, 0)
+#define TRBSR_EL1_MSS_MASK GENMASK(15, 0)
+#define TRBSR_EL1_MSS_SHIFT 0
+#define TRBSR_EL1_MSS_WIDTH 16
+
+#define TRBSR_EL1_RES0 (UL(0) | GENMASK_ULL(63, 56) | GENMASK_ULL(25, 24) | GENMASK_ULL(19, 19) | GENMASK_ULL(16, 16))
+#define TRBSR_EL1_RES1 (UL(0))
+#define TRBSR_EL1_UNKN (UL(0))
+
+#define REG_TRBMAR_EL1 S3_0_C9_C11_4
+#define SYS_TRBMAR_EL1 sys_reg(3, 0, 9, 11, 4)
+#define SYS_TRBMAR_EL1_Op0 3
+#define SYS_TRBMAR_EL1_Op1 0
+#define SYS_TRBMAR_EL1_CRn 9
+#define SYS_TRBMAR_EL1_CRm 11
+#define SYS_TRBMAR_EL1_Op2 4
+
+#define TRBMAR_EL1_PAS GENMASK(11, 10)
+#define TRBMAR_EL1_PAS_MASK GENMASK(11, 10)
+#define TRBMAR_EL1_PAS_SHIFT 10
+#define TRBMAR_EL1_PAS_WIDTH 2
+#define TRBMAR_EL1_PAS_SECURE UL(0b00)
+#define TRBMAR_EL1_PAS_NON_SECURE UL(0b01)
+#define TRBMAR_EL1_PAS_ROOT UL(0b10)
+#define TRBMAR_EL1_PAS_REALM UL(0b11)
+
+#define TRBMAR_EL1_SH GENMASK(9, 8)
+#define TRBMAR_EL1_SH_MASK GENMASK(9, 8)
+#define TRBMAR_EL1_SH_SHIFT 8
+#define TRBMAR_EL1_SH_WIDTH 2
+#define TRBMAR_EL1_SH_NON_SHAREABLE UL(0b00)
+#define TRBMAR_EL1_SH_OUTER_SHAREABLE UL(0b10)
+#define TRBMAR_EL1_SH_INNER_SHAREABLE UL(0b11)
+
+#define TRBMAR_EL1_Attr GENMASK(7, 0)
+#define TRBMAR_EL1_Attr_MASK GENMASK(7, 0)
+#define TRBMAR_EL1_Attr_SHIFT 0
+#define TRBMAR_EL1_Attr_WIDTH 8
+
+#define TRBMAR_EL1_RES0 (UL(0) | GENMASK_ULL(63, 12))
+#define TRBMAR_EL1_RES1 (UL(0))
+#define TRBMAR_EL1_UNKN (UL(0))
+
+#define REG_TRBTRG_EL1 S3_0_C9_C11_6
+#define SYS_TRBTRG_EL1 sys_reg(3, 0, 9, 11, 6)
+#define SYS_TRBTRG_EL1_Op0 3
+#define SYS_TRBTRG_EL1_Op1 0
+#define SYS_TRBTRG_EL1_CRn 9
+#define SYS_TRBTRG_EL1_CRm 11
+#define SYS_TRBTRG_EL1_Op2 6
+
+#define TRBTRG_EL1_TRG GENMASK(31, 0)
+#define TRBTRG_EL1_TRG_MASK GENMASK(31, 0)
+#define TRBTRG_EL1_TRG_SHIFT 0
+#define TRBTRG_EL1_TRG_WIDTH 32
+
+#define TRBTRG_EL1_RES0 (UL(0) | GENMASK_ULL(63, 32))
+#define TRBTRG_EL1_RES1 (UL(0))
+#define TRBTRG_EL1_UNKN (UL(0))
+
+#define REG_TRBIDR_EL1 S3_0_C9_C11_7
+#define SYS_TRBIDR_EL1 sys_reg(3, 0, 9, 11, 7)
+#define SYS_TRBIDR_EL1_Op0 3
+#define SYS_TRBIDR_EL1_Op1 0
+#define SYS_TRBIDR_EL1_CRn 9
+#define SYS_TRBIDR_EL1_CRm 11
+#define SYS_TRBIDR_EL1_Op2 7
+
+#define TRBIDR_EL1_EA GENMASK(11, 8)
+#define TRBIDR_EL1_EA_MASK GENMASK(11, 8)
+#define TRBIDR_EL1_EA_SHIFT 8
+#define TRBIDR_EL1_EA_WIDTH 4
+#define TRBIDR_EL1_EA_NON_DESC UL(0b0000)
+#define TRBIDR_EL1_EA_IGNORE UL(0b0001)
+#define TRBIDR_EL1_EA_SERROR UL(0b0010)
+
+#define TRBIDR_EL1_F GENMASK(5, 5)
+#define TRBIDR_EL1_F_MASK GENMASK(5, 5)
+#define TRBIDR_EL1_F_SHIFT 5
+#define TRBIDR_EL1_F_WIDTH 1
+
+#define TRBIDR_EL1_P GENMASK(4, 4)
+#define TRBIDR_EL1_P_MASK GENMASK(4, 4)
+#define TRBIDR_EL1_P_SHIFT 4
+#define TRBIDR_EL1_P_WIDTH 1
+
+#define TRBIDR_EL1_Align GENMASK(3, 0)
+#define TRBIDR_EL1_Align_MASK GENMASK(3, 0)
+#define TRBIDR_EL1_Align_SHIFT 0
+#define TRBIDR_EL1_Align_WIDTH 4
+
+#define TRBIDR_EL1_RES0 (UL(0) | GENMASK_ULL(63, 12) | GENMASK_ULL(7, 6))
+#define TRBIDR_EL1_RES1 (UL(0))
+#define TRBIDR_EL1_UNKN (UL(0))
+
+#endif /* __ASM_SYSREG_DEFS_H */
--
2.42.0.609.gbb76f46606-goog
next prev parent reply other threads:[~2023-10-05 18:03 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-10-05 18:03 [PATCH 0/2] tools: arm64: Sync sysreg.h with the kernel Oliver Upton
2023-10-05 18:03 ` Oliver Upton [this message]
2023-10-06 0:23 ` [PATCH 1/2] tools: arm64: Add a copy of sysreg-defs.h generated from " Mark Brown
2023-10-06 9:23 ` Oliver Upton
2023-10-06 11:33 ` Mark Brown
2023-10-06 19:41 ` Oliver Upton
2023-10-06 20:52 ` Mark Brown
2023-10-05 18:03 ` [PATCH 2/2] tools: arm64: Sync sysreg.h with the kernel source Oliver Upton
2023-10-05 18:25 ` [PATCH 0/2] tools: arm64: Sync sysreg.h with the kernel Marc Zyngier
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20231005180325.525236-2-oliver.upton@linux.dev \
--to=oliver.upton@linux.dev \
--cc=broonie@kernel.org \
--cc=james.morse@arm.com \
--cc=jingzhangos@google.com \
--cc=kvm@vger.kernel.org \
--cc=kvmarm@lists.linux.dev \
--cc=maz@kernel.org \
--cc=suzuki.poulose@arm.com \
--cc=yuzenghui@huawei.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.