[U-Boot] [PATCH 5/5] cmd: bootelf: Flush cache before starting
Emmanuel Vadot
manu at freebsd.org
Mon Apr 30 08:34:41 UTC 2018
Some application might load some code at location that contain stale
cache entries. Before running a elf or raw binary, flush the caches
if they are enabled.
Signed-off-by: Emmanuel Vadot <manu at freebsd.org>
---
cmd/elf.c | 11 +++++++++++
1 file changed, 11 insertions(+)
diff --git a/cmd/elf.c b/cmd/elf.c
index 5b59fc6329..f372306de5 100644
--- a/cmd/elf.c
+++ b/cmd/elf.c
@@ -109,6 +109,17 @@ static unsigned long do_bootelf_exec(ulong (*entry)(int, char * const[]),
{
unsigned long ret;
+#if defined(CONFIG_SYS_HAVE_DCACHE_MAINTENANCE) && \
+ !defined(CONFIG_SYS_DCACHE_OFF)
+ if (dcache_status())
+ flush_dcache_all();
+#endif
+#if defined(CONFIG_SYS_HAVE_ICACHE_MAINTENANCE) && \
+ !defined(CONFIG_SYS_ICACHE_OFF)
+ if (icache_status())
+ invalidate_icache_all();
+#endif
+
/*
* pass address parameter as argv[0] (aka command name),
* and all remaining args
--
2.16.3
More information about the U-Boot
mailing list