|
@@ -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
|