@samitouri / QOSamiQemu / commits / 7a8d5411fd

target/arm: Add FGWTE3 FGT bit definitions

Reviewed-by: Peter Maydell <peter.maydell@linaro.org> Signed-off-by: Richard Henderson <richard.henderson@linaro.org> Message-id: 20260806172709.333300-4-richard.henderson@linaro.org Signed-off-by: Peter Maydell <peter.maydell@linaro.org>

Richard Henderson committed Aug 6, 2026 at 10:27 UTC 7a8d5411fd5fb8c76affe4ef82f96d70d5a38246
1 file changed +31
target/arm/cpregs.h
+31
@@ -728,6 +728,9 @@ FIELD(FGT, BITPOS, 0, 6) /* Bit position within the uint64_t */
728 #define DO_BIT(REG, BITNAME) \
729 FGT_##BITNAME = FGT_##REG | R_##REG##_EL2_##BITNAME##_SHIFT
730
731 +#define DO_EL3_BIT(REG, BITNAME) \
732 + FGT_##BITNAME = FGT_##REG | R_##REG##_EL3_##BITNAME##_SHIFT
733 +
734 /* Some bits have reversed sense, so 0 means trap and 1 means not */
735 #define DO_REV_BIT(REG, BITNAME) \
736 FGT_##BITNAME = FGT_##REG | FGT_REV | R_##REG##_EL2_##BITNAME##_SHIFT
@@ -787,6 +790,7 @@ typedef enum FGTBit {
790 FGT_HDFGRTR = FGT_RW | (FGTREG_HDFGRTR << R_FGT_IDX_SHIFT),
791 FGT_HDFGWTR = FGT_W | (FGTREG_HDFGWTR << R_FGT_IDX_SHIFT),
792 FGT_HFGITR = FGT_EXEC | (FGTREG_HFGITR << R_FGT_IDX_SHIFT),
793 + FGT_FGWTE3 = FGT_W | (FGTREG_FGWTE3 << R_FGT_IDX_SHIFT),
794
795 /* Trap bits in HFGRTR_EL2 / HFGWTR_EL2, starting from bit 0. */
796 DO_BIT(HFGRTR, AFSR0_EL1),
@@ -919,10 +923,37 @@ typedef enum FGTBit {
923 DO_REV_BIT(HFGITR, NGCSPUSHM_EL1),
924 DO_REV_BIT(HFGITR, NGCSEPP),
925 DO_BIT(HFGITR, ATS1E1A),
926 +
927 + /* Trap bits in FGWTE3_EL3, starting from bit 0 */
928 + DO_EL3_BIT(FGWTE3, ACTLR_EL3),
929 + DO_EL3_BIT(FGWTE3, AFSR0_EL3),
930 + DO_EL3_BIT(FGWTE3, AFSR1_EL3),
931 + DO_EL3_BIT(FGWTE3, AMAIR_EL3),
932 + DO_EL3_BIT(FGWTE3, AMAIR2_EL3),
933 + DO_EL3_BIT(FGWTE3, GCSCR_EL3),
934 + DO_EL3_BIT(FGWTE3, GCSPR_EL3),
935 + DO_EL3_BIT(FGWTE3, GPCCR_EL3),
936 + DO_EL3_BIT(FGWTE3, GPTBR_EL3),
937 + DO_EL3_BIT(FGWTE3, MAIR_EL3),
938 + DO_EL3_BIT(FGWTE3, MAIR2_EL3),
939 + DO_EL3_BIT(FGWTE3, MDCR_EL3),
940 + DO_EL3_BIT(FGWTE3, MECID_RL_A_EL3),
941 + DO_EL3_BIT(FGWTE3, MPAM3_EL3),
942 + DO_EL3_BIT(FGWTE3, PIR_EL3),
943 + DO_EL3_BIT(FGWTE3, SCTLR_EL3),
944 + DO_EL3_BIT(FGWTE3, SCTLR2_EL3),
945 + DO_EL3_BIT(FGWTE3, SPMROOTCR_EL3),
946 + DO_EL3_BIT(FGWTE3, TCR_EL3),
947 + DO_EL3_BIT(FGWTE3, TPIDR_EL3),
948 + DO_EL3_BIT(FGWTE3, TTBR0_EL3),
949 + DO_EL3_BIT(FGWTE3, VBAR_EL3),
950 + DO_EL3_BIT(FGWTE3, GPCBW_EL3),
951 } FGTBit;
952
953 #undef DO_BIT
954 +#undef DO_EL3_BIT
955 #undef DO_REV_BIT
956 +#undef DO_TLBINXS_BIT
957
958 typedef struct ARMCPRegInfo ARMCPRegInfo;
959