summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2016-07-28 10:35:24 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2016-07-28 10:50:12 +0200
commit64467730002526e52626d3e590117422c3d9fb70 (patch)
tree5245aa46a68b3306dbdaf718bb9482ca8a5e3f0f
parentbsp/qoriq: Add QORIQ_HAS_WRITE_BACK_L1_CACHE (diff)
downloadrtems-64467730002526e52626d3e590117422c3d9fb70.tar.bz2
bsp/qoriq: Fix tlbwe synchronization
-rw-r--r--c/src/lib/libbsp/powerpc/qoriq/startup/mmu-tlb1.S6
-rw-r--r--c/src/lib/libbsp/powerpc/qoriq/startup/mmu.c2
2 files changed, 5 insertions, 3 deletions
diff --git a/c/src/lib/libbsp/powerpc/qoriq/startup/mmu-tlb1.S b/c/src/lib/libbsp/powerpc/qoriq/startup/mmu-tlb1.S
index 25ef05303c..e988656760 100644
--- a/c/src/lib/libbsp/powerpc/qoriq/startup/mmu-tlb1.S
+++ b/c/src/lib/libbsp/powerpc/qoriq/startup/mmu-tlb1.S
@@ -48,8 +48,9 @@ qoriq_tlb1_write:
li r0, 0
mtspr FSL_EIS_MAS8, r0
#endif
+ isync
+ msync
tlbwe
- sync
isync
blr
@@ -65,8 +66,9 @@ qoriq_tlb1_invalidate:
#ifdef QORIQ_HAS_HYPERVISOR_MODE
mtspr FSL_EIS_MAS8, r0
#endif
+ isync
+ msync
tlbwe
- sync
isync
blr
diff --git a/c/src/lib/libbsp/powerpc/qoriq/startup/mmu.c b/c/src/lib/libbsp/powerpc/qoriq/startup/mmu.c
index e2a0188c80..90a4b23162 100644
--- a/c/src/lib/libbsp/powerpc/qoriq/startup/mmu.c
+++ b/c/src/lib/libbsp/powerpc/qoriq/startup/mmu.c
@@ -317,7 +317,7 @@ void qoriq_mmu_change_perm(uint32_t test, uint32_t set, uint32_t clear)
mas3 &= ~(clear & mask);
mas3 |= set & mask;
PPC_SET_SPECIAL_PURPOSE_REGISTER(FSL_EIS_MAS3, mas3);
- asm volatile ("tlbwe; msync; isync" : : : "memory");
+ asm volatile ("isync; msync; tlbwe; isync" : : : "memory");
}
}
}