[U-Boot-Users] [PATCH] ide arm support rev 1

michael trimarchi at gandalf.sssup.it
Tue Feb 12 08:44:24 CET 2008


Add ide support to the arm cpu. Tested on 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;
+       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
+





More information about the U-Boot mailing list