[U-Boot] [PATCH 1/8] dm: mmc: Don't re-init when accessing environment

Simon Glass sjg at chromium.org
Wed May 3 02:35:25 UTC 2017


Hi,

On 28 April 2017 at 18:27, Simon Glass <sjg at chromium.org> wrote:
> Hi Jean-Jacques,
>
> On 24 April 2017 at 02:55, Jean-Jacques Hiblot <jjhiblot at ti.com> wrote:
>> Hi Simon,
>>
>> On 24/04/2017 04:02, Simon Glass wrote:
>>>
>>> With driver model MMC is probed automatically when needed. We should not
>>> re-init MMC each time.
>>>
>>> Signed-off-by: Simon Glass <sjg at chromium.org>
>>> ---
>>>
>>>   common/env_mmc.c | 3 ++-
>>>   1 file changed, 2 insertions(+), 1 deletion(-)
>>>
>>> diff --git a/common/env_mmc.c b/common/env_mmc.c
>>> index a5d14d448c..1611886e22 100644
>>> --- a/common/env_mmc.c
>>> +++ b/common/env_mmc.c
>>> @@ -98,9 +98,10 @@ static const char *init_mmc_for_env(struct mmc *mmc)
>>>         if (!mmc)
>>>                 return "!No MMC card found";
>>>   +#ifndef CONFIG_BLK
>>>         if (mmc_init(mmc))
>>>                 return "!MMC init failed";
>>> -
>>> +#endif
>>
>> I'm not convinced by this.  mmc_init() is the starting point of the MMC
>> device initialization process and it must be called somehow before accessing
>> the device and most probe() functions do not call mmc_init().
>> The sandbox driver does it, but I'm not sure it's the right way because the
>> MMC device initialization process takes a long time. I'd rather have the
>> device initialized only when it's accessed for the first time not when it's
>> probed (especially in the SPL)
>
> Yes I would like that too.
>
> One option is to add an init() method to mmc and call that when the
> block device is probed.

Do you think that would work? I can try it out in the next version perhaps.

Then we have:

mmc device probe - very fast, just sets up clocks, etc.
blk device probe - slow, tries to read card, partition table, etc.

>
>>
>> Jean-Jacques
>>
>>
>>>         if (mmc_set_env_part(mmc))
>>>                 return "!MMC partition switch failed";

Regards,
Simon


More information about the U-Boot mailing list