[U-Boot] [PATCH] nios2: flush dcache after relocating code in start.S

Thomas Chou thomas at wytron.com.tw
Wed Mar 24 07:16:49 CET 2010


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

Signed-off-by: Thomas Chou <thomas at 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



More information about the U-Boot mailing list