@samitouri / QOSamiQemu / commits / f35b6418cc

docs: add MTE4 features to docs

The implemented MTE4 features are now present in docs/system/arm/emulation.rst Signed-off-by: Gabriel Brookman <brookmangabriel@gmail.com> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Message-id: 20260529-feat-mte4-v7-13-ccbd3c14eb3c@gmail.com Signed-off-by: Peter Maydell <peter.maydell@linaro.org>

Gabriel Brookman committed May 29, 2026 at 12:52 UTC f35b6418ccebf5860d8259c1ae3fc2335f618793
2 files changed +10
docs/system/arm/emulation.rst
+5
@@ -114,6 +114,11 @@ the following architecture extensions:
114 - FEAT_MTE3 (MTE Asymmetric Fault Handling)
115 - FEAT_MTE_ASYM_FAULT (Memory tagging asymmetric faults)
116 - FEAT_MTE_ASYNC (Asynchronous reporting of Tag Check Fault)
117 +- FEAT_MTE_CANONICAL_TAGS (Canonical tag checking)
118 +- FEAT_MTE_NO_ADDRESS_TAGS (Address tagging disabled)
119 +- FEAT_MTE_PERM (NoTagAccess memory attribute)
120 +- FEAT_MTE_STORE_ONLY (Store-only tag checking)
121 +- FEAT_MTE_TAGGED_FAR (Full address reporting of Tag Check Fault)
122 - FEAT_NMI (Non-maskable Interrupt)
123 - FEAT_NV (Nested Virtualization)
124 - FEAT_NV2 (Enhanced nested virtualization support)
target/arm/tcg/cpu64.c
+5
@@ -1296,10 +1296,15 @@ void aarch64_max_tcg_initfn(Object *obj)
1296 t = FIELD_DP64(t, ID_AA64PFR1, CSV2_FRAC, 0); /* FEAT_CSV2_3 */
1297 t = FIELD_DP64(t, ID_AA64PFR1, NMI, 1); /* FEAT_NMI */
1298 t = FIELD_DP64(t, ID_AA64PFR1, GCS, 1); /* FEAT_GCS */
1299 + /* FEAT_MTE_NO_ADDRESS_TAGS + FEAT_MTE_CANONICAL_TAGS */
1300 + t = FIELD_DP64(t, ID_AA64PFR1, MTEX, 1);
1301 SET_IDREG(isar, ID_AA64PFR1, t);
1302
1303 t = GET_IDREG(isar, ID_AA64PFR2);
1304 t = FIELD_DP64(t, ID_AA64PFR2, FPMR, 1); /* FEAT_FPMR */
1305 + t = FIELD_DP64(t, ID_AA64PFR2, MTEFAR, 1); /* FEAT_MTE_TAGGED_FAR */
1306 + t = FIELD_DP64(t, ID_AA64PFR2, MTESTOREONLY, 1); /* FEAT_MTE_STORE_ONLY */
1307 + t = FIELD_DP64(t, ID_AA64PFR2, MTEPERM, 1); /* FEAT_MTE_PERM */
1308 SET_IDREG(isar, ID_AA64PFR2, t);
1309
1310 t = GET_IDREG(isar, ID_AA64MMFR0);