diff options
author | Ravi Babu <ravibabu@ti.com> | 2015-08-17 10:59:48 +0300 |
---|---|---|
committer | Jagan Teki <jteki@openedev.com> | 2015-08-17 20:59:14 +0300 |
commit | 156e96f0382a09e3b67681566319ec945f192eb9 (patch) | |
tree | 988befa0534412ca17cde3bbeee17cf963130c48 | |
parent | a39cfe717c4152ececea5c4ce0aa2e97faa263ab (diff) | |
download | u-boot-156e96f0382a09e3b67681566319ec945f192eb9.tar.xz |
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 <ravibabu@ti.com>
Signed-off-by: Vignesh R <vigneshr@ti.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
Reviewed-by: Jagan Teki <jteki@openedev.com>
Tested-by: Jagan Teki <jteki@openedev.com>
-rw-r--r-- | common/cmd_sf.c | 6 |
1 files changed, 3 insertions, 3 deletions
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); |