summaryrefslogtreecommitdiffstats
path: root/target
diff options
context:
space:
mode:
authorEdgar E. Iglesias2018-04-15 23:18:49 +0200
committerEdgar E. Iglesias2018-05-29 09:35:14 +0200
commita2207b593b6d7e164e6d4a587aec4cd885a8e855 (patch)
treed1f82ee76022f8c22372d426fbed5f3a2a5201c0 /target
parenttarget-microblaze: Implement MFSE EAR (diff)
downloadqemu-a2207b593b6d7e164e6d4a587aec4cd885a8e855.tar.gz
qemu-a2207b593b6d7e164e6d4a587aec4cd885a8e855.tar.xz
qemu-a2207b593b6d7e164e6d4a587aec4cd885a8e855.zip
target-microblaze: mmu: Add R_TBLX_MISS macros
Add a R_TBLX_MISS MASK and SHIFT macros. Reviewed-by: Alistair Francis <alistair.francis@wdc.com> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Signed-off-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com>
Diffstat (limited to 'target')
-rw-r--r--target/microblaze/mmu.c5
-rw-r--r--target/microblaze/mmu.h4
2 files changed, 7 insertions, 2 deletions
diff --git a/target/microblaze/mmu.c b/target/microblaze/mmu.c
index 0019ebd18f..f4a4c339c9 100644
--- a/target/microblaze/mmu.c
+++ b/target/microblaze/mmu.c
@@ -292,8 +292,9 @@ void mmu_write(CPUMBState *env, uint32_t rn, uint32_t v)
v & TLB_EPN_MASK, 0, cpu_mmu_index(env, false));
if (hit) {
env->mmu.regs[MMU_R_TLBX] = lu.idx;
- } else
- env->mmu.regs[MMU_R_TLBX] |= 0x80000000;
+ } else {
+ env->mmu.regs[MMU_R_TLBX] |= R_TBLX_MISS_MASK;
+ }
break;
}
default:
diff --git a/target/microblaze/mmu.h b/target/microblaze/mmu.h
index 3b7a9983d5..113539c6e9 100644
--- a/target/microblaze/mmu.h
+++ b/target/microblaze/mmu.h
@@ -54,6 +54,10 @@
#define TLB_M 0x00000002 /* Memory is coherent */
#define TLB_G 0x00000001 /* Memory is guarded from prefetch */
+/* TLBX */
+#define R_TBLX_MISS_SHIFT 31
+#define R_TBLX_MISS_MASK (1U << R_TBLX_MISS_SHIFT)
+
#define TLB_ENTRIES 64
struct microblaze_mmu