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>
diff --git a/cmd/elf.c b/cmd/elf.c
index 5190cc6..e4c6535 100644
--- a/cmd/elf.c
+++ b/cmd/elf.c
@@ -110,22 +110,11 @@
 	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 e3f5a46..6e463c3 100644
--- a/common/bootm_os.c
+++ b/common/bootm_os.c
@@ -353,6 +353,7 @@
 {
 	char *local_args[2];
 	char str[16];
+	int dcache;
 
 	if (flag != BOOTM_STATE_OS_GO)
 		return 0;
@@ -367,8 +368,19 @@
 	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