On 3/7/23 15:25, Cédric Le Goater wrote:
> The number of blocks is defined in the lower bits [15:0].
>
> TODO: This needs to be more precise on the spec version.
>
> Signed-off-by: Cédric Le Goater <clg@kaod.org>
> ---
> hw/sd/sd.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/hw/sd/sd.c b/hw/sd/sd.c
> index c4c9e9ee7999..7f07d0e99d15 100644
> --- a/hw/sd/sd.c
> +++ b/hw/sd/sd.c
> @@ -1282,7 +1282,7 @@ static sd_rsp_type_t sd_cmd_SET_BLOCK_COUNT(SDState *sd, SDRequest req)
> return sd_invalid_state_for_cmd(sd, req);
> }
>
> - sd->multi_blk_cnt = req.arg;
> + sd->multi_blk_cnt = req.arg & 0xFFFF;
On the SD Physical Layer spec v9.10 this field is still 32-bit
(see table 4-24, p. 104).
Should we use a sd_is_emmc() helper similar to sd_is_spi()?
>
> return sd_r1;
> }