]> xenbits.xensource.com Git - qemu-xen.git/commitdiff
hw/sd/sdcard: Fix SET_BLOCK_COUNT command argument on eMMC (CMD23)
authorCédric Le Goater <clg@kaod.org>
Tue, 11 May 2021 11:58:47 +0000 (13:58 +0200)
committerPhilippe Mathieu-Daudé <philmd@linaro.org>
Tue, 16 Jul 2024 18:27:16 +0000 (20:27 +0200)
The number of blocks is defined in the lower bits [15:0].

Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Signed-off-by: Cédric Le Goater <clg@kaod.org>
Tested-by: Andrew Jeffery <andrew@codeconstruct.com.au>
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Tested-by: Cédric Le Goater <clg@redhat.com>
Message-Id: <20240712162719.88165-6-philmd@linaro.org>

hw/sd/sd.c

index ab502d19b82f9519f8e4b4ef7e31a9db6a2a8d60..09077f015437cc0e71e788c236706d3a3a5e13e0 100644 (file)
@@ -1533,6 +1533,9 @@ static sd_rsp_type_t sd_cmd_SET_BLOCK_COUNT(SDState *sd, SDRequest req)
     }
 
     sd->multi_blk_cnt = req.arg;
+    if (sd_is_emmc(sd)) {
+        sd->multi_blk_cnt &= 0xffff;
+    }
     trace_sdcard_set_block_count(sd->multi_blk_cnt);
 
     return sd_r1;