[U-Boot-Users] [PATCH] ide arm support
michael
trimarchi at gandalf.sssup.it
Mon Feb 11 21:40:53 CET 2008
Add ide support to the arm cpu. Tested on arm little endian
machine. Include #define __io in config board file.
Signed-off-by: Michael Trimarchi <trimarchimichael at yahoo.it>
---
diff --git a/common/cmd_ide.c b/common/cmd_ide.c
index c38be4f..e507c15 100644
--- a/common/cmd_ide.c
+++ b/common/cmd_ide.c
@@ -934,7 +934,14 @@ output_data(int dev, ulong *sect_buf, int words)
static void
output_data(int dev, ulong *sect_buf, int words)
{
+#ifndef __ARM__
outsw(ATA_CURR_BASE(dev)+ATA_DATA_REG, sect_buf, words<<1);
+#else
+ int i = words;
+ u16 *buf = (u16 *) sect_buf;
+ for (i = 0; i < (words << 1); i++, buf++)
+ outw(ATA_CURR_BASE(dev) + ATA_DATA_REG, buf);
+#endif
}
#endif /* __PPC__ */
@@ -992,7 +999,14 @@ input_data(int dev, ulong *sect_buf, int words)
static void
input_data(int dev, ulong *sect_buf, int words)
{
+#ifndef __ARM__
insw(ATA_CURR_BASE(dev)+ATA_DATA_REG, sect_buf, words << 1);
+#else
+ int i;
+ volatile u16 *buf = (u16 *) sect_buf;
+ for(i = 0; i < (words << 1); i++, buf++)
+ *buf = inw(ATA_CURR_BASE(dev) + ATA_DATA_REG);
+#endif
}
#endif /* __PPC__ */
diff --git a/lib_arm/board.c b/lib_arm/board.c
index 7e7a282..ddf4d5f 100644
--- a/lib_arm/board.c
+++ b/lib_arm/board.c
@@ -435,6 +435,12 @@ extern void dm644x_eth_set_mac_addr (const u_int8_t *addr);
reset_phy();
#endif
#endif
+
+#if defined(CONFIG_CMD_IDE)
+ puts("IDE: ");
+ ide_init();
+#endif
+
/* main_loop() can return to retry autoboot, if so just run it again. */
for (;;) {
main_loop ();
More information about the U-Boot
mailing list