On 14 August 2015 at 00:08, Simon Glass <s...@chromium.org> wrote: > Hi, > > On 13 August 2015 at 12:23, Tom Rini <tr...@konsulko.com> wrote: >> On Thu, Aug 13, 2015 at 11:38:00PM +0530, Jagan Teki wrote: >>> On 13 August 2015 at 23:24, Tom Rini <tr...@konsulko.com> wrote: >>> > On Thu, Aug 13, 2015 at 11:09:03PM +0530, Jagan Teki wrote: >>> >> Hi Simon, >>> >> >>> >> On 30 July 2015 at 11:04, Vignesh R <vigne...@ti.com> wrote: >>> >> > From: Ravi Babu <ravib...@ti.com> >>> >> > >>> >> > 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 <ravib...@ti.com> >>> >> > Signed-off-by: Vignesh R <vigne...@ti.com> >>> >> > --- >>> >> > common/cmd_sf.c | 6 +++--- >>> >> > 1 file changed, 3 insertions(+), 3 deletions(-) >>> >> > >>> >> > diff --git a/common/cmd_sf.c b/common/cmd_sf.c >>> >> > index 3746e0d9644f..ac7f5dfb8181 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); >>> >> >>> >> I always have a confusion like align macro is never used on code >>> >> memalign_simple() >>> >> Was it a typo missing or some thing? >>> > >>> > Sorry? We always call memalign() rather than memalign_simple(). >>> >>> memalign() is calling memalign_simple() except __libc_memalign >>> >>> Am I missing something here, because ARCH_DMA_MINALIGN is never used >>> on memalign_simple() >> >> Yes, unless I'm missing something now, memalign_simple() is only used on >> CONFIG_SYS_MALLOC_SIMPLE which has some very specific use cases. We >> otherwise use memalign from common/dlmalloc.c.. > > It looks like memalign_simple() should use > > addr = ALIGN(gd->malloc_base + gd->malloc_ptr, align); > > instead of: > > addr = ALIGN(gd->malloc_base + gd->malloc_ptr, bytes);
I think we can do the requested bytes as well like new_ptr = ALIGN(addr + bytes, align); thanks! -- Jagan | openedev. _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot