On Thu, Aug 13, 2015 at 12:38:52PM -0600, Simon Glass 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);
Now we're getting somewhere, good spotting Jagan! -- Tom
signature.asc
Description: Digital signature
_______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot