Message ID | 20230703132509.2474225-27-clg@kaod.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | hw/sd: eMMC support | expand |
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; > }
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; return sd_r1; }
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(-)