u-boot 2011.12: OMAP MMC: Add delay before waiting for status
authorPeter A. Bigot <bigotp@acm.org>
Thu, 29 Dec 2011 11:27:38 +0000 (05:27 -0600)
committerKoen Kooi <koen@dominion.thruhere.net>
Thu, 29 Dec 2011 14:44:26 +0000 (15:44 +0100)
Pending upstream patch from http://patchwork.ozlabs.org/patch/132795/ is
required to successfully boot on xM.

Signed-off-by: Peter A. Bigot <bigotp@acm.org>
Acked-by: Tom Rini <tom.rini@gmail.com>
Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
recipes-bsp/u-boot/u-boot/2011.12/U-Boot-OMAP-MMC-Add-delay-before-waiting-for-status.patch [new file with mode: 0644]
recipes-bsp/u-boot/u-boot_2011.12.bb

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 (file)
index 0000000..b334639
--- /dev/null
@@ -0,0 +1,45 @@
+From patchwork Thu Dec 22 09:56:35 2011
+Content-Type: text/plain; charset="utf-8"
+MIME-Version: 1.0
+Content-Transfer-Encoding: 8bit
+Subject: [U-Boot] OMAP MMC: Add delay before waiting for status
+Date: Wed, 21 Dec 2011 23:56:35 -0000
+From: =?utf-8?q?Andreas_M=C3=BCller_=3Cschnitzeltony=40gmx=2Ede=3E?=
+X-Patchwork-Id: 132795
+Message-Id: <1324547795-19678-1-git-send-email-schnitzeltony@gmx.de>
+To: u-boot@lists.denx.de
+
+Loading kernel from MMC created the following error message reproducable:
+
+| reading uImage
+| mmc_send_cmd: timedout waiting for stat!
+|
+| 2860468 bytes read
+
+Tested on overo with OMAP3530:
+* OMAP3530-GP ES3.1, CPU-OPP2, L3-165MHz, Max CPU Clock 720 mHz
+  Die ID #470e000400000000040398d31402100c
+* OMAP3530-GP ES3.1, CPU-OPP2, L3-165MHz, Max CPU Clock 600 mHz
+  Die ID #112000040000000004035c140101b011
+
+Signed-off-by: Andreas Müller <schnitzeltony@gmx.de>
+
+---
+drivers/mmc/omap_hsmmc.c |    4 ++++
+ 1 files changed, 4 insertions(+), 0 deletions(-)
+
+diff --git a/drivers/mmc/omap_hsmmc.c b/drivers/mmc/omap_hsmmc.c
+index c38b9e6..ac91e5d 100644
+--- a/drivers/mmc/omap_hsmmc.c
++++ b/drivers/mmc/omap_hsmmc.c
+@@ -197,6 +197,10 @@ static int mmc_send_cmd(struct mmc *mmc, struct mmc_cmd *cmd,
+       unsigned int flags, mmc_stat;
+       ulong start;
++      /* Delay added before checking the status */
++      if (cmd->cmdidx == MMC_CMD_SEND_STATUS)
++              udelay(1); /* wait 1 us */
++
+       start = get_timer(0);
+       while ((readl(&mmc_base->pstate) & DATI_MASK) == DATI_CMDDIS) {
+               if (get_timer(0) - start > MAX_RETRY_MS) {
index 5a19066f5b3a49126090b70c75bf8730ab6d1bb7..d776c38c7611b9ec3acac1e98e375f5079deafcd 100644 (file)
@@ -6,7 +6,7 @@ UBOOT_IMAGE = "u-boot-${MACHINE}-${PV}-${PR}.img"
 UBOOT_SYMLINK = "u-boot-${MACHINE}.img"
 
 PV = "2011.12"
-PR = "r0"
+PR = "r1"
 
 # No patches for other machines yet
 COMPATIBLE_MACHINE = "(beagleboard|pandaboard|hawkboard|am3517-evm|am37x-evm|omap3evm)"
@@ -17,6 +17,7 @@ SRC_URI = "git://www.denx.de/git/u-boot.git;protocol=git \
            file://2011.12/0003-beagleboard-add-support-for-scanning-loop-through-ex.patch \
            file://2011.12/0004-omap4-common-mount-root-RO.patch \
            file://2011.12/0005-omap4-common-use-ext4-by-default.patch \
+           file://2011.12/U-Boot-OMAP-MMC-Add-delay-before-waiting-for-status.patch \
           "
 
 # v2011.12 tag