Hi Avri,
On 2024-06-02 14:59, Avri Altman wrote:
Hello Avri,
On 2024-06-02 07:26, Avri Altman wrote:
>> On 2024-05-23 15:20, linux-mmc@xxxxxxxxx wrote:
>> > From: Daniel Kucera <linux-mmc@xxxxxxxxx>
>> >
>> > Locked card will not reply to SEND_SCR or SD_STATUS commands so it
>> > was failing to initialize previously. When skipped, the card will
>> > get initialized and CMD42 can be sent using ioctl to unlock the
>> > card or remove password protection.
>> > Until unlocked, all read/write calls will timeout.
>> >
>> > Signed-off-by: Daniel Kucera <linux-mmc@xxxxxxxxx>
>> > ---
>> > drivers/mmc/core/sd.c | 13 ++++++++++++-
>> > 1 file changed, 12 insertions(+), 1 deletion(-)
>> >
>> > diff --git a/drivers/mmc/core/sd.c b/drivers/mmc/core/sd.c index
>> > 1c8148cdd..ae821df7d 100644
>> > --- a/drivers/mmc/core/sd.c
>> > +++ b/drivers/mmc/core/sd.c
>> > @@ -928,8 +928,19 @@ int mmc_sd_setup_card(struct mmc_host *host,
>> > struct mmc_card *card,
>> > bool reinit)
>> > {
>> > int err;
>> > + u32 card_status;
>> >
>> > - if (!reinit) {
>> > + err = mmc_send_status(card, &card_status);
>> > + if (err){
>> > + pr_err("%s: unable to get card status\n", mmc_hostname(host));
>> > + return err;
>> > + }
>> > +
>> > + if (card_status & R1_CARD_IS_LOCKED){
>> > + pr_warn("%s: card is locked\n", mmc_hostname(host));
>> > + }
>> > +
>> > + if (!reinit && !(card_status & R1_CARD_IS_LOCKED)) {
>> > /*
>> > * Fetch SCR from card.
>> > */
>>
>> Any feedback please?
> You didn't address my comment from your v1 - Since eMMC & SD shares
> the very same locking feature (non-COP SD that
> is) -
> You should at least explain in your commit log why it isn't an issue
> for eMMC, If indeed it is not.
I'm sorry, I didn't get what you mean by that. I am touching only the
sd.c code, not
the mmc.c (where eMMC is initialized, am I correct?).
How should I address this?
Should I test with eMMC to SD adaptor? I don't have any currently.
Theoretically, looking in the eMMC spec, a locked eMMC device
shouldn't have any issue returning from power down.
The only flow that is affected is that its not allowed to switch to
hs200 in a locked state until unlocked - not to say that it is a
problem.
If you can't verify that via code review, can you test your mmc-utils
code on an eMMC platform?
I've just tested with an eMMC to SD adapter in my reader and it is
detected correctly:
[1463181.072006] mmc1: unexpected status 0x2000900 after switch
[1463181.074560] mmc1: unexpected status 0x2000900 after switch
[1463181.077038] mmc1: unexpected status 0x2000900 after switch
[1463181.079709] mmc1: unexpected status 0x2000900 after switch
[1463181.081972] mmc1: unexpected status 0x2000900 after switch
[1463181.083412] mmc1: unexpected status 0x2000900 after switch
[1463181.084831] mmc1: unexpected status 0x2000900 after switch
[1463181.084836] mmc1: new high speed MMC card at address 0001
[1463181.085195] mmcblk1: mmc1:0001 004GA0 2.59 GiB
Do I need to do some changes to the patch?
Thanks,
Avri
I am sorry if these are stupid questions, I am a layman.
>
> Thanks,
> Avri
>
>>
>> D.
Thank you.
Daniel.
Thank you,
Daniel