public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
From: E Shattow <e@freeshell.de>
To: Christoph Stoidner <C.Stoidner@phytec.de>
Cc: U-Boot Mailing List <u-boot@lists.denx.de>
Subject: Re: AW: [PATCH] mmc: Fix missing 1 ms delay after mmc power up
Date: Wed, 12 Nov 2025 12:25:36 -0800	[thread overview]
Message-ID: <4e05dfc1-d640-44a3-bcb5-9f4622b7c43b@freeshell.de> (raw)
In-Reply-To: <DB9P195MB12122313AC9E54232C3B713D97CCA@DB9P195MB1212.EURP195.PROD.OUTLOOK.COM>



On 11/12/25 10:13, Christoph Stoidner wrote:
> Hello,  sorry, did you send that mail only direct to me? I cannot find it in the Mailinglist.
> 
> I don't want to bother you. However would you mind to send it also to the list, to have it transparent for all?
> 
> Regards,
> Christoph

Okay, sorry I missed this before. CC: U-Boot Mailing List

-E

> 
> 
> ________________________________
> Von: E Shattow <e@freeshell.de>
> Gesendet: Freitag, 31. Oktober 2025 22:27
> An: Christoph Stoidner <c.stoidner@phytec.de>
> Betreff: Re: [PATCH] mmc: Fix missing 1 ms delay after mmc power up
> 
> 
> On 10/31/25 07:59, Christoph Stoidner wrote:
>> mmc/sd specification requires a 1 ms delay (stable supply voltage)
>> after vdd was enabled and before issuing first command.
>>
>> For most sdcard/soc combinations, the missing delay seems to be not a
>> problem because the processing time between enabling vdd and the first
>> command is often hundreds of microseconds or more. However, in our
>> specific case, some sdcards were not detected by u-boot:
>> * soc: NXP i.MX 93
>> * sdcards: SanDisk Ultra, 64GB micro SDXC 1,
>>            MediaRange, 8GB, SDHC
>> * measured time between vdd and first command: approx. 784us
>> * symptom: both sdcards did not respond at all to first commands,
>>            u-boot mmc subsystem ran into timeout and stops to
>>            initialize the cards
>>
>> Signed-off-by: Christoph Stoidner <c.stoidner@phytec.de>
>> Cc: Peng Fan <peng.fan@nxp.com>
>> Cc: Jaehoon Chung <jh80.chung@samsung.com>
>> ---
>>  drivers/mmc/mmc.c | 13 ++++++++++---
>>  1 file changed, 10 insertions(+), 3 deletions(-)
>>
>> diff --git a/drivers/mmc/mmc.c b/drivers/mmc/mmc.c
>> index ec61ed92e86..2093d169094 100644
>> --- a/drivers/mmc/mmc.c
>> +++ b/drivers/mmc/mmc.c
>> @@ -2878,11 +2878,18 @@ static int mmc_power_cycle(struct mmc *mmc)
>>                return ret;
>>
>>        /*
>> -      * SD spec recommends at least 1ms of delay. Let's wait for 2ms
>> -      * to be on the safer side.
>> +      * SD spec recommends at least 1ms of 'power on' delay.
>> +      * Let's wait for 2ms to be on the safer side.
>>         */
>>        udelay(2000);
>> -     return mmc_power_on(mmc);
>> +     ret = mmc_power_on(mmc);
>> +
>> +     /*
>> +      * SD spec recommends at least 1ms of 'stable supply voltage' delay.
>> +      * Let's wait for 2ms to be on the safer side.
>> +      */
>> +     udelay(2000);
>> +     return ret;
>>  }
>>
>>  int mmc_get_op_cond(struct mmc *mmc, bool quiet)
> 
> Let's do what it says. Would udelay(1000) ever possibly complete faster
> than the recommended time in the specification ?
> 
>          /*
> -        * SD spec recommends at least 1ms of delay. Let's wait for 2ms
> -        * to be on the safer side.
> +        * SD spec requires:
> +        * 1ms of delay 'power on' before power on
> +        * 1ms of 'stable supply voltage' after power on
>           */
>          udelay(1000);
> -       return mmc_power_on(mmc);
> +       ret = mmc_power_on(mmc);
> +       udelay(1000);
> +       return ret;
>  }
> 
> To follow the specification recommendations exactly?
> 
> Also, why add the delay before returning from mmc_power_on() in
> mmc_power_cycle() and not in mmc_power_on() itself?
> 
> -E
> 


  parent reply	other threads:[~2025-11-12 20:25 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-10-31 14:59 [PATCH] mmc: Fix missing 1 ms delay after mmc power up Christoph Stoidner
2025-11-04  8:34 ` Peng Fan
2025-11-10 20:46   ` AW: " Christoph Stoidner
2025-11-18  4:56     ` Peng Fan
2025-11-28 12:38       ` Christoph Stoidner
2026-01-05  2:49         ` Peng Fan
     [not found] ` <a41edf4c-39f5-432e-8eeb-9426dba89a17@freeshell.de>
     [not found]   ` <DB9P195MB12122313AC9E54232C3B713D97CCA@DB9P195MB1212.EURP195.PROD.OUTLOOK.COM>
2025-11-12 20:25     ` E Shattow [this message]
2026-01-08 13:32 ` Peng Fan

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=4e05dfc1-d640-44a3-bcb5-9f4622b7c43b@freeshell.de \
    --to=e@freeshell.de \
    --cc=C.Stoidner@phytec.de \
    --cc=u-boot@lists.denx.de \
    /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