Fix IDE stability problems on CPC45 board.
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 @@
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_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 */