Message ID | 20180430083441.72712-1-manu@freebsd.org |
---|---|
State | Deferred |
Delegated to: | Tom Rini |
Headers | show |
Series | None | expand |
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
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@freebsd.org> --- cmd/elf.c | 11 +++++++++++ 1 file changed, 11 insertions(+)