diff mbox series

[v3,02/18] sdcard: update the CSD CRC register regardless the CSD structure version

Message ID 20180123033034.29493-3-f4bug@amsat.org
State New
Headers show
Series SDCard: bugfixes, support UHS-I (part 5) | expand

Commit Message

Philippe Mathieu-Daudé Jan. 23, 2018, 3:30 a.m. UTC
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
---
 hw/sd/sd.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

Comments

Alistair Francis Jan. 31, 2018, 4:16 p.m. UTC | #1
On Mon, Jan 22, 2018 at 7:30 PM, Philippe Mathieu-Daudé <f4bug@amsat.org> wrote:
> Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>

Reviewed-by: Alistair Francis <alistair.francis@xilinx.com>

Alistair

> ---
>  hw/sd/sd.c | 3 +--
>  1 file changed, 1 insertion(+), 2 deletions(-)
>
> diff --git a/hw/sd/sd.c b/hw/sd/sd.c
> index 20764451f2..f6318c6fdb 100644
> --- a/hw/sd/sd.c
> +++ b/hw/sd/sd.c
> @@ -377,7 +377,6 @@ static void sd_reset_csd(SDState *sd, uint64_t size)
>          sd->csd[13] = 0x20 |   /* Max. write data block length */
>              ((HWBLOCK_SHIFT << 6) & 0xc0);
>          sd->csd[14] = 0x00;    /* File format group */
> -        sd->csd[15] = (sd_crc7(sd->csd, 15) << 1) | 1;
>      } else {                   /* SDHC */
>          size /= 512 * 1024;
>          size -= 1;
> @@ -396,8 +395,8 @@ static void sd_reset_csd(SDState *sd, uint64_t size)
>          sd->csd[12] = 0x0a;
>          sd->csd[13] = 0x40;
>          sd->csd[14] = 0x00;
> -        sd->csd[15] = 0x00;
>      }
> +    sd->csd[15] = (sd_crc7(sd->csd, 15) << 1) | 1;
>  }
>
>  static void sd_reset_rca(SDState *sd)
> --
> 2.15.1
>
>
diff mbox series

Patch

diff --git a/hw/sd/sd.c b/hw/sd/sd.c
index 20764451f2..f6318c6fdb 100644
--- a/hw/sd/sd.c
+++ b/hw/sd/sd.c
@@ -377,7 +377,6 @@  static void sd_reset_csd(SDState *sd, uint64_t size)
         sd->csd[13] = 0x20 |	/* Max. write data block length */
             ((HWBLOCK_SHIFT << 6) & 0xc0);
         sd->csd[14] = 0x00;	/* File format group */
-        sd->csd[15] = (sd_crc7(sd->csd, 15) << 1) | 1;
     } else {			/* SDHC */
         size /= 512 * 1024;
         size -= 1;
@@ -396,8 +395,8 @@  static void sd_reset_csd(SDState *sd, uint64_t size)
         sd->csd[12] = 0x0a;
         sd->csd[13] = 0x40;
         sd->csd[14] = 0x00;
-        sd->csd[15] = 0x00;
     }
+    sd->csd[15] = (sd_crc7(sd->csd, 15) << 1) | 1;
 }
 
 static void sd_reset_rca(SDState *sd)