[PATCH] mmc: mmc_spi: Do not drop first RX byte after CMD TX

As per MMC SPI specification, R1 response could just follow the CMD TX. Currently we drop the first RX byte after the CMD TX. It is harmless in realworld as MMC card need time to take command action so the first resp will always be R1b(busy).
However in QEMU ssi-sd emulation, R1 resp is just followed after, so R1 will be dropped here.
Signed-off-by: Jiaxun Yang jiaxun.yang@flygoat.com --- drivers/mmc/mmc_spi.c | 4 ---- 1 file changed, 4 deletions(-)
diff --git a/drivers/mmc/mmc_spi.c b/drivers/mmc/mmc_spi.c index 46800bbed2..1da963ba1e 100644 --- a/drivers/mmc/mmc_spi.c +++ b/drivers/mmc/mmc_spi.c @@ -94,10 +94,6 @@ static int mmc_spi_sendcmd(struct udevice *dev, if (ret) return ret;
- ret = dm_spi_xfer(dev, 1 * 8, NULL, &r, 0); - if (ret) - return ret; - if (!resp || !resp_size) return 0;

It looks somehow this email did not arrive the mailing list?
As for the patch, U-Boot mms_spi driver does nothing wrong. The dropped byte is for Ncr as required by the spec.
The issue you mentioned in QEMU is fixed by the following patch: http://patchwork.ozlabs.org/project/qemu-devel/patch/20210123104016.17485-4-...
Regards, Bin
-----Original Message----- From: Jiaxun Yang jiaxun.yang@flygoat.com Sent: Sunday, January 24, 2021 2:34 PM To: u-boot@lists.denx.de Cc: Meng, Bin Bin.Meng@windriver.com; peng.fan@nxp.com; Jiaxun Yang jiaxun.yang@flygoat.com Subject: [PATCH] mmc: mmc_spi: Do not drop first RX byte after CMD TX
As per MMC SPI specification, R1 response could just follow the CMD TX. Currently we drop the first RX byte after the CMD TX. It is harmless in realworld as MMC card need time to take command action so the first resp will always be R1b(busy).
However in QEMU ssi-sd emulation, R1 resp is just followed after, so R1 will be dropped here.
Signed-off-by: Jiaxun Yang jiaxun.yang@flygoat.com --- drivers/mmc/mmc_spi.c | 4 ---- 1 file changed, 4 deletions(-)
diff --git a/drivers/mmc/mmc_spi.c b/drivers/mmc/mmc_spi.c index 46800bbed2..1da963ba1e 100644 --- a/drivers/mmc/mmc_spi.c +++ b/drivers/mmc/mmc_spi.c @@ -94,10 +94,6 @@ static int mmc_spi_sendcmd(struct udevice *dev, if (ret) return ret;
- ret = dm_spi_xfer(dev, 1 * 8, NULL, &r, 0); - if (ret) - return ret; - if (!resp || !resp_size) return 0;
-- 2.30.0

在 2021/1/24 下午7:38, Meng, Bin 写道:
It looks somehow this email did not arrive the mailing list?
Yes, it is waiting list moderator for approval as it's my first mail to U-Boot list.
As for the patch, U-Boot mms_spi driver does nothing wrong. The dropped byte is for Ncr as required by the spec.
The issue you mentioned in QEMU is fixed by the following patch: http://patchwork.ozlabs.org/project/qemu-devel/patch/20210123104016.17485-4-...
Thanks, It solved by problem.
- Jiaxun
Regards, Bin
participants (2)
-
Jiaxun Yang
-
Meng, Bin