X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;ds=sidebyside;f=include%2Fide.h;h=afea85cdc2cb3b5739e390d3bd02001f782fe9d3;hb=412665b46134f93464c09405e02f08ac9c62526d;hp=6976a6c319c3736b4a0c33ab89e57739cb9299c4;hpb=00b574bdc8c54dbc9e03f63c24f62955d483e3ef;p=platform%2Fkernel%2Fu-boot.git diff --git a/include/ide.h b/include/ide.h index 6976a6c..afea85c 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,10 +41,12 @@ #endif /* CONFIG_IDE_LED */ -#ifdef CFG_64BIT_LBA +#ifdef CONFIG_SYS_64BIT_LBA typedef uint64_t lbaint_t; +#define LBAF "%llx" #else typedef ulong lbaint_t; +#define LBAF "%lx" #endif /* @@ -49,7 +54,42 @@ typedef ulong lbaint_t; */ void ide_init(void); -ulong ide_read(int device, lbaint_t blknr, ulong blkcnt, void *buffer); -ulong ide_write(int device, lbaint_t blknr, ulong blkcnt, void *buffer); +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); + +/** + * board_start_ide() - Start up the board IDE interfac + * + * @return 0 if ok + */ +int board_start_ide(void); #endif /* _IDE_H */