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

Meng, Bin Bin.Meng at windriver.com
Sun Jan 24 12:38:28 CET 2021


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-bmeng.cn@gmail.com/

Regards,
Bin

-----Original Message-----
From: Jiaxun Yang <jiaxun.yang at flygoat.com> 
Sent: Sunday, January 24, 2021 2:34 PM
To: u-boot at lists.denx.de
Cc: Meng, Bin <Bin.Meng at windriver.com>; peng.fan at nxp.com; Jiaxun Yang <jiaxun.yang at 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 at 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



More information about the U-Boot mailing list