Reviewed-by: Peter Maydell <[email protected]>
Signed-off-by: Richard Henderson <[email protected]>
---
target/arm/cpregs.h | 31 +++++++++++++++++++++++++++++++
1 file changed, 31 insertions(+)
diff --git a/target/arm/cpregs.h b/target/arm/cpregs.h
index 2c9927b1d9..9f2532fe66 100644
--- a/target/arm/cpregs.h
+++ b/target/arm/cpregs.h
@@ -728,6 +728,9 @@ FIELD(FGT, BITPOS, 0, 6) /* Bit position within the
uint64_t */
#define DO_BIT(REG, BITNAME) \
FGT_##BITNAME = FGT_##REG | R_##REG##_EL2_##BITNAME##_SHIFT
+#define DO_EL3_BIT(REG, BITNAME) \
+ FGT_##BITNAME = FGT_##REG | R_##REG##_EL3_##BITNAME##_SHIFT
+
/* Some bits have reversed sense, so 0 means trap and 1 means not */
#define DO_REV_BIT(REG, BITNAME) \
FGT_##BITNAME = FGT_##REG | FGT_REV | R_##REG##_EL2_##BITNAME##_SHIFT
@@ -787,6 +790,7 @@ typedef enum FGTBit {
FGT_HDFGRTR = FGT_RW | (FGTREG_HDFGRTR << R_FGT_IDX_SHIFT),
FGT_HDFGWTR = FGT_W | (FGTREG_HDFGWTR << R_FGT_IDX_SHIFT),
FGT_HFGITR = FGT_EXEC | (FGTREG_HFGITR << R_FGT_IDX_SHIFT),
+ FGT_FGWTE3 = FGT_W | (FGTREG_FGWTE3 << R_FGT_IDX_SHIFT),
/* Trap bits in HFGRTR_EL2 / HFGWTR_EL2, starting from bit 0. */
DO_BIT(HFGRTR, AFSR0_EL1),
@@ -919,10 +923,37 @@ typedef enum FGTBit {
DO_REV_BIT(HFGITR, NGCSPUSHM_EL1),
DO_REV_BIT(HFGITR, NGCSEPP),
DO_BIT(HFGITR, ATS1E1A),
+
+ /* Trap bits in FGWTE3_EL3, starting from bit 0 */
+ DO_EL3_BIT(FGWTE3, ACTLR_EL3),
+ DO_EL3_BIT(FGWTE3, AFSR0_EL3),
+ DO_EL3_BIT(FGWTE3, AFSR1_EL3),
+ DO_EL3_BIT(FGWTE3, AMAIR_EL3),
+ DO_EL3_BIT(FGWTE3, AMAIR2_EL3),
+ DO_EL3_BIT(FGWTE3, GCSCR_EL3),
+ DO_EL3_BIT(FGWTE3, GCSPR_EL3),
+ DO_EL3_BIT(FGWTE3, GPCCR_EL3),
+ DO_EL3_BIT(FGWTE3, GPTBR_EL3),
+ DO_EL3_BIT(FGWTE3, MAIR_EL3),
+ DO_EL3_BIT(FGWTE3, MAIR2_EL3),
+ DO_EL3_BIT(FGWTE3, MDCR_EL3),
+ DO_EL3_BIT(FGWTE3, MECID_RL_A_EL3),
+ DO_EL3_BIT(FGWTE3, MPAM3_EL3),
+ DO_EL3_BIT(FGWTE3, PIR_EL3),
+ DO_EL3_BIT(FGWTE3, SCTLR_EL3),
+ DO_EL3_BIT(FGWTE3, SCTLR2_EL3),
+ DO_EL3_BIT(FGWTE3, SPMROOTCR_EL3),
+ DO_EL3_BIT(FGWTE3, TCR_EL3),
+ DO_EL3_BIT(FGWTE3, TPIDR_EL3),
+ DO_EL3_BIT(FGWTE3, TTBR0_EL3),
+ DO_EL3_BIT(FGWTE3, VBAR_EL3),
+ DO_EL3_BIT(FGWTE3, GPCBW_EL3),
} FGTBit;
#undef DO_BIT
+#undef DO_EL3_BIT
#undef DO_REV_BIT
+#undef DO_TLBINXS_BIT
typedef struct ARMCPRegInfo ARMCPRegInfo;
--
2.43.0