On Fri, Feb 09, 2018 at 12:09:27PM +0100, Jean-Jacques Hiblot wrote: > After settings the speed of the sd with the switch command, a check is > done to make sure that the new speed has been set. The current check has a > masking error: speed are encoded on 4 bits only. > Fix it by masking the upper bits. > > This fixes a problem seen with QEmu emulating a vexpress-a15. > > Reported-by: Jonathan Gray <j...@jsg.id.au> > Signed-off-by: Jean-Jacques Hiblot <jjhib...@ti.com>
With this change the emulated mmc controller can be accessed again here. Tested-by: Jonathan Gray <j...@jsg.id.au> > > --- > > drivers/mmc/mmc.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/mmc/mmc.c b/drivers/mmc/mmc.c > index 255310a..31614dd 100644 > --- a/drivers/mmc/mmc.c > +++ b/drivers/mmc/mmc.c > @@ -1333,7 +1333,7 @@ static int sd_set_card_speed(struct mmc *mmc, enum > bus_mode mode) > if (err) > return err; > > - if ((__be32_to_cpu(switch_status[4]) >> 24) != speed) > + if (((__be32_to_cpu(switch_status[4]) >> 24) & 0xF) != speed) > return -ENOTSUPP; > > return 0; > -- > 1.9.1 > _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot