[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-arm] [PATCH v2 21/26] target/arm: Cache the Tagged bit for a page
From: |
Richard Henderson |
Subject: |
[Qemu-arm] [PATCH v2 21/26] target/arm: Cache the Tagged bit for a page in MemTxAttrs |
Date: |
Sun, 10 Feb 2019 17:08:24 -0800 |
This "bit" is a particular value of the page's MemAttr.
Signed-off-by: Richard Henderson <address@hidden>
---
target/arm/helper.c | 25 +++++++++++++++----------
1 file changed, 15 insertions(+), 10 deletions(-)
diff --git a/target/arm/helper.c b/target/arm/helper.c
index a3ad5bc54e..3d7a51f8a2 100644
--- a/target/arm/helper.c
+++ b/target/arm/helper.c
@@ -10719,6 +10719,7 @@ static bool get_phys_addr_lpae(CPUARMState *env,
target_ulong address,
uint64_t descaddrmask;
bool aarch64 = arm_el_is_aa64(env, el);
bool guarded = false;
+ uint8_t memattr;
/* TODO:
* This code does not handle the different format TCR for VTCR_EL2.
@@ -10949,17 +10950,21 @@ static bool get_phys_addr_lpae(CPUARMState *env,
target_ulong address,
txattrs->target_tlb_bit0 = true;
}
+ if (mmu_idx == ARMMMUIdx_S2NS) {
+ memattr = convert_stage2_attrs(env, extract32(attrs, 0, 4));
+ } else {
+ /* Index into MAIR registers for cache attributes */
+ uint64_t mair = env->cp15.mair_el[el];
+ memattr = extract64(mair, extract32(attrs, 0, 3) * 8, 8);
+ }
+
+ /* When in aarch64 mode, and MTE is enabled, remember Tagged in IOTLB. */
+ if (aarch64 && memattr == 0xf0 && cpu_isar_feature(aa64_mte, cpu)) {
+ txattrs->target_tlb_bit1 = true;
+ }
+
if (cacheattrs != NULL) {
- if (mmu_idx == ARMMMUIdx_S2NS) {
- cacheattrs->attrs = convert_stage2_attrs(env,
- extract32(attrs, 0, 4));
- } else {
- /* Index into MAIR registers for cache attributes */
- uint8_t attrindx = extract32(attrs, 0, 3);
- uint64_t mair = env->cp15.mair_el[regime_el(env, mmu_idx)];
- assert(attrindx <= 7);
- cacheattrs->attrs = extract64(mair, attrindx * 8, 8);
- }
+ cacheattrs->attrs = memattr;
cacheattrs->shareability = extract32(attrs, 6, 2);
}
--
2.17.2
- [Qemu-arm] [PATCH v2 00/26] target/arm: Implement ARMv8.5-MemTag, Richard Henderson, 2019/02/10
- [Qemu-arm] [PATCH v2 01/26] target/arm: Split out arm_sctlr, Richard Henderson, 2019/02/10
- [Qemu-arm] [PATCH v2 02/26] target/arm: Split helper_msr_i_pstate into 3, Richard Henderson, 2019/02/10
- [Qemu-arm] [PATCH v2 03/26] target/arm: Add clear_pstate_bits, share gen_ss_advance, Richard Henderson, 2019/02/10
- [Qemu-arm] [PATCH v2 10/26] target/arm: Implement the IRG instruction, Richard Henderson, 2019/02/10
- [Qemu-arm] [PATCH v2 04/26] target/arm: Add MTE_ACTIVE to tb_flags, Richard Henderson, 2019/02/10
- [Qemu-arm] [PATCH v2 08/26] target/arm: Fill in helper_mte_check, Richard Henderson, 2019/02/10
- [Qemu-arm] [PATCH v2 16/26] target/arm: Implement the STGP instruction, Richard Henderson, 2019/02/10
- [Qemu-arm] [PATCH v2 15/26] target/arm: Implement LDG, STG, ST2G instructions, Richard Henderson, 2019/02/10
- [Qemu-arm] [PATCH v2 18/26] target/arm: Implement data cache set allocation tags, Richard Henderson, 2019/02/10
- [Qemu-arm] [PATCH v2 21/26] target/arm: Cache the Tagged bit for a page in MemTxAttrs,
Richard Henderson <=
- [Qemu-arm] [PATCH v2 05/26] target/arm: Extract TCMA with ARMVAParameters, Richard Henderson, 2019/02/10
- [Qemu-arm] [PATCH v2 19/26] target/arm: Set PSTATE.TCO on exception entry, Richard Henderson, 2019/02/10
- [Qemu-arm] [PATCH v2 06/26] target/arm: Add MTE system registers, Richard Henderson, 2019/02/10
- [Qemu-arm] [PATCH v2 07/26] target/arm: Assert no manual change to CACHED_PSTATE_BITS, Richard Henderson, 2019/02/10
- [Qemu-arm] [PATCH v2 22/26] target/arm: Create tagged ram when MTE is enabled, Richard Henderson, 2019/02/10
- [Qemu-arm] [PATCH v2 11/26] target/arm: Implement ADDG, SUBG instructions, Richard Henderson, 2019/02/10
- [Qemu-arm] [PATCH v2 13/26] target/arm: Implement the SUBP instruction, Richard Henderson, 2019/02/10
- [Qemu-arm] [PATCH v2 25/26] target/arm: Enable MTE, Richard Henderson, 2019/02/10
- [Qemu-arm] [PATCH v2 23/26] target/arm: Add allocation tag storage for user mode, Richard Henderson, 2019/02/10
- [Qemu-arm] [PATCH v2 26/26] tests/tcg/aarch64: Add mte smoke tests, Richard Henderson, 2019/02/10