#include <mpc5xxx.h>
#endif
-#ifdef CONFIG_MPC512X
-#include <mpc512x.h>
-#endif
-
#include <ide.h>
#include <ata.h>
#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);
#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);
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
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
/* ------------------------------------------------------------------------- */
-#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) )
#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)
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 */
}
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",
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",
#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
"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,
"boot from IDE device",
- "loadAddr dev:part\n"
+ "loadAddr dev:part"
);