X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=common%2Fbootm_os.c;h=6e463c317e84356e1c4b0cab9336f3b35abd9a8a;hb=e9eb0cb20a12f4ef55e229555efa6e726274dfdc;hp=9ec84bd0dbe0349741b09b44010f3e4f75709be8;hpb=f3c264f9de6a5727c90ecf6d46d4747091c0a57f;p=oweals%2Fu-boot.git diff --git a/common/bootm_os.c b/common/bootm_os.c index 9ec84bd0db..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 @@ -481,6 +493,7 @@ int boot_selected_os(int argc, char * const argv[], int state, /* Stand-alone may return when 'autostart' is 'no' */ if (images->os.type == IH_TYPE_STANDALONE || + IS_ENABLED(CONFIG_SANDBOX) || state == BOOTM_STATE_OS_FAKE_GO) /* We expect to return */ return 0; bootstage_error(BOOTSTAGE_ID_BOOT_OS_RETURNED);