[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 16/17] target/arm: Enable MTE
From: |
Richard Henderson |
Subject: |
[Qemu-devel] [PATCH 16/17] target/arm: Enable MTE |
Date: |
Mon, 14 Jan 2019 12:11:21 +1100 |
??? It does not yet work for system mode.
Signed-off-by: Richard Henderson <address@hidden>
---
target/arm/cpu.c | 10 ++++++++++
target/arm/cpu64.c | 1 +
2 files changed, 11 insertions(+)
diff --git a/target/arm/cpu.c b/target/arm/cpu.c
index 5eff6995ee..aae30207b9 100644
--- a/target/arm/cpu.c
+++ b/target/arm/cpu.c
@@ -180,6 +180,16 @@ static void arm_cpu_reset(CPUState *s)
* make no difference to the user-level emulation.
*/
env->cp15.tcr_el[1].raw_tcr = (3ULL << 37);
+ /* Enable MTE allocation tags. */
+ env->cp15.hcr_el2 |= HCR_ATA;
+ env->cp15.scr_el3 |= SCR_ATA;
+ env->cp15.sctlr_el[1] |= SCTLR_ATA0;
+ /* Enable synchronous tag check failures. */
+ env->cp15.sctlr_el[1] |= 1ull << 38;
+#ifdef TARGET_AARCH64
+ /* Set MTE seed to non-zero value, otherwise RandomTag fails. */
+ env->cp15.rgsr_el1 = 0x123400;
+#endif
#else
/* Reset into the highest available EL */
if (arm_feature(env, ARM_FEATURE_EL3)) {
diff --git a/target/arm/cpu64.c b/target/arm/cpu64.c
index 64fbe75eca..49fdad69ce 100644
--- a/target/arm/cpu64.c
+++ b/target/arm/cpu64.c
@@ -374,6 +374,7 @@ static void aarch64_max_initfn(Object *obj)
t = cpu->isar.id_aa64pfr1;
t = FIELD_DP64(t, ID_AA64PFR1, BT, 1);
+ t = FIELD_DP64(t, ID_AA64PFR1, MTE, 2);
cpu->isar.id_aa64pfr1 = t;
t = cpu->isar.id_aa64mmfr1;
--
2.17.2
- [Qemu-devel] [PATCH 05/17] target/arm: Suppress tag check for sp+offset, (continued)
- [Qemu-devel] [PATCH 05/17] target/arm: Suppress tag check for sp+offset, Richard Henderson, 2019/01/13
- [Qemu-devel] [PATCH 06/17] target/arm: Implement the IRG instruction, Richard Henderson, 2019/01/13
- [Qemu-devel] [PATCH 07/17] target/arm: Implement ADDG, SUBG instructions, Richard Henderson, 2019/01/13
- [Qemu-devel] [PATCH 08/17] target/arm: Implement the GMI instruction, Richard Henderson, 2019/01/13
- [Qemu-devel] [PATCH 09/17] target/arm: Implement the SUBP instruction, Richard Henderson, 2019/01/13
- [Qemu-devel] [PATCH 10/17] target/arm: Implement LDG, STG, ST2G instructions, Richard Henderson, 2019/01/13
- [Qemu-devel] [PATCH 11/17] target/arm: Implement the STGP instruction, Richard Henderson, 2019/01/13
- [Qemu-devel] [PATCH 12/17] target/arm: Implement the LDGV and STGV instructions, Richard Henderson, 2019/01/13
- [Qemu-devel] [PATCH 13/17] target/arm: Set PSTATE.TCO on exception entry, Richard Henderson, 2019/01/13
- [Qemu-devel] [PATCH 14/17] tcg: Introduce target-specific page data for user-only, Richard Henderson, 2019/01/13
- [Qemu-devel] [PATCH 16/17] target/arm: Enable MTE,
Richard Henderson <=
- [Qemu-devel] [PATCH 15/17] target/arm: Add allocation tag storage for user-only, Richard Henderson, 2019/01/13
- [Qemu-devel] [PATCH 17/17] tests/tcg/aarch64: Add mte smoke tests, Richard Henderson, 2019/01/13