[PATCH 2/2] mtd: cfi_mtd: Use DMA for reads

Stefan Roese sr at denx.de
Wed Sep 23 08:59:02 CEST 2020


On 17.09.20 13:23, Vignesh Raghavendra wrote:
> When possible use DMA for reading from CFI flash, this provides upto 5x
> improvement in read performance with high speed CFI compliant flashes
> like HyperFlash.
> 
> Code will gracefully fallback to CPU copy when DMA is unavailable.
> 
> Signed-off-by: Vignesh Raghavendra <vigneshr at ti.com>

Reviewed-by: Stefan Roese <sr at denx.de>

Thanks,
Stefan

> ---
>   drivers/mtd/cfi_mtd.c | 4 +++-
>   1 file changed, 3 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/mtd/cfi_mtd.c b/drivers/mtd/cfi_mtd.c
> index a5bb0962e5..78293caa2f 100644
> --- a/drivers/mtd/cfi_mtd.c
> +++ b/drivers/mtd/cfi_mtd.c
> @@ -6,6 +6,7 @@
>    */
>   
>   #include <common.h>
> +#include <dma.h>
>   #include <flash.h>
>   #include <malloc.h>
>   
> @@ -70,7 +71,8 @@ static int cfi_mtd_read(struct mtd_info *mtd, loff_t from, size_t len,
>   	flash_info_t *fi = mtd->priv;
>   	u_char *f = (u_char*)(fi->start[0]) + from;
>   
> -	memcpy(buf, f, len);
> +	if (dma_memcpy(buf, f, len) < 0)
> +		memcpy(buf, f, len);
>   	*retlen = len;
>   
>   	return 0;
> 


Viele Grüße,
Stefan

-- 
DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-51 Fax: (+49)-8142-66989-80 Email: sr at denx.de


More information about the U-Boot mailing list