]> git.kernelconcepts.de Git - karo-tx-uboot.git/blobdiff - common/cmd_scsi.c
MAINTAINERS: fix Andreas Bießmann AVR32 entry
[karo-tx-uboot.git] / common / cmd_scsi.c
index 63a46ded89354ea60dae47d52a31c89bb5a67d45..d15b567dbb2411225c99b77eef0108f6a2e638b1 100644 (file)
@@ -46,7 +46,7 @@
 #define SCSI_VEND_ID 0x10b9
 #define SCSI_DEV_ID  0x5288
 
-#else
+#elif !defined(CONFIG_SCSI_AHCI_PLAT)
 #error no scsi device defined
 #endif
 
@@ -174,7 +174,7 @@ removable:
                scsi_curr_dev = -1;
 }
 
-
+#ifdef CONFIG_PCI
 void scsi_init(void)
 {
        int busdevfunc;
@@ -192,12 +192,14 @@ void scsi_init(void)
        scsi_low_level_init(busdevfunc);
        scsi_scan(1);
 }
+#endif
 
+#ifdef CONFIG_PARTITIONS
 block_dev_desc_t * scsi_get_dev(int dev)
 {
        return (dev < CONFIG_SYS_SCSI_MAX_DEVICE) ? &scsi_dev_desc[dev] : NULL;
 }
-
+#endif
 
 /******************************************************************************
  * scsi boot command intepreter. Derived from diskboot
@@ -210,7 +212,6 @@ int do_scsiboot (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
        ulong addr, cnt;
        disk_partition_t info;
        image_header_t *hdr;
-       int rcode = 0;
 #if defined(CONFIG_FIT)
        const void *fit_hdr = NULL;
 #endif
@@ -229,7 +230,7 @@ int do_scsiboot (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
                boot_device = argv[2];
                break;
        default:
-               return cmd_usage(cmdtp);
+               return CMD_RET_USAGE;
        }
 
        if (!boot_device) {
@@ -326,15 +327,7 @@ int do_scsiboot (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
 
        flush_cache (addr, (cnt+1)*info.blksz);
 
-       /* Check if we should attempt an auto-start */
-       if (getenv_yesno("autostart")) {
-               char *local_args[2];
-               local_args[0] = argv[0];
-               local_args[1] = NULL;
-               printf ("Automatic boot of image at addr 0x%08lX ...\n", addr);
-               rcode = do_bootm (cmdtp, 0, 1, local_args);
-       }
-        return rcode;
+       return bootm_maybe_autostart(cmdtp, argv[0]);
 }
 
 /*********************************************************************************
@@ -343,10 +336,11 @@ int do_scsiboot (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
 int do_scsi (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
 {
        switch (argc) {
-    case 0:
-    case 1:    return cmd_usage(cmdtp);
+       case 0:
+       case 1:
+               return CMD_RET_USAGE;
 
-    case 2:
+       case 2:
                        if (strncmp(argv[1],"res",3) == 0) {
                                printf("\nReset SCSI\n");
                                scsi_bus_reset();
@@ -391,7 +385,7 @@ int do_scsi (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
                                        printf("\nno SCSI devices available\n");
                                return 1;
                        }
-                       return cmd_usage(cmdtp);
+                       return CMD_RET_USAGE;
        case 3:
                        if (strncmp(argv[1],"dev",3) == 0) {
                                int dev = (int)simple_strtoul(argv[2], NULL, 10);
@@ -419,7 +413,7 @@ int do_scsi (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
                                }
                                return 1;
                        }
-                       return cmd_usage(cmdtp);
+                       return CMD_RET_USAGE;
     default:
                        /* at least 4 args */
                        if (strcmp(argv[1],"read") == 0) {
@@ -434,7 +428,7 @@ int do_scsi (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
                                return 0;
                        }
        } /* switch */
-       return cmd_usage(cmdtp);
+       return CMD_RET_USAGE;
 }
 
 /****************************************************************************************