diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2016-04-22 13:11:15 +0200 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2016-04-22 14:30:06 +0200 |
commit | 2c68a47e08da568d8e94a2ee07936f480c8c75d7 (patch) | |
tree | ffb46430991f740f84e69a76e7f4b3e4370cb655 /c/src/lib/libbsp/powerpc/qoriq/startup/mmu-tlb1.S | |
parent | bsp/qoriq: Move L1 cache invalidate function (diff) | |
download | rtems-2c68a47e08da568d8e94a2ee07936f480c8c75d7.tar.bz2 |
bsp/qoriq: Add qoriq_tlb1_invalidate_all_by_ts()
Generalize qoriq_tlb1_ts_0_only() to qoriq_tlb1_invalidate_all_by_ts().
Diffstat (limited to '')
-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: |