If this macro is defined, then CONFIG_SYS_CCSRBAR_PHYS will be
forced to a value that ensures that CCSR is not relocated.
-- CONFIG_IDE_AHB:
- Most IDE controllers were designed to be connected with PCI
- interface. Only few of them were designed for AHB interface.
- When software is doing ATA command and data transfer to
- IDE devices through IDE-AHB controller, some additional
- registers accessing to these kind of IDE-AHB controller
- is required.
-
- CONFIG_SYS_IMMR: Physical address of the Internal Memory.
DO NOT CHANGE unless you know exactly what you're
doing! (11-4) [MPC8xx systems only]
debug("ide_outb (dev= %d, port= 0x%x, val= 0x%02x) : @ 0x%08lx\n",
dev, port, val, ATA_CURR_BASE(dev) + port);
-#if defined(CONFIG_IDE_AHB)
- if (port) {
- /* write command */
- ide_write_register(dev, port, val);
- } else {
- /* write data */
- outb(val, (ATA_CURR_BASE(dev)));
- }
-#else
outb(val, ATA_CURR_BASE(dev) + port);
-#endif
}
__weak unsigned char ide_inb(int dev, int port)
{
uchar val;
-#if defined(CONFIG_IDE_AHB)
- val = ide_read_register(dev, port);
-#else
val = inb(ATA_CURR_BASE(dev) + port);
-#endif
debug("ide_inb (dev= %d, port= 0x%x) : @ 0x%08lx -> 0x%02x\n",
dev, port, ATA_CURR_BASE(dev) + port, val);
__weak void ide_output_data(int dev, const ulong *sect_buf, int words)
{
-#if defined(CONFIG_IDE_AHB)
- ide_write_data(dev, sect_buf, words);
-#else
uintptr_t paddr = (ATA_CURR_BASE(dev) + ATA_DATA_REG);
ushort *dbuf;
EIEIO;
outw(cpu_to_le16(*dbuf++), paddr);
}
-#endif /* CONFIG_IDE_AHB */
}
__weak void ide_input_data(int dev, ulong *sect_buf, int words)
{
-#if defined(CONFIG_IDE_AHB)
- ide_read_data(dev, sect_buf, words);
-#else
uintptr_t paddr = (ATA_CURR_BASE(dev) + ATA_DATA_REG);
ushort *dbuf;
EIEIO;
*dbuf++ = le16_to_cpu(inw(paddr));
}
-#endif /* CONFIG_IDE_AHB */
}
#ifdef CONFIG_BLK
int ide_device_present(int dev);
#endif
-#if defined(CONFIG_IDE_AHB)
-unsigned char ide_read_register(int dev, unsigned int port);
-void ide_write_register(int dev, unsigned int port, unsigned char val);
-void ide_read_data(int dev, ulong *sect_buf, int words);
-void ide_write_data(int dev, const ulong *sect_buf, int words);
-#endif
-
/*
* I/O function overrides
*/