X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=include%2Fide.h;h=695d08eeccf1accdd8934d83ce07e778e85fb877;hb=953cfd2878216daf80bda4c0d4a829e2d76b7cbe;hp=3af12c8db2f529f3ed98bb4b505d7926bd0d1cfa;hpb=c40b29568232761e33400e58be86b15a167d3422;p=oweals%2Fu-boot.git diff --git a/include/ide.h b/include/ide.h index 3af12c8db2..695d08eecc 100644 --- a/include/ide.h +++ b/include/ide.h @@ -24,7 +24,10 @@ #ifndef _IDE_H #define _IDE_H -#define IDE_BUS(dev) (dev >> 1) +#define IDE_BUS(dev) (dev / (CONFIG_SYS_IDE_MAXDEVICE / CONFIG_SYS_IDE_MAXBUS)) + +#define ATA_CURR_BASE(dev) (CONFIG_SYS_ATA_BASE_ADDR+ide_bus_offset[IDE_BUS(dev)]) +extern ulong ide_bus_offset[]; #ifdef CONFIG_IDE_LED @@ -38,7 +41,7 @@ #endif /* CONFIG_IDE_LED */ -#if CFG_64BIT_LBA +#ifdef CONFIG_SYS_64BIT_LBA typedef uint64_t lbaint_t; #else typedef ulong lbaint_t; @@ -48,8 +51,36 @@ typedef ulong lbaint_t; * Function Prototypes */ -void ide_init (void); -ulong ide_read (int device, lbaint_t blknr, ulong blkcnt, ulong *buffer); -ulong ide_write (int device, lbaint_t blknr, ulong blkcnt, ulong *buffer); +void ide_init(void); +ulong ide_read(int device, ulong blknr, lbaint_t blkcnt, void *buffer); +ulong ide_write(int device, ulong blknr, lbaint_t blkcnt, const void *buffer); + +#ifdef CONFIG_IDE_PREINIT +int ide_preinit(void); +#endif + +#ifdef CONFIG_IDE_INIT_POSTRESET +int ide_init_postreset(void); +#endif + +#if defined(CONFIG_OF_IDE_FIXUP) +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, ulong *sect_buf, int words); +#endif + +/* + * I/O function overrides + */ +void ide_input_swap_data(int dev, ulong *sect_buf, int words); +void ide_input_data(int dev, ulong *sect_buf, int words); +void ide_output_data(int dev, const ulong *sect_buf, int words); +void ide_input_data_shorts(int dev, ushort *sect_buf, int shorts); +void ide_output_data_shorts(int dev, ushort *sect_buf, int shorts); #endif /* _IDE_H */