]> git.kernelconcepts.de Git - karo-tx-uboot.git/blobdiff - common/cmd_ext2.c
compiler.h: unify system ifdef cruft here
[karo-tx-uboot.git] / common / cmd_ext2.c
index 75afb320ecc1cf555072c37b7d33eac37ee6db18..6ee60c66f2169b672c3e9ffd8d2f4310d2351552 100644 (file)
  * Ext2fs support
  */
 #include <common.h>
-
-#if (CONFIG_COMMANDS & CFG_CMD_EXT2)
+#include <part.h>
 #include <config.h>
 #include <command.h>
 #include <image.h>
 #include <linux/ctype.h>
 #include <asm/byteorder.h>
 #include <ext2fs.h>
+#if defined(CONFIG_CMD_USB) && defined(CONFIG_USB_STORAGE)
+#include <usb.h>
+#endif
 
-#ifndef CONFIG_DOS_PARTITION
-#error DOS partition support must be selected
+#if !defined(CONFIG_DOS_PARTITION) && !defined(CONFIG_EFI_PARTITION)
+#error DOS or EFI partition support must be selected
 #endif
 
 /* #define     EXT2_DEBUG */
 #define PRINTF(fmt,args...)
 #endif
 
-static block_dev_desc_t *get_dev (char* ifname, int dev)
-{
-#if (CONFIG_COMMANDS & CFG_CMD_IDE)
-       if (strncmp(ifname,"ide",3)==0) {
-               extern block_dev_desc_t * ide_get_dev(int dev);
-               return((dev >= CFG_IDE_MAXDEVICE) ? NULL : ide_get_dev(dev));
-       }
-#endif
-#if (CONFIG_COMMANDS & CFG_CMD_SCSI)
-       if (strncmp(ifname,"scsi",4)==0) {
-               extern block_dev_desc_t * scsi_get_dev(int dev);
-               return((dev >= CFG_SCSI_MAXDEVICE) ? NULL : scsi_get_dev(dev));
-       }
-#endif
-#if ((CONFIG_COMMANDS & CFG_CMD_USB) && defined(CONFIG_USB_STORAGE))
-       if (strncmp(ifname,"usb",3)==0) {
-               extern block_dev_desc_t * usb_stor_get_dev(int dev);
-               return((dev >= USB_MAX_STOR_DEV) ? NULL : usb_stor_get_dev(dev));
-       }
-#endif
-#if defined(CONFIG_MMC)
-       if (strncmp(ifname,"mmc",3)==0) {
-               extern block_dev_desc_t *  mmc_get_dev(int dev);
-               return((dev >= 1) ? NULL : mmc_get_dev(dev));
-       }
-#endif
-#if defined(CONFIG_SYSTEMACE)
-       if (strcmp(ifname,"ace")==0) {
-               extern block_dev_desc_t *  systemace_get_dev(int dev);
-               return((dev >= 1) ? NULL : systemace_get_dev(dev));
-       }
-#endif
-       return(NULL);
-}
-
 int do_ext2ls (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
 {
        char *filename = "/";
@@ -99,11 +66,11 @@ int do_ext2ls (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
        int part_length;
 
        if (argc < 3) {
-               printf ("Usage:\n%s\n", cmdtp->usage);
+               cmd_usage(cmdtp);
                return(1);
        }
        dev = (int)simple_strtoul (argv[2], &ep, 16);
-       dev_desc=get_dev(argv[1],dev);
+       dev_desc = get_dev(argv[1],dev);
 
        if (dev_desc == NULL) {
                printf ("\n** Block device %s %d not supported\n", argv[1], dev);
@@ -149,9 +116,9 @@ int do_ext2ls (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
 
 U_BOOT_CMD(
        ext2ls, 4,      1,      do_ext2ls,
-       "ext2ls- list files in a directory (default /)\n",
+       "list files in a directory (default /)",
        "<interface> <dev[:part]> [directory]\n"
-       "    - list files from 'dev' on 'interface' in a 'directory'\n"
+       "    - list files from 'dev' on 'interface' in a 'directory'"
 );
 
 /******************************************************************************
@@ -162,7 +129,8 @@ int do_ext2load (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
        char *filename = NULL;
        char *ep;
        int dev, part = 1;
-       ulong addr = 0, part_length, filelen;
+       ulong addr = 0, part_length;
+       int filelen;
        disk_partition_t info;
        block_dev_desc_t *dev_desc = NULL;
        char buf [12];
@@ -175,7 +143,7 @@ int do_ext2load (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
                if (addr_str != NULL) {
                        addr = simple_strtoul (addr_str, NULL, 16);
                } else {
-                       addr = CFG_LOAD_ADDR;
+                       addr = CONFIG_SYS_LOAD_ADDR;
                }
                filename = getenv ("bootfile");
                count = 0;
@@ -197,7 +165,7 @@ int do_ext2load (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
                break;
 
        default:
-               printf ("Usage:\n%s\n", cmdtp->usage);
+               cmd_usage(cmdtp);
                return(1);
        }
 
@@ -207,7 +175,7 @@ int do_ext2load (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
        }
 
        dev = (int)simple_strtoul (argv[2], &ep, 16);
-       dev_desc=get_dev(argv[1],dev);
+       dev_desc = get_dev(argv[1],dev);
        if (dev_desc==NULL) {
                printf ("\n** Block device %s %d not supported\n", argv[1], dev);
                return(1);
@@ -223,12 +191,12 @@ int do_ext2load (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
        PRINTF("Using device %s%d, partition %d\n", argv[1], dev, part);
 
        if (part != 0) {
-               if (get_partition_info (&dev_desc[dev], part, &info)) {
+               if (get_partition_info (dev_desc, part, &info)) {
                        printf ("** Bad partition %d **\n", part);
                        return(1);
                }
 
-               if (strncmp(info.type, BOOT_PART_TYPE, sizeof(info.type)) != 0) {
+               if (strncmp((char *)info.type, BOOT_PART_TYPE, sizeof(info.type)) != 0) {
                        printf ("\n** Invalid partition type \"%.32s\""
                                " (expect \"" BOOT_PART_TYPE "\")\n",
                                info.type);
@@ -276,8 +244,8 @@ int do_ext2load (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
        /* Loading ok, update default load address */
        load_addr = addr;
 
-       printf ("\n%ld bytes read\n", filelen);
-       sprintf(buf, "%lX", filelen);
+       printf ("\n%d bytes read\n", filelen);
+       sprintf(buf, "%X", filelen);
        setenv("filesize", buf);
 
        return(filelen);
@@ -285,10 +253,8 @@ int do_ext2load (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
 
 U_BOOT_CMD(
        ext2load,       6,      0,      do_ext2load,
-       "ext2load- load binary file from a Ext2 filesystem\n",
+       "load binary file from a Ext2 filesystem",
        "<interface> <dev[:part]> [addr] [filename] [bytes]\n"
        "    - load binary file 'filename' from 'dev' on 'interface'\n"
-       "      to address 'addr' from ext2 filesystem\n"
+       "      to address 'addr' from ext2 filesystem"
 );
-
-#endif /* CONFIG_COMMANDS & CFG_CMD_EXT2 */