From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:53857) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Uf9EU-0007ZU-Rm for qemu-devel@nongnu.org; Wed, 22 May 2013 09:37:38 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Uf9EQ-0006NX-II for qemu-devel@nongnu.org; Wed, 22 May 2013 09:37:34 -0400 Received: from mail-oa0-f41.google.com ([209.85.219.41]:55729) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Uf9EQ-0006NO-DR for qemu-devel@nongnu.org; Wed, 22 May 2013 09:37:30 -0400 Received: by mail-oa0-f41.google.com with SMTP id n9so2582244oag.28 for ; Wed, 22 May 2013 06:37:29 -0700 (PDT) MIME-Version: 1.0 Date: Wed, 22 May 2013 17:37:29 +0400 Message-ID: From: Igor Mitsyanko Content-Type: multipart/alternative; boundary=e89a8ff2511ccd30a204dd4eaa71 Subject: Re: [Qemu-devel] [PATCH arm-devs v1 1/5] sd/sd.c: Fix "inquiry" ACMD41 List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: peter.crosthwaite@xilinx.com Cc: Peter Maydell , qemu-devel@nongnu.org, edgar.iglesias@gmail.com --e89a8ff2511ccd30a204dd4eaa71 Content-Type: text/plain; charset=ISO-8859-1 On 05/21/2013 10:50 AM, peter.crosthwaite@xilinx.com wrote: From: Peter Crosthwaite the SD command ACMD41 can be used in a read only mode to query device state without doing the SD card initialisation. This is valid even which the device is already initialised. Fix the command to be responsive when in the ready state accordingly. Signed-off-by: Peter Crosthwaite --- hw/sd/sd.c | 1 + 1 file changed, 1 insertion(+) diff --git a/hw/sd/sd.c b/hw/sd/sd.c index 2e0ef3e..89bfb7a 100644 --- a/hw/sd/sd.c +++ b/hw/sd/sd.c @@ -1277,6 +1277,7 @@ static sd_rsp_type_t sd_app_command(SDState *sd, } switch (sd->state) { case sd_idle_state: + case sd_ready_state: /* We accept any voltage. 10000 V is nothing. */ if (req.arg) sd->state = sd_ready_state; I couldn't find any info in SD specification that would confirm this change correctness, what about table "Table 4-29: Card State Transition Table" which states that ACMD41 is illegal in "ready" state? -- Best wishes, Igor Mitsyanko email: i.mitsyanko@gmail.com --e89a8ff2511ccd30a204dd4eaa71 Content-Type: text/html; charset=ISO-8859-1

On 05/21/2013 10:50 AM, peter.crosthwaite@xilinx.com wrote:
From: Peter Crosthwaite <peter.crosthwaite@xilinx.com>

the SD command ACMD41 can be used in a read only mode to query device
state without doing the SD card initialisation. This is valid even
which the device is already initialised. Fix the command to be
responsive when in the ready state accordingly.

Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xilinx.com>
---

 hw/sd/sd.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/hw/sd/sd.c b/hw/sd/sd.c
index 2e0ef3e..89bfb7a 100644
--- a/hw/sd/sd.c
+++ b/hw/sd/sd.c
@@ -1277,6 +1277,7 @@ static sd_rsp_type_t sd_app_command(SDState *sd,
         }
         switch (sd->state) {
         case sd_idle_state:
+        case sd_ready_state:
             /* We accept any voltage.  10000 V is nothing.  */
             if (req.arg)
                 sd->state = sd_ready_state;

I couldn't find any info in SD specification that would confirm this change correctness, what about
table "Table 4-29: Card State Transition Table" which states that ACMD41 is illegal in "ready" state?

-- 
Best wishes,
Igor Mitsyanko
email: i.mitsyanko@gmail.com
--e89a8ff2511ccd30a204dd4eaa71--