summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2017-03-23 10:07:52 +0100
committerSebastian Huber <sebastian.huber@embedded-brains.de>2017-04-03 14:07:58 +0200
commitd2a45a58aa9b2d739daa3768af2864effc8f3660 (patch)
treeabfc6b934724fd4175de9aa15c106c9041c983fe
parentbsp/qoriq: Adjust MMU config only once (diff)
downloadrtems-d2a45a58aa9b2d739daa3768af2864effc8f3660.tar.bz2
bsp/qoriq: Fix L1 cache flush
-rw-r--r--c/src/lib/libbsp/powerpc/qoriq/start/start.S19
1 files changed, 13 insertions, 6 deletions
diff --git a/c/src/lib/libbsp/powerpc/qoriq/start/start.S b/c/src/lib/libbsp/powerpc/qoriq/start/start.S
index 481b664bc4..d9a8a39a7c 100644
--- a/c/src/lib/libbsp/powerpc/qoriq/start/start.S
+++ b/c/src/lib/libbsp/powerpc/qoriq/start/start.S
@@ -54,14 +54,21 @@ _start:
bl bsp_fdt_copy
#ifdef QORIQ_HAS_WRITE_BACK_L1_CACHE
- LWI r3, bsp_section_start_begin
- LWI r4, bsp_section_data_load_end
- sub r4, r4, r3
- bl rtems_cache_flush_multiple_data_lines
-#else
- bl qoriq_l1cache_invalidate
+ /*
+ * See PowerPC e500 Core Family Reference Manual, 11.5, L1 Data Cache
+ * Flushing.
+ */
+ LWI r3, 12 * 128
+ mtctr r3
+ LWI r4, bsp_section_bss_begin
+1:
+ dcbz r0, r4
+ addi r4, r4, 32
+ bdnz 1b
#endif
+ bl qoriq_l1cache_invalidate
+
#ifdef QORIQ_CLUSTER_1_L2CSR0
LWI r3, QORIQ_CLUSTER_1_L2CSR0
bl qoriq_l2cache_flush_invalidate