> -----Original Message----- > From: Leif Lindholm <leif.lindh...@linaro.org> > Sent: Friday, May 3, 2019 8:19 PM > To: Loh, Tien Hock <tien.hock....@intel.com> > Cc: devel@edk2.groups.io; thlo...@gmail.com; Ard Biesheuvel > <ard.biesheu...@linaro.org> > Subject: Re: [[PATCH v2] 7/7] EmbeddedPkg: Fix DwEmmc driver bugs > > 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?...
Can you clarify further on this? I didn't change anything on DWEMMC_BLOCK_SIZE. Do you want me to assign DWEMMC_BLOCK_SIZE to a BlockSize variable and use it? > > > - 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. OK noted. > > > 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:) OK, noted with thanks! > > / > 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 (#40284): https://edk2.groups.io/g/devel/message/40284 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] -=-=-=-=-=-=-=-=-=-=-=-