Linux MultiMedia Card development
 help / color / mirror / Atom feed
From: Christian Loehle <christian.loehle@arm.com>
To: Prasad Koya <prasad@arista.com>, linux-mmc@vger.kernel.org
Cc: Baptiste Covolato <baptiste@arista.com>,
	Sushrut Shirole <sushrut@arista.com>,
	ulf.hansson@linaro.org
Subject: Re: eMMC timeout reproduction. Can I send a block of data from the host to the card with invalid CRC?
Date: Wed, 16 Apr 2025 10:13:35 +0100	[thread overview]
Message-ID: <fb21ad0b-b45f-4636-9d74-1e758c3b2879@arm.com> (raw)
In-Reply-To: <CAKh1g556YvHE9eib3WJG+mBHyyr88rxYSbNUHxpFYsUHcdOoUg@mail.gmail.com>

On 4/16/25 01:13, Prasad Koya wrote:
> Hi
> 
> We use eMMC as a boot drive. At a random time, maybe a month or an
> year of uptime, we run into an issue where we see the eMMC driver
> prints this in the kernel logs and the drive no longer responds after
> that. We see this issue in the field on linux kernel 4.19.142 and
> 5.10.165. From the SDHCI register dump, it looks like CMD25 ran into a
> timeout first. After the first timeout, we see CMD12 in the second
> SDHCI register dump. Status returned by the card at that point in
> card_busy_detect() is 0xE00.
> 
> I looked at the recent commits up to 6.15 and I do not see anything
> obvious that addresses issue like below.
> 
> We are trying to reproduce the issue in our lab and understand the
> driver code. Is there a way I can send a block of data as part of
> CMD25 with invalid CRC?  Appreciate any pointers.

CRC is appended by hardware, so it will always be correct.
What you can do though is change the blocksize of the transfer on the
host side (e.g. from 512 to 514 bytes) without changing it using CMD16.
The 2 bytes will be latched in as CRC by the card. Of course you won't
see the CRC ACK from the card in that case (as it clashes with the
hardware CRC signal from the host). 
You can do all this using the ioctl interface in userspace btw.

  reply	other threads:[~2025-04-16  9:13 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-04-16  0:13 eMMC timeout reproduction. Can I send a block of data from the host to the card with invalid CRC? Prasad Koya
2025-04-16  9:13 ` Christian Loehle [this message]
2025-04-22 17:37   ` Prasad Koya
2025-04-22 21:53     ` Christian Loehle
2025-04-25  4:59       ` Prasad Koya
2025-04-25  8:38         ` Christian Loehle
2025-04-29 18:53           ` Prasad Koya
2025-04-29 18:58             ` Christian Loehle

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=fb21ad0b-b45f-4636-9d74-1e758c3b2879@arm.com \
    --to=christian.loehle@arm.com \
    --cc=baptiste@arista.com \
    --cc=linux-mmc@vger.kernel.org \
    --cc=prasad@arista.com \
    --cc=sushrut@arista.com \
    --cc=ulf.hansson@linaro.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox