]> git.kernelconcepts.de Git - karo-tx-uboot.git/blobdiff - common/cmd_ide.c
update include/asm/ gitignore after move
[karo-tx-uboot.git] / common / cmd_ide.c
index 2564c2b75775d4416016e63100c3c6eb8b626d56..093ca9f9065150c8fc043a5dd45b66454ab8f07d 100644 (file)
@@ -188,7 +188,7 @@ int do_ide (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
     switch (argc) {
     case 0:
     case 1:
-       printf ("Usage:\n%s\n", cmdtp->usage);
+       cmd_usage(cmdtp);
        return 1;
     case 2:
        if (strncmp(argv[1],"res",3) == 0) {
@@ -238,7 +238,7 @@ int do_ide (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
                }
                return rcode;
        }
-       printf ("Usage:\n%s\n", cmdtp->usage);
+       cmd_usage(cmdtp);
        return 1;
     case 3:
        if (strncmp(argv[1],"dev",3) == 0) {
@@ -287,7 +287,7 @@ int do_ide (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
 #endif
        }
 
-       printf ("Usage:\n%s\n", cmdtp->usage);
+       cmd_usage(cmdtp);
        return 1;
     default:
        /* at least 4 args */
@@ -299,7 +299,7 @@ int do_ide (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
 #ifdef CONFIG_SYS_64BIT_LBA
                lbaint_t blk  = simple_strtoull(argv[3], NULL, 16);
 
-               printf ("\nIDE read: device %d block # %qd, count %ld ... ",
+               printf ("\nIDE read: device %d block # %Ld, count %ld ... ",
                        curr_device, blk, cnt);
 #else
                lbaint_t blk  = simple_strtoul(argv[3], NULL, 16);
@@ -328,7 +328,7 @@ int do_ide (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
 #ifdef CONFIG_SYS_64BIT_LBA
                lbaint_t blk  = simple_strtoull(argv[3], NULL, 16);
 
-               printf ("\nIDE write: device %d block # %qd, count %ld ... ",
+               printf ("\nIDE write: device %d block # %Ld, count %ld ... ",
                        curr_device, blk, cnt);
 #else
                lbaint_t blk  = simple_strtoul(argv[3], NULL, 16);
@@ -347,7 +347,7 @@ int do_ide (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
                        return 1;
                }
        } else {
-               printf ("Usage:\n%s\n", cmdtp->usage);
+               cmd_usage(cmdtp);
                rcode = 1;
        }
 
@@ -383,7 +383,7 @@ int do_diskboot (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
                boot_device = argv[2];
                break;
        default:
-               printf ("Usage:\n%s\n", cmdtp->usage);
+               cmd_usage(cmdtp);
                show_boot_progress (-42);
                return 1;
        }
@@ -528,7 +528,7 @@ __ide_outb(int dev, int port, unsigned char val)
                dev, port, val, (ATA_CURR_BASE(dev)+CONFIG_SYS_ATA_PORT_ADDR(port)));
        outb(val, (ATA_CURR_BASE(dev)+CONFIG_SYS_ATA_PORT_ADDR(port)));
 }
-void inline ide_outb (int dev, int port, unsigned char val)
+void ide_outb (int dev, int port, unsigned char val)
                __attribute__((weak, alias("__ide_outb")));
 
 unsigned char inline
@@ -540,7 +540,7 @@ __ide_inb(int dev, int port)
                dev, port, (ATA_CURR_BASE(dev)+CONFIG_SYS_ATA_PORT_ADDR(port)), val);
        return val;
 }
-unsigned char inline ide_inb(int dev, int port)
+unsigned char ide_inb(int dev, int port)
                        __attribute__((weak, alias("__ide_inb")));
 
 #ifdef CONFIG_TUNE_PIO
@@ -847,28 +847,6 @@ set_pcmcia_timing (int pmode)
 
 /* ------------------------------------------------------------------------- */
 
-#ifdef __PPC__
-# ifdef CONFIG_AMIGAONEG3SE
-static void
-output_data_short(int dev, ulong *sect_buf, int words)
-{
-       ushort  *dbuf;
-       volatile ushort *pbuf;
-
-       pbuf = (ushort *)(ATA_CURR_BASE(dev)+ATA_DATA_REG);
-       dbuf = (ushort *)sect_buf;
-       while (words--) {
-               EIEIO;
-               *pbuf = *dbuf++;
-               EIEIO;
-       }
-
-       if (words&1)
-               *pbuf = 0;
-}
-# endif        /* CONFIG_AMIGAONEG3SE */
-#endif /* __PPC_ */
-
 /* We only need to swap data if we are running on a big endian cpu. */
 /* But Au1x00 cpu:s already swaps data in big endian mode! */
 #if defined(__LITTLE_ENDIAN) || ( defined(CONFIG_AU1X00) && !defined(CONFIG_GTH2) )
@@ -1024,28 +1002,6 @@ input_data(int dev, ulong *sect_buf, int words)
 
 #endif /* __PPC__ */
 
-#ifdef CONFIG_AMIGAONEG3SE
-static void
-input_data_short(int dev, ulong *sect_buf, int words)
-{
-       ushort  *dbuf;
-       volatile ushort *pbuf;
-
-       pbuf = (ushort *)(ATA_CURR_BASE(dev)+ATA_DATA_REG);
-       dbuf = (ushort *)sect_buf;
-       while (words--) {
-               EIEIO;
-               *dbuf++ = *pbuf;
-               EIEIO;
-       }
-
-       if (words&1) {
-               ushort dummy;
-               dummy = *pbuf;
-       }
-}
-#endif
-
 /* -------------------------------------------------------------------------
  */
 static void ide_ident (block_dev_desc_t *dev_desc)
@@ -1166,15 +1122,16 @@ static void ide_ident (block_dev_desc_t *dev_desc)
        ident_cpy ((unsigned char*)dev_desc->product, iop->serial_no, sizeof(dev_desc->product));
 #ifdef __LITTLE_ENDIAN
        /*
-        * firmware revision and model number have Big Endian Byte
-        * order in Word. Convert both to little endian.
+        * firmware revision, model, and serial number have Big Endian Byte
+        * order in Word. Convert all three to little endian.
         *
         * See CF+ and CompactFlash Specification Revision 2.0:
-        * 6.2.1.6: Identfy Drive, Table 39 for more details
+        * 6.2.1.6: Identify Drive, Table 39 for more details
         */
 
        strswab (dev_desc->revision);
        strswab (dev_desc->vendor);
+       strswab (dev_desc->product);
 #endif /* __LITTLE_ENDIAN */
 
        if ((iop->config & 0x0080)==0x0080)
@@ -1310,7 +1267,7 @@ ulong ide_read (int device, lbaint_t blknr, ulong blkcnt, void *buffer)
                lba48 = 1;
        }
 #endif
-       debug ("ide_read dev %d start %qX, blocks %lX buffer at %lX\n",
+       debug ("ide_read dev %d start %LX, blocks %lX buffer at %lX\n",
                device, blknr, blkcnt, (ulong)buffer);
 
        ide_led (DEVICE_LED(device), 1);        /* LED on       */
@@ -1397,8 +1354,8 @@ ulong ide_read (int device, lbaint_t blknr, ulong blkcnt, void *buffer)
                }
 
                if ((c&(ATA_STAT_DRQ|ATA_STAT_BUSY|ATA_STAT_ERR)) != ATA_STAT_DRQ) {
-#if defined(CONFIG_SYS_64BIT_LBA) && defined(CONFIG_SYS_64BIT_VSPRINTF)
-                       printf ("Error (no IRQ) dev %d blk %qd: status 0x%02x\n",
+#if defined(CONFIG_SYS_64BIT_LBA)
+                       printf ("Error (no IRQ) dev %d blk %Ld: status 0x%02x\n",
                                device, blknr, c);
 #else
                        printf ("Error (no IRQ) dev %d blk %ld: status 0x%02x\n",
@@ -1487,8 +1444,8 @@ ulong ide_write (int device, lbaint_t blknr, ulong blkcnt, void *buffer)
                c = ide_wait (device, IDE_TIME_OUT);    /* can't take over 500 ms */
 
                if ((c&(ATA_STAT_DRQ|ATA_STAT_BUSY|ATA_STAT_ERR)) != ATA_STAT_DRQ) {
-#if defined(CONFIG_SYS_64BIT_LBA) && defined(CONFIG_SYS_64BIT_VSPRINTF)
-                       printf ("Error (no IRQ) dev %d blk %qd: status 0x%02x\n",
+#if defined(CONFIG_SYS_64BIT_LBA)
+                       printf ("Error (no IRQ) dev %d blk %Ld: status 0x%02x\n",
                                device, blknr, c);
 #else
                        printf ("Error (no IRQ) dev %d blk %ld: status 0x%02x\n",
@@ -1667,6 +1624,14 @@ static void ide_led (uchar led, uchar status)
 
 #endif /* CONFIG_IDE_LED */
 
+#if defined(CONFIG_OF_IDE_FIXUP)
+int ide_device_present(int dev)
+{
+       if (dev >= CONFIG_SYS_IDE_MAXBUS)
+               return 0;
+       return (ide_dev_desc[dev].type == DEV_TYPE_UNKNOWN ? 0 : 1);
+}
+#endif
 /* ------------------------------------------------------------------------- */
 
 #ifdef CONFIG_ATAPI
@@ -2139,7 +2104,7 @@ ulong atapi_read (int device, lbaint_t blknr, ulong blkcnt, void *buffer)
 
 U_BOOT_CMD(
        ide,  5,  1,  do_ide,
-       "ide     - IDE sub-system\n",
+       "IDE sub-system",
        "reset - reset IDE controller\n"
        "ide info  - show available IDE devices\n"
        "ide device [dev] - show or set current device\n"
@@ -2147,11 +2112,11 @@ U_BOOT_CMD(
        "ide read  addr blk# cnt\n"
        "ide write addr blk# cnt - read/write `cnt'"
        " blocks starting at block `blk#'\n"
-       "    to/from memory address `addr'\n"
+       "    to/from memory address `addr'"
 );
 
 U_BOOT_CMD(
        diskboot,       3,      1,      do_diskboot,
-       "diskboot- boot from IDE device\n",
-       "loadAddr dev:part\n"
+       "boot from IDE device",
+       "loadAddr dev:part"
 );