diff options
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.S | 14 |
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: |