[edk2-devel] [[PATCH v2] 7/7] EmbeddedPkg: Fix DwEmmc driver bugs
Loh, Tien Hock
tien.hock.loh at intel.com
Thu May 9 06:54:28 UTC 2019
> -----Original Message-----
> From: Leif Lindholm <leif.lindholm at linaro.org>
> Sent: Friday, May 3, 2019 8:19 PM
> To: Loh, Tien Hock <tien.hock.loh at intel.com>
> Cc: devel at edk2.groups.io; thloh85 at gmail.com; Ard Biesheuvel
> <ard.biesheuvel at 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.loh at intel.com wrote:
> > From: "Tien Hock, Loh" <tien.hock.loh at 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.loh at intel.com>
> > Cc: Leif Lindholm <leif.lindholm at linaro.org>
> > Cc: Ard Biesheuvel <ard.biesheuvel at 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/1813853
Group Owner: devel+owner at edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [edk2-devel-archive at redhat.com]
-=-=-=-=-=-=-=-=-=-=-=-
More information about the edk2-devel-archive
mailing list