[U-Boot] [PATCH] cmd_boot: cleanup for 'go' command
Kuo-Jung Su
dantesu at gmail.com
Fri Apr 26 10:01:52 CEST 2013
From: Kuo-Jung Su <dantesu at faraday-tech.com>
With MMU/D-Cache enabled, data might be retained at cache
rather than at DRAM when we execute 'go' command, and some
of the bare-metal softwares would always invalidate the entire
data cache at start-up, and causes data lost issue.
This patch is designed to fixed this issue.
It has been verified at ARM based systems, and should also work
at other platforms.
Signed-off-by: Kuo-Jung Su <dantesu at faraday-tech.com>
---
common/cmd_boot.c | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/common/cmd_boot.c b/common/cmd_boot.c
index d3836fd..1a1a532 100644
--- a/common/cmd_boot.c
+++ b/common/cmd_boot.c
@@ -50,6 +50,16 @@ static int do_go(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
printf ("## Starting application at 0x%08lX ...\n", addr);
+#ifdef CONFIG_USE_IRQ
+ disable_interrupts();
+#endif
+#ifndef CONFIG_SYS_DCACHE_OFF
+ flush_dcache_all();
+#endif
+#ifndef CONFIG_SYS_ICACHE_OFF
+ invalidate_icache_all();
+#endif
+
/*
* pass address parameter as argv[0] (aka command name),
* and all remaining args
--
1.7.9.5
More information about the U-Boot
mailing list