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 31cd5b0..61784d8 100644
--- a/cpu/nios2/start.S
+++ b/cpu/nios2/start.S
@@ -98,6 +98,17 @@ _cur:        movhi   r5, %hi(_cur - _start)
        stwio   r7, 0(r5)
        addi    r5, r5, 4
        bne     r5, r6, 2b
+
+       /* 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
 3:
 
        /* ZERO BSS/SBSS -- bss and sbss are assumed to be adjacent
-- 
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