]> git.ipfire.org Git - people/ms/u-boot.git/blobdiff - common/bootm_os.c
scsi: move the partition initialization out of the scsi detection
[people/ms/u-boot.git] / common / bootm_os.c
index 9ec84bd0dbe0349741b09b44010f3e4f75709be8..6e463c317e84356e1c4b0cab9336f3b35abd9a8a 100644 (file)
@@ -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);