summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CHANGELOG2
-rw-r--r--common/cmd_ide.c4
-rw-r--r--include/pcmcia/cirrus.h6
3 files changed, 12 insertions, 0 deletions
diff --git a/CHANGELOG b/CHANGELOG
index 6194f5c..825a1cd 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -2,6 +2,8 @@
Changes for U-Boot 1.1.3:
======================================================================
+* Fix IDE stability problems on CPC45 board (needs 2 x EIEIO).
+
* Code cleanup
* Patch by Robin Getz, 13 Oct 2004:
diff --git a/common/cmd_ide.c b/common/cmd_ide.c
index 851ba52..b8e0bef 100644
--- a/common/cmd_ide.c
+++ b/common/cmd_ide.c
@@ -958,12 +958,16 @@ input_data(int dev, ulong *sect_buf, int words)
dbuf = (uchar *)sect_buf;
while (words--) {
EIEIO;
+ EIEIO;
*dbuf++ = *pbuf_even;
EIEIO;
+ EIEIO;
*dbuf++ = *pbuf_odd;
EIEIO;
+ EIEIO;
*dbuf++ = *pbuf_even;
EIEIO;
+ EIEIO;
*dbuf++ = *pbuf_odd;
}
#endif /* CONFIG_HMI10 */
diff --git a/include/pcmcia/cirrus.h b/include/pcmcia/cirrus.h
index f53b85a..cd34dd8 100644
--- a/include/pcmcia/cirrus.h
+++ b/include/pcmcia/cirrus.h
@@ -166,9 +166,15 @@ static int has_led = -1;
static int has_ring = -1;
static int dynamic_mode = 0;
static int freq_bypass = -1;
+#ifdef CONFIG_CPC45
+static int setup_time = 2;
+static int cmd_time = 6;
+static int recov_time = 1;
+#else
static int setup_time = -1;
static int cmd_time = -1;
static int recov_time = -1;
+#endif
#endif /* _LINUX_CIRRUS_H */