[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