On 9/1/20 4:01 PM, Philippe Mathieu-Daudé wrote: > The 'Transfer Block Size' field is 12-bit wide. > > See section '2.2.2. Block Size Register (Offset 004h)' in datasheet. > > Cc: qemu-sta...@nongnu.org > Cc: Igor Mitsyanko <i.mitsya...@gmail.com> > Buglink: https://bugs.launchpad.net/qemu/+bug/1892960 > Fixes: d7dfca0807a ("hw/sdhci: introduce standard SD host controller") > Reported-by: Alexander Bulekov <alx...@bu.edu> > Signed-off-by: Philippe Mathieu-Daudé <f4...@amsat.org> > --- > Cc: 1892...@bugs.launchpad.net > --- > hw/sd/sdhci.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/hw/sd/sdhci.c b/hw/sd/sdhci.c > index 60f083b84c1..beb7b7ea092 100644 > --- a/hw/sd/sdhci.c > +++ b/hw/sd/sdhci.c > @@ -1104,7 +1104,7 @@ sdhci_write(void *opaque, hwaddr offset, uint64_t val, > unsigned size) > break; > case SDHC_BLKSIZE: > if (!TRANSFERRING_DATA(s->prnsts)) { > - MASKED_WRITE(s->blksize, mask, value); > + MASKED_WRITE(s->blksize, mask, extract32(s->blksize, 0, 12));
Beh change unstaged, sorry, will repost. > MASKED_WRITE(s->blkcnt, mask >> 16, value >> 16); > } > >