From: Ravi Babu Date: Mon, 17 Aug 2015 07:59:48 +0000 (+0530) Subject: sf: allocate cache aligned buffers to copy from flash X-Git-Tag: v2015.10-rc3~143^2~9 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=156e96f0382a09e3b67681566319ec945f192eb9;p=oweals%2Fu-boot.git sf: allocate cache aligned buffers to copy from flash Use memalign() with ARCH_DMA_MINALIGN to allocate read buffers. This is required because, flash drivers may use DMA for read operations and may have to invalidate the buffer before read. Signed-off-by: Ravi Babu Signed-off-by: Vignesh R Reviewed-by: Tom Rini Reviewed-by: Jagan Teki Tested-by: Jagan Teki --- diff --git a/common/cmd_sf.c b/common/cmd_sf.c index 3746e0d964..ac7f5dfb81 100644 --- a/common/cmd_sf.c +++ b/common/cmd_sf.c @@ -223,7 +223,7 @@ static int spi_flash_update(struct spi_flash *flash, u32 offset, if (end - buf >= 200) scale = (end - buf) / 100; - cmp_buf = malloc(flash->sector_size); + cmp_buf = memalign(ARCH_DMA_MINALIGN, flash->sector_size); if (cmp_buf) { ulong last_update = get_timer(0); @@ -484,12 +484,12 @@ static int do_spi_flash_test(int argc, char * const argv[]) if (*argv[2] == 0 || *endp != 0) return -1; - vbuf = malloc(len); + vbuf = memalign(ARCH_DMA_MINALIGN, len); if (!vbuf) { printf("Cannot allocate memory (%lu bytes)\n", len); return 1; } - buf = malloc(len); + buf = memalign(ARCH_DMA_MINALIGN, len); if (!buf) { free(vbuf); printf("Cannot allocate memory (%lu bytes)\n", len);