summaryrefslogtreecommitdiffstats
path: root/recipes-bsp/u-boot/u-boot
diff options
context:
space:
mode:
Diffstat (limited to 'recipes-bsp/u-boot/u-boot')
-rw-r--r--recipes-bsp/u-boot/u-boot/2011.12/U-Boot-OMAP-MMC-Add-delay-before-waiting-for-status.patch45
1 files changed, 45 insertions, 0 deletions
diff --git a/recipes-bsp/u-boot/u-boot/2011.12/U-Boot-OMAP-MMC-Add-delay-before-waiting-for-status.patch b/recipes-bsp/u-boot/u-boot/2011.12/U-Boot-OMAP-MMC-Add-delay-before-waiting-for-status.patch
new file mode 100644
index 00000000..b334639f
--- /dev/null
+++ b/recipes-bsp/u-boot/u-boot/2011.12/U-Boot-OMAP-MMC-Add-delay-before-waiting-for-status.patch
@@ -0,0 +1,45 @@
1From patchwork Thu Dec 22 09:56:35 2011
2Content-Type: text/plain; charset="utf-8"
3MIME-Version: 1.0
4Content-Transfer-Encoding: 8bit
5Subject: [U-Boot] OMAP MMC: Add delay before waiting for status
6Date: Wed, 21 Dec 2011 23:56:35 -0000
7From: =?utf-8?q?Andreas_M=C3=BCller_=3Cschnitzeltony=40gmx=2Ede=3E?=
8X-Patchwork-Id: 132795
9Message-Id: <1324547795-19678-1-git-send-email-schnitzeltony@gmx.de>
10To: u-boot@lists.denx.de
11
12Loading kernel from MMC created the following error message reproducable:
13
14| reading uImage
15| mmc_send_cmd: timedout waiting for stat!
16|
17| 2860468 bytes read
18
19Tested on overo with OMAP3530:
20* OMAP3530-GP ES3.1, CPU-OPP2, L3-165MHz, Max CPU Clock 720 mHz
21 Die ID #470e000400000000040398d31402100c
22* OMAP3530-GP ES3.1, CPU-OPP2, L3-165MHz, Max CPU Clock 600 mHz
23 Die ID #112000040000000004035c140101b011
24
25Signed-off-by: Andreas Müller <schnitzeltony@gmx.de>
26
27---
28drivers/mmc/omap_hsmmc.c | 4 ++++
29 1 files changed, 4 insertions(+), 0 deletions(-)
30
31diff --git a/drivers/mmc/omap_hsmmc.c b/drivers/mmc/omap_hsmmc.c
32index c38b9e6..ac91e5d 100644
33--- a/drivers/mmc/omap_hsmmc.c
34+++ b/drivers/mmc/omap_hsmmc.c
35@@ -197,6 +197,10 @@ static int mmc_send_cmd(struct mmc *mmc, struct mmc_cmd *cmd,
36 unsigned int flags, mmc_stat;
37 ulong start;
38
39+ /* Delay added before checking the status */
40+ if (cmd->cmdidx == MMC_CMD_SEND_STATUS)
41+ udelay(1); /* wait 1 us */
42+
43 start = get_timer(0);
44 while ((readl(&mmc_base->pstate) & DATI_MASK) == DATI_CMDDIS) {
45 if (get_timer(0) - start > MAX_RETRY_MS) {