On Mon, May 27, 2019 at 05:30:28PM +0800, tien.hock@intel.com wrote:
> From: "Tien Hock, Loh"
>
> 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"
> Cc: Leif Lindholm
> Cc: Ard Biesheuvel
>
> --
> v2:
> - Fix white space issue
Drop the version blurb from the commit message.
Below --- only.
> ---
> EmbeddedPkg/Drivers/DwEmmcDxe/DwEmmcDxe.c | 15 ---
> 1 file changed, 12 insertions(+), 3 deletions(-)
>
> diff --git a/EmbeddedPkg/Drivers/DwEmmcDxe/DwEmmcDxe.c
> b/EmbeddedPkg/Drivers/DwEmmcDxe/DwEmmcDxe.c
> index b57833458f..ec2fa7923b 100644
> --- a/EmbeddedPkg/Drivers/DwEmmcDxe/DwEmmcDxe.c
> +++ b/EmbeddedPkg/Drivers/DwEmmcDxe/DwEmmcDxe.c
> @@ -493,7 +493,10 @@ PrepareDmaData (
>
>Cnt = (Length + DWEMMC_DMA_BUF_SIZE - 1) / DWEMMC_DMA_BUF_SIZE;
>Blks = (Length + DWEMMC_BLOCK_SIZE - 1) / DWEMMC_BLOCK_SIZE;
> - 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 |
> @@ -534,8 +537,14 @@ StartDma (
>Data |= DWEMMC_IDMAC_ENABLE | DWEMMC_IDMAC_FB;
>MmioWrite32 (DWEMMC_BMOD, Data);
>
> - MmioWrite32 (DWEMMC_BLKSIZ, DWEMMC_BLOCK_SIZE);
> - MmioWrite32 (DWEMMC_BYTCNT, Length);
> + if(Length < DWEMMC_BLOCK_SIZE) {
> +MmioWrite32 (DWEMMC_BLKSIZ, Length);
> +MmioWrite32 (DWEMMC_BYTCNT, Length);
There is still a duplicated line here
> + }
> + else {
} else {
> +MmioWrite32 (DWEMMC_BLKSIZ, DWEMMC_BLOCK_SIZE);
> +MmioWrite32 (DWEMMC_BYTCNT, Length);
and here
> + }
Which could be outside of the conditional clause, since it is always
executed the same.
/
Leif
> }
>
> EFI_STATUS
> --
> 2.19.0
>
-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#41535): https://edk2.groups.io/g/devel/message/41535
Mute This Topic: https://groups.io/mt/31807966/21656
Group Owner: devel+ow...@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-