If we relocate the code, the data cache must be flushed before
we jump to the new code.

Signed-off-by: Thomas Chou <tho...@wytron.com.tw>
---
 cpu/nios2/start.S |   11 +++++++++++
 1 files changed, 11 insertions(+), 0 deletions(-)

diff --git a/cpu/nios2/start.S b/cpu/nios2/start.S
index 4b4c560..b0a51a8 100644
--- a/cpu/nios2/start.S
+++ b/cpu/nios2/start.S
@@ -106,6 +106,17 @@ _cur:      movhi   r5, %hi(_cur - _start)
        bne     r5, r6, 2b
 3:
 
+       /* DCACHE FLUSH -- after relocating code and data
+        */
+       movhi   r4, %hi(CONFIG_SYS_DCACHELINE_SIZE)
+       ori     r4, r4, %lo(CONFIG_SYS_DCACHELINE_SIZE)
+       movhi   r5, %hi(CONFIG_SYS_DCACHE_SIZE)
+       ori     r5, r5, %lo(CONFIG_SYS_DCACHE_SIZE)
+       mov     r6, r0
+1:     flushd  0(r6)
+       add     r6, r6, r4
+       bltu    r6, r5, 1b
+
        /* ZERO BSS/SBSS -- bss and sbss are assumed to be adjacent
         * and between __bss_start and _end.
         */
-- 
1.6.6.1

_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to