hw/sd: ssi-sd: Fix SEND_IF_COND (CMD8) response
authorBin Meng <bin.meng@windriver.com>
Thu, 28 Jan 2021 06:30:33 +0000 (14:30 +0800)
committerPhilippe Mathieu-Daudé <f4bug@amsat.org>
Fri, 19 Feb 2021 23:17:09 +0000 (00:17 +0100)
The SEND_IF_COND command (CMD8) response is of format R7, but
current code returns R1 for CMD8. Fix it.

Fixes: 775616c3ae8c ("Partial SD card SPI mode support")
Signed-off-by: Bin Meng <bin.meng@windriver.com>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Message-Id: <20210128063035.15674-8-bmeng.cn@gmail.com>
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
hw/sd/ssi-sd.c

index 200e885225a278bec306b9ab229be8508bc71345..84c873b3fd41e56ac62bac1df9166955c43dc272 100644 (file)
@@ -176,9 +176,9 @@ static uint32_t ssi_sd_transfer(SSIPeripheral *dev, uint32_t val)
                 s->arglen = 1;
                 s->response[0] = 4;
                 DPRINTF("SD command failed\n");
-            } else if (s->cmd == 58) {
-                /* CMD58 returns R3 response (OCR)  */
-                DPRINTF("Returned OCR\n");
+            } else if (s->cmd == 8 || s->cmd == 58) {
+                /* CMD8/CMD58 returns R3/R7 response */
+                DPRINTF("Returned R3/R7\n");
                 s->arglen = 5;
                 s->response[0] = 1;
                 memcpy(&s->response[1], longresp, 4);