From cd172b710822fe170db04fa1e78c08adea56425a Mon Sep 17 00:00:00 2001 From: wdenk Date: Sat, 22 Jan 2005 18:26:04 +0000 Subject: [PATCH] Fix IDE stability problems on CPC45 board. --- CHANGELOG | 2 ++ common/cmd_ide.c | 4 ++++ include/pcmcia/cirrus.h | 6 ++++++ 3 files changed, 12 insertions(+) diff --git a/CHANGELOG b/CHANGELOG index 6194f5c343..825a1cd308 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 851ba52c81..b8e0bef574 100644 --- a/common/cmd_ide.c +++ b/common/cmd_ide.c @@ -957,13 +957,17 @@ input_data(int dev, ulong *sect_buf, int words) pbuf_odd = (uchar *)(ATA_CURR_BASE(dev)+ATA_DATA_ODD); 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 f53b85a323..cd34dd8560 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 */ -- 2.39.5