From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jan Kiszka Date: Tue, 21 Jul 2020 08:36:31 +0200 Subject: am654_sdhci: mmc fail to send stop cmd In-Reply-To: <42da5436-fd43-efd0-5a43-4e63226fbdc8@samsung.com> References: <6d0ae269-6104-02e8-be21-d3840cd6b327@web.de> <42da5436-fd43-efd0-5a43-4e63226fbdc8@samsung.com> Message-ID: List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de On 21.07.20 01:23, Jaehoon Chung wrote: > On 7/20/20 10:21 AM, Peng Fan wrote: >> Hi Jan, >> >>> Subject: am654_sdhci: mmc fail to send stop cmd >>> >>> Hi all, >>> >>> on one device with one specific SD-card (possibly an aging one), I'm seeing >>> frequent "mmc fail to send stop cmd" messages, followed by read errors >>> when loading kernel and dtb. -ETIMEDOUT is returned by mmd_send_cmd. >>> However, I can always resolve this by simply retrying the stop command like >>> this: >>> >>> diff --git a/drivers/mmc/mmc.c b/drivers/mmc/mmc.c index >>> f36d11ddc8..9019d9f2ed 100644 >>> --- a/drivers/mmc/mmc.c >>> +++ b/drivers/mmc/mmc.c >>> @@ -406,7 +406,11 @@ static int mmc_read_blocks(struct mmc *mmc, void >>> *dst, lbaint_t start, #if !defined(CONFIG_SPL_BUILD) || >>> defined(CONFIG_SPL_LIBCOMMON_SUPPORT) >>> pr_err("mmc fail to send stop cmd\n"); #endif >>> - return 0; >>> + pr_err("retrying...\n"); >>> + if (mmc_send_cmd(mmc, &cmd, NULL)) { >>> + pr_err("failed again\n"); >>> + return 0; >>> + } >>> } >>> } >>> >>> >>> Hardware is our IOT2050, baseline is today's master (1c4b5038afcc) with >>> board-enabling and a bunch of patches from your tree [1]. However, already >>> 4d6da10ce611 exposes the problem. >>> >>> What could cause this? >> >> Where the timeout happen in driver? >> >> Did you try enlarge the timeout value? > > how about adding SDHCI_QUIRK_WAIT_SEND_CMD? I tried that already, but the result was even worse, a non-working mmc. > And as Peng's comment, It needs to find where return error in driver code. > As written in my other reply: https://gitlab.denx.de/u-boot/u-boot/-/blob/f12341a9529540113f01989149bbbeb68662a829/drivers/mmc/sdhci.c#L385 Thus, it's reported by the hw. Thanks, Jan