diff mbox series

[6/8] sdcard: Disable SEND_IF_COND (CMD8) for Spec v1

Message ID 20180603000827.30872-7-f4bug@amsat.org
State New
Headers show
Series [1/8] sdcard: Update the Configuration Register (SCR) to Spec Version 1.10 | expand

Commit Message

Philippe Mathieu-Daudé June 3, 2018, 12:08 a.m. UTC
SEND_IF_COND got introduced by Spec v2.

Firmwares use the CMD8 in SPI mode to poll the Spec version supported:

  7.2.1 Mode Selection and Initialization (SPI mode)

    The SD Card is powered up in the SD mode. It will enter
    SPI mode if the CS signal is asserted (negative) during
    the reception of the reset command (CMD0). If the card
    recognizes that the SD mode is required it will not
    respond to the command and remain in the SD mode. If SPI
    mode is required, the card will switch to SPI and respond
    with the SPI mode R1 response.
    The only way to return to the SD mode is by entering the
    power cycle. In SPI mode, the SD Card protocol state
    machine in SD mode is not observed. All the SD Card
    commands supported in SPI mode are always available.
    [...]
    If the card indicates an illegal command, the card is
    legacy and does not support CMD8. If the card supports
    CMD8 and can operate on the supplied voltage, the response
    echoes back the supply voltage and the check pattern that
    were set in the command argument.

This change restore the SSI/SD functionality of the Stellaris
LM3S6965EVB board.

Message-Id: 201204252110.20873.paul@codesourcery.com
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
---
Paolo, I guess this would be a good use of the
Based-on: 201204252110.20873.paul@codesourcery.com tag in
the git history :P

 hw/sd/sd.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

Comments

Paolo Bonzini June 4, 2018, 3:42 p.m. UTC | #1
On 03/06/2018 02:08, Philippe Mathieu-Daudé wrote:
> Paolo, I guess this would be a good use of the
> Based-on: 201204252110.20873.paul@codesourcery.com tag in
> the git history :P

Oh, I see you did send it.  Thanks!

"Based-on" means that it applies to a tree with that patch.  It doesn't
mean that's the code you were looking at, when writing the patch.

Thanks,

Paolo
diff mbox series

Patch

diff --git a/hw/sd/sd.c b/hw/sd/sd.c
index 81f178b36e..da65f2b178 100644
--- a/hw/sd/sd.c
+++ b/hw/sd/sd.c
@@ -1017,7 +1017,9 @@  static sd_rsp_type_t sd_normal_command(SDState *sd, SDRequest req)
         break;
 
     case 8:	/* CMD8:   SEND_IF_COND */
-        /* Physical Layer Specification Version 2.00 command */
+        if (sd->spec_version < SD_PHY_SPECv2_00_VERS) {
+            break;
+        }
         if (sd->state != sd_idle_state) {
             break;
         }