On Mon, Feb 8, 2021 at 3:20 PM Bin Meng <[email protected]> wrote:
>
> Hi Philippe,
>
> On Mon, Feb 8, 2021 at 10:08 PM Philippe Mathieu-Daudé <[email protected]> 
> wrote:
> >
> > On 1/28/21 7:30 AM, Bin Meng wrote:
> > > From: Bin Meng <[email protected]>
> > >
> > > Besides CMD12, the following command's reponse type is R1b:
> > >
> > > - SET_WRITE_PROT (CMD28)
> > > - CLR_WRITE_PROT (CMD29)
> > > - ERASE (CMD38)
> > >
> > > Reuse the same s->stopping to indicate a R1b reponse is needed.
> > >
> > > Signed-off-by: Bin Meng <[email protected]>
> > >
> > > ---
> > >
> > > Changes in v4:
> > > - new patch: handle the rest commands with R1b response type
> > >
> > >  hw/sd/ssi-sd.c | 6 ++++++
> > >  1 file changed, 6 insertions(+)
> > >
> > > diff --git a/hw/sd/ssi-sd.c b/hw/sd/ssi-sd.c
> > > index 907d681d19..97ee58e20c 100644
> > > --- a/hw/sd/ssi-sd.c
> > > +++ b/hw/sd/ssi-sd.c
> > > @@ -194,6 +194,12 @@ static uint32_t ssi_sd_transfer(SSIPeripheral *dev, 
> > > uint32_t val)
> > >                  /* CMD13 returns a 2-byte statuse work. Other commands
> > >                     only return the first byte.  */
> > >                  s->arglen = (s->cmd == 13) ? 2 : 1;
> > > +
> > > +                /* handle R1b */
> > > +                if (s->cmd == 28 || s->cmd == 29 || s->cmd == 38) {
> >
> > Why not also check CMD13 for completeness?
> >
>
> I am not sure I got your point. CMD13 does not respond with R1b but R2.

Forget what I wrote, you are correct =)

BTW since you have a deep understanding of SD cards, would you like to
be listed as designated reviewer in the SD/MMC section?

> > Otherwise:
> > Reviewed-by: Philippe Mathieu-Daudé <[email protected]>
> >
> > > +                    s->stopping = 1;
> > > +                }
> > > +
> > >                  cardstatus = ldl_be_p(longresp);
> > >                  status = 0;
> > >                  if (((cardstatus >> 9) & 0xf) < 4)
> > >
>
> Regards,
> Bin

Reply via email to