summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libbsp/powerpc/qoriq/start
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2016-04-21 12:37:25 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2016-04-22 09:25:10 +0200
commitc287dc0f4642544f001ad192794df311d640a3a7 (patch)
tree27d087006be91daa3a2d9109e36d8e419df3d0b6 /c/src/lib/libbsp/powerpc/qoriq/start
parentbsp/qoriq: Optionally initialize register HID0 (diff)
downloadrtems-c287dc0f4642544f001ad192794df311d640a3a7.tar.bz2
bsp/qoriq: Flush and invalidate all L2 caches
Diffstat (limited to 'c/src/lib/libbsp/powerpc/qoriq/start')
-rw-r--r--c/src/lib/libbsp/powerpc/qoriq/start/start.S32
1 files changed, 12 insertions, 20 deletions
diff --git a/c/src/lib/libbsp/powerpc/qoriq/start/start.S b/c/src/lib/libbsp/powerpc/qoriq/start/start.S
index b0e4960819..f9ac6a81cd 100644
--- a/c/src/lib/libbsp/powerpc/qoriq/start/start.S
+++ b/c/src/lib/libbsp/powerpc/qoriq/start/start.S
@@ -80,27 +80,19 @@ _start:
bne 1b
isync
-#ifdef QORIQ_L2CSR0
- /* Flush L2 cache of first cluster */
- LWI r4, QORIQ_L2CSR0
- lwz r3, 0(r4)
- oris r3, r3, FSL_EIS_L2CSR0_L2FL >> 16
- stw r3, 0(r4)
-1:
- lwz r3, 0(r4)
- andis. r3, r3, FSL_EIS_L2CSR0_L2FL >> 16
- bne 1b
- isync
+#ifdef QORIQ_CLUSTER_1_L2CSR0
+ LWI r3, QORIQ_CLUSTER_1_L2CSR0
+ bl qoriq_l2cache_flush_invalidate
+#endif
- /* Invalidate L2 cache of first cluster */
- lwz r3, 0(r4)
- oris r3, r3, FSL_EIS_L2CSR0_L2FI >> 16
- stw r3, 0(r4)
-1:
- lwz r3, 0(r4)
- andis. r3, r3, FSL_EIS_L2CSR0_L2FI >> 16
- bne 1b
- isync
+#ifdef QORIQ_CLUSTER_2_L2CSR0
+ LWI r3, QORIQ_CLUSTER_2_L2CSR0
+ bl qoriq_l2cache_flush_invalidate
+#endif
+
+#ifdef QORIQ_CLUSTER_3_L2CSR0
+ LWI r3, QORIQ_CLUSTER_3_L2CSR0
+ bl qoriq_l2cache_flush_invalidate
#endif
/* Get start stack */