[U-Boot] [PATCH] bootm: qnx: Disable data cache before booting QNX image

Instead of disabling the data cache in the bootelf command, disabling it in the do_bootm_qnxelf function. Some ELF binary might want the cache enabled.
Signed-off-by: Emmanuel Vadot manu@bidouilliste.com --- cmd/elf.c | 11 ----------- common/bootm_os.c | 12 ++++++++++++ 2 files changed, 12 insertions(+), 11 deletions(-)
diff --git a/cmd/elf.c b/cmd/elf.c index 5190cc6c0f..e4c6535111 100644 --- a/cmd/elf.c +++ b/cmd/elf.c @@ -110,22 +110,11 @@ static unsigned long do_bootelf_exec(ulong (*entry)(int, char * const[]), unsigned long ret;
/* - * QNX images require the data cache is disabled. - * Data cache is already flushed, so just turn it off. - */ - int dcache = dcache_status(); - if (dcache) - dcache_disable(); - - /* * pass address parameter as argv[0] (aka command name), * and all remaining args */ ret = entry(argc, argv);
- if (dcache) - dcache_enable(); - return ret; }
diff --git a/common/bootm_os.c b/common/bootm_os.c index e3f5a46412..6e463c317e 100644 --- a/common/bootm_os.c +++ b/common/bootm_os.c @@ -353,6 +353,7 @@ static int do_bootm_qnxelf(int flag, int argc, char * const argv[], { char *local_args[2]; char str[16]; + int dcache;
if (flag != BOOTM_STATE_OS_GO) return 0; @@ -367,8 +368,19 @@ static int do_bootm_qnxelf(int flag, int argc, char * const argv[], sprintf(str, "%lx", images->ep); /* write entry-point into string */ local_args[0] = argv[0]; local_args[1] = str; /* and provide it via the arguments */ + + /* + * QNX images require the data cache is disabled. + */ + dcache = dcache_status(); + if (dcache) + dcache_disable(); + do_bootelf(NULL, 0, 2, local_args);
+ if (dcache) + dcache_enable(); + return 1; } #endif

On Thu, Jan 19, 2017 at 10:23:56AM +0100, Emmanuel Vadot wrote:
Instead of disabling the data cache in the bootelf command, disabling it in the do_bootm_qnxelf function. Some ELF binary might want the cache enabled.
Signed-off-by: Emmanuel Vadot manu@bidouilliste.com
Applied to u-boot/master, thanks!
participants (2)
-
Emmanuel Vadot
-
Tom Rini