Don't set the high capacity bit by default as it will be set if required in the sd_set_csd() function.
[based on a patch from Alistair Francis <alistair.fran...@xilinx.com> and Peter Ogden <og...@xilinx.com> from qemu/xilinx tag xilinx-v2015.4] Signed-off-by: Philippe Mathieu-Daudé <f4...@amsat.org> --- hw/sd/sd.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/hw/sd/sd.c b/hw/sd/sd.c index 437ce25f79..20764451f2 100644 --- a/hw/sd/sd.c +++ b/hw/sd/sd.c @@ -289,6 +289,10 @@ static void sd_ocr_powerup(void *opaque) /* card power-up OK */ sd->ocr = FIELD_DP32(sd->ocr, OCR, CARD_POWER_UP, 1); + + if (sd->size > 1 * G_BYTE) { + sd->ocr = FIELD_DP32(sd->ocr, OCR, CARD_CAPACITY, 1); + } } static void sd_reset_scr(SDState *sd) @@ -393,7 +397,6 @@ static void sd_reset_csd(SDState *sd, uint64_t size) sd->csd[13] = 0x40; sd->csd[14] = 0x00; sd->csd[15] = 0x00; - sd->ocr |= 1 << 30; /* High Capacity SD Memory Card */ } } -- 2.15.1