On Fri, May 03, 2019 at 11:27:03AM +0800, tien.hock....@intel.com wrote: > From: "Tien Hock, Loh" <tien.hock....@intel.com> > > Add support for reading data that is less than DWEMMC_BLOCK_SIZE, otherwise > it would read bigger data than requested and cause errors > > Signed-off-by: "Tien Hock, Loh" <tien.hock....@intel.com> > Cc: Leif Lindholm <leif.lindh...@linaro.org> > Cc: Ard Biesheuvel <ard.biesheu...@linaro.org> > --- > EmbeddedPkg/Drivers/DwEmmcDxe/DwEmmcDxe.c | 16 +++++++++++++--- > 1 file changed, 13 insertions(+), 3 deletions(-) > > diff --git a/EmbeddedPkg/Drivers/DwEmmcDxe/DwEmmcDxe.c > b/EmbeddedPkg/Drivers/DwEmmcDxe/DwEmmcDxe.c > index c38b5a4..4183ad4 100644 > --- a/EmbeddedPkg/Drivers/DwEmmcDxe/DwEmmcDxe.c > +++ b/EmbeddedPkg/Drivers/DwEmmcDxe/DwEmmcDxe.c > @@ -495,7 +495,10 @@ PrepareDmaData ( > > Cnt = (Length + DWEMMC_DMA_BUF_SIZE - 1) / DWEMMC_DMA_BUF_SIZE; > Blks = (Length + DWEMMC_BLOCK_SIZE - 1) / DWEMMC_BLOCK_SIZE;
Could we add a BlockSize variable instead?... > - Length = DWEMMC_BLOCK_SIZE * Blks; > + > + if(Length >= DWEMMC_BLOCK_SIZE) { > + Length = DWEMMC_BLOCK_SIZE * Blks; > + } > > for (Idx = 0; Idx < Cnt; Idx++) { > (IdmacDesc + Idx)->Des0 = DWEMMC_IDMAC_DES0_OWN | DWEMMC_IDMAC_DES0_CH | > @@ -533,11 +536,18 @@ StartDma ( > Data |= DWEMMC_CTRL_INT_EN | DWEMMC_CTRL_DMA_EN | DWEMMC_CTRL_IDMAC_EN; > MmioWrite32 (DWEMMC_CTRL, Data); > Data = MmioRead32 (DWEMMC_BMOD); > + Drop unrelated whitespace addition. > Data |= DWEMMC_IDMAC_ENABLE | DWEMMC_IDMAC_FB; > MmioWrite32 (DWEMMC_BMOD, Data); > And do if (Length < DWEMMC_BLOCK_SIZE) { BlockSize = Length; } else { BlockSize = DWEMMC_BLOCK_SIZE; } MmioWrite32 (DWEMMC_BLKSIZ, BlockSize); MmioWrite32 (DWEMMC_BYTCNT, Length); instead? (I have no comments on the patches I have not responded to at this point, but I want to see their proper subject lines before giving a R-b:) / Leif > - MmioWrite32 (DWEMMC_BLKSIZ, DWEMMC_BLOCK_SIZE); > - MmioWrite32 (DWEMMC_BYTCNT, Length); > + if(Length < DWEMMC_BLOCK_SIZE) { > + MmioWrite32 (DWEMMC_BLKSIZ, Length); > + MmioWrite32 (DWEMMC_BYTCNT, Length); > + } > + else { > + MmioWrite32 (DWEMMC_BLKSIZ, DWEMMC_BLOCK_SIZE); > + MmioWrite32 (DWEMMC_BYTCNT, Length); > + } > } > > EFI_STATUS > -- > 2.2.2 > -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#39958): https://edk2.groups.io/g/devel/message/39958 Mute This Topic: https://groups.io/mt/31480083/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-