On Sat, Jun 2, 2018 at 5:08 PM, Philippe Mathieu-Daudé <f4bug@amsat.org> wrote:
> Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Reviewed-by: Alistair Francis <alistair.francis@wdc.com>
Alistair
> ---
> include/hw/sd/sd.h | 1 +
> hw/sd/sd.c | 7 +++++--
> 2 files changed, 6 insertions(+), 2 deletions(-)
>
> diff --git a/include/hw/sd/sd.h b/include/hw/sd/sd.h
> index 7c6ad3c8f1..b865aafc33 100644
> --- a/include/hw/sd/sd.h
> +++ b/include/hw/sd/sd.h
> @@ -57,6 +57,7 @@
> enum SDPhySpecificationVersion {
> SD_PHY_SPECv1_10_VERS = 1,
> SD_PHY_SPECv2_00_VERS = 2,
> + SD_PHY_SPECv3_01_VERS = 3,
> };
>
> typedef enum {
> diff --git a/hw/sd/sd.c b/hw/sd/sd.c
> index da65f2b178..83426da133 100644
> --- a/hw/sd/sd.c
> +++ b/hw/sd/sd.c
> @@ -315,11 +315,14 @@ static void sd_set_scr(SDState *sd)
> if (sd->spec_version == SD_PHY_SPECv1_10_VERS) {
> sd->scr[0] |= 1; /* Spec Version 1.10 */
> } else {
> - sd->scr[0] |= 2; /* Spec Version 2.00 */
> + sd->scr[0] |= 2; /* Spec Version 2.00 or Version 3.0X */
> }
> sd->scr[1] = (2 << 4) /* SDSC Card (Security Version 1.01) */
> | 0b0101; /* 1-bit or 4-bit width bus modes */
> sd->scr[2] = 0x00; /* Extended Security is not supported. */
> + if (sd->spec_version >= SD_PHY_SPECv3_01_VERS) {
> + sd->scr[2] |= 1 << 7; /* Spec Version 3.0X */
> + }
> sd->scr[3] = 0x00;
> /* reserved for manufacturer usage */
> sd->scr[4] = 0x00;
> @@ -2067,7 +2070,7 @@ static void sd_realize(DeviceState *dev, Error **errp)
>
> switch (sd->spec_version) {
> case SD_PHY_SPECv1_10_VERS
> - ... SD_PHY_SPECv2_00_VERS:
> + ... SD_PHY_SPECv3_01_VERS:
> break;
> default:
> error_setg(errp, "Invalid SD card Spec version: %u", sd->spec_version);
> --
> 2.17.1
>
>