summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libbsp/powerpc/qoriq/startup/mmu-tlb1.S
diff options
context:
space:
mode:
Diffstat (limited to 'c/src/lib/libbsp/powerpc/qoriq/startup/mmu-tlb1.S')
-rw-r--r--c/src/lib/libbsp/powerpc/qoriq/startup/mmu-tlb1.S14
1 files changed, 9 insertions, 5 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 5d04c2f211..25ef05303c 100644
--- a/c/src/lib/libbsp/powerpc/qoriq/startup/mmu-tlb1.S
+++ b/c/src/lib/libbsp/powerpc/qoriq/startup/mmu-tlb1.S
@@ -26,7 +26,7 @@
.global qoriq_tlb1_write
.global qoriq_tlb1_invalidate
- .global qoriq_tlb1_ts_0_only
+ .global qoriq_tlb1_invalidate_all_by_ts
.section ".bsp_start_text", "ax"
@@ -70,19 +70,23 @@ qoriq_tlb1_invalidate:
isync
blr
-qoriq_tlb1_ts_0_only:
+/* r3 = 0 for TS0, 1 for TS1 */
+qoriq_tlb1_invalidate_all_by_ts:
mflr r12
- li r11, 16
+ li r11, QORIQ_TLB1_ENTRY_COUNT
mtctr r11
li r11, 0
+ mr r10, r3
+
2:
rlwinm r0, r11, 16, 10, 15
oris r0, r0, (FSL_EIS_MAS0_TLBSEL >> 16)
mtspr FSL_EIS_MAS0, r0
tlbre
mfspr r0, FSL_EIS_MAS1
- andi. r0, r0, FSL_EIS_MAS1_TS
- beq 1f
+ rlwinm r0, r0, 20, 31, 31
+ cmpw r0, r10
+ bne 1f
mr r3, r11
bl qoriq_tlb1_invalidate
1: