[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PULL 16/18] hw/sd: sd: Bypass the RCA check for CMD13 in SPI mode
From: |
Philippe Mathieu-Daudé |
Subject: |
[PULL 16/18] hw/sd: sd: Bypass the RCA check for CMD13 in SPI mode |
Date: |
Sat, 20 Feb 2021 01:13:07 +0100 |
From: Bin Meng <bin.meng@windriver.com>
Unlike SD mode, when SD card is working in SPI mode, the argument
of CMD13 is stuff bits. Hence we should bypass the RCA check.
See "Physical Layer Specification Version 8.00", chapter 7.3.1.3
Detailed Command Description (SPI mode):
"The card shall ignore stuff bits and reserved bits in an argument"
and Table 7-3 Commands and Arguments (SPI mode):
"CMD13 Argument [31:0] stuff bits"
Signed-off-by: Bin Meng <bin.meng@windriver.com>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Message-Id: <20210216150225.27996-9-bmeng.cn@gmail.com>
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
---
hw/sd/sd.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/hw/sd/sd.c b/hw/sd/sd.c
index 3a515a5365f..8b397effbcc 100644
--- a/hw/sd/sd.c
+++ b/hw/sd/sd.c
@@ -1163,8 +1163,9 @@ static sd_rsp_type_t sd_normal_command(SDState *sd,
SDRequest req)
case 13: /* CMD13: SEND_STATUS */
switch (sd->mode) {
case sd_data_transfer_mode:
- if (sd->rca != rca)
+ if (!sd->spi && sd->rca != rca) {
return sd_r0;
+ }
return sd_r1;
--
2.26.2
- [PULL 06/18] hw/sd: ssi-sd: Support multiple block write, (continued)
- [PULL 06/18] hw/sd: ssi-sd: Support multiple block write, Philippe Mathieu-Daudé, 2021/02/19
- [PULL 07/18] hw/sd: ssi-sd: Fix SEND_IF_COND (CMD8) response, Philippe Mathieu-Daudé, 2021/02/19
- [PULL 08/18] hw/sd: ssi-sd: Fix STOP_TRANSMISSION (CMD12) response, Philippe Mathieu-Daudé, 2021/02/19
- [PULL 09/18] hw/sd: ssi-sd: Handle the rest commands with R1b response type, Philippe Mathieu-Daudé, 2021/02/19
- [PULL 10/18] hw/sd: sd: Fix address check in sd_erase(), Philippe Mathieu-Daudé, 2021/02/19
- [PULL 11/18] hw/sd: sd: Only SDSC cards support CMD28/29/30, Philippe Mathieu-Daudé, 2021/02/19
- [PULL 12/18] hw/sd: sd: Fix CMD30 response type, Philippe Mathieu-Daudé, 2021/02/19
- [PULL 13/18] hw/sd: sd: Move the sd_block_{read, write} and macros ahead, Philippe Mathieu-Daudé, 2021/02/19
- [PULL 14/18] hw/sd: sd: Skip write protect groups check in sd_erase() for high capacity cards, Philippe Mathieu-Daudé, 2021/02/19
- [PULL 15/18] hw/sd: sd: Skip write protect groups check in CMD24/25 for high capacity cards, Philippe Mathieu-Daudé, 2021/02/19
- [PULL 16/18] hw/sd: sd: Bypass the RCA check for CMD13 in SPI mode,
Philippe Mathieu-Daudé <=
- [PULL 17/18] hw/sd: sdhci: Simplify updating s->prnsts in sdhci_sdma_transfer_multi_blocks(), Philippe Mathieu-Daudé, 2021/02/19
- [PULL 18/18] MAINTAINERS: Add Bin Meng as co-maintainer for SD/MMC cards, Philippe Mathieu-Daudé, 2021/02/19
- Re: [PULL 00/18] SD/MMC patches for 2021-02-20, Peter Maydell, 2021/02/21