All of lore.kernel.org
 help / color / mirror / Atom feed
* [U-Boot] [PATCH V2] nand: fix buffer alignment in new verification feature
@ 2015-04-14 14:59 Stephen Warren
  2015-04-14 22:45 ` Simon Glass
  2015-04-29 21:20 ` Stephen Warren
  0 siblings, 2 replies; 4+ messages in thread
From: Stephen Warren @ 2015-04-14 14:59 UTC (permalink / raw)
  To: u-boot

From: Stephen Warren <swarren@nvidia.com>

On systems with caches enabled, NAND I/O may need to flush/invalidate
the cache during read/write operations. For this to work correctly, all
buffers must be cache-aligned. Fix nand_verify*() to allocate aligned
buffers.

This prevents cache alignment warnings from being spewed when using
U-Boot to write an updated version of itself to flash on NVIDIA Tegra
Seaboard (after perturbation of stack/data layout in current
u-boot-dm/next branch).

I have validatd (executed) nand_verify(), but I don't think I've executed
nand_verify_page_oob(); testing of that would be useful.

Cc: Peter Tyser <ptyser@xes-inc.com>
Cc: Heiko Schocher <hs@denx.de>
Cc: Scott Wood <scottwood@freescale.com>
Fixes: 59b5a2ad83df ("nand: Add verification functions")
Signed-off-by: Stephen Warren <swarren@nvidia.com>
---
v2: Use memalign() rather than ALLOC_CACHE_ALIGN_BUFFER() so that the
buffer is allocated from the heap not on the stack, to reduce stack
usage.
---
 drivers/mtd/nand/nand_util.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/mtd/nand/nand_util.c b/drivers/mtd/nand/nand_util.c
index 12dd26a33fac..ee2c24df3b85 100644
--- a/drivers/mtd/nand/nand_util.c
+++ b/drivers/mtd/nand/nand_util.c
@@ -483,7 +483,7 @@ int nand_verify_page_oob(nand_info_t *nand, struct mtd_oob_ops *ops, loff_t ofs)
 
 	memcpy(&vops, ops, sizeof(vops));
 
-	vops.datbuf = malloc(verlen);
+	vops.datbuf = memalign(ARCH_DMA_MINALIGN, verlen);
 
 	if (!vops.datbuf)
 		return -ENOMEM;
@@ -520,7 +520,7 @@ int nand_verify(nand_info_t *nand, loff_t ofs, size_t len, u_char *buf)
 	int rval = 0;
 	size_t verofs;
 	size_t verlen = nand->writesize;
-	uint8_t *verbuf = malloc(verlen);
+	uint8_t *verbuf = memalign(ARCH_DMA_MINALIGN, verlen);
 
 	if (!verbuf)
 		return -ENOMEM;
-- 
1.9.1

^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [U-Boot] [PATCH V2] nand: fix buffer alignment in new verification feature
  2015-04-14 14:59 [U-Boot] [PATCH V2] nand: fix buffer alignment in new verification feature Stephen Warren
@ 2015-04-14 22:45 ` Simon Glass
  2015-04-29 21:20 ` Stephen Warren
  1 sibling, 0 replies; 4+ messages in thread
From: Simon Glass @ 2015-04-14 22:45 UTC (permalink / raw)
  To: u-boot

On 14 April 2015 at 08:59, Stephen Warren <swarren@wwwdotorg.org> wrote:
> From: Stephen Warren <swarren@nvidia.com>
>
> On systems with caches enabled, NAND I/O may need to flush/invalidate
> the cache during read/write operations. For this to work correctly, all
> buffers must be cache-aligned. Fix nand_verify*() to allocate aligned
> buffers.
>
> This prevents cache alignment warnings from being spewed when using
> U-Boot to write an updated version of itself to flash on NVIDIA Tegra
> Seaboard (after perturbation of stack/data layout in current
> u-boot-dm/next branch).
>
> I have validatd (executed) nand_verify(), but I don't think I've executed
> nand_verify_page_oob(); testing of that would be useful.
>
> Cc: Peter Tyser <ptyser@xes-inc.com>
> Cc: Heiko Schocher <hs@denx.de>
> Cc: Scott Wood <scottwood@freescale.com>
> Fixes: 59b5a2ad83df ("nand: Add verification functions")
> Signed-off-by: Stephen Warren <swarren@nvidia.com>

Reviewed-by: Simon Glass <sjg@chromium.org>

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [U-Boot] [PATCH V2] nand: fix buffer alignment in new verification feature
  2015-04-14 14:59 [U-Boot] [PATCH V2] nand: fix buffer alignment in new verification feature Stephen Warren
  2015-04-14 22:45 ` Simon Glass
@ 2015-04-29 21:20 ` Stephen Warren
  2015-04-29 23:23   ` Scott Wood
  1 sibling, 1 reply; 4+ messages in thread
From: Stephen Warren @ 2015-04-29 21:20 UTC (permalink / raw)
  To: u-boot

On 04/14/2015 08:59 AM, Stephen Warren wrote:
> From: Stephen Warren <swarren@nvidia.com>
>
> On systems with caches enabled, NAND I/O may need to flush/invalidate
> the cache during read/write operations. For this to work correctly, all
> buffers must be cache-aligned. Fix nand_verify*() to allocate aligned
> buffers.
>
> This prevents cache alignment warnings from being spewed when using
> U-Boot to write an updated version of itself to flash on NVIDIA Tegra
> Seaboard (after perturbation of stack/data layout in current
> u-boot-dm/next branch).
>
> I have validatd (executed) nand_verify(), but I don't think I've executed
> nand_verify_page_oob(); testing of that would be useful.
>
> Cc: Peter Tyser <ptyser@xes-inc.com>
> Cc: Heiko Schocher <hs@denx.de>
> Cc: Scott Wood <scottwood@freescale.com>
> Fixes: 59b5a2ad83df ("nand: Add verification functions")
> Signed-off-by: Stephen Warren <swarren@nvidia.com>
> ---
> v2: Use memalign() rather than ALLOC_CACHE_ALIGN_BUFFER() so that the
> buffer is allocated from the heap not on the stack, to reduce stack
> usage.

Scott, does this version look good?

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [U-Boot] [PATCH V2] nand: fix buffer alignment in new verification feature
  2015-04-29 21:20 ` Stephen Warren
@ 2015-04-29 23:23   ` Scott Wood
  0 siblings, 0 replies; 4+ messages in thread
From: Scott Wood @ 2015-04-29 23:23 UTC (permalink / raw)
  To: u-boot

On Wed, 2015-04-29 at 15:20 -0600, Stephen Warren wrote:
> On 04/14/2015 08:59 AM, Stephen Warren wrote:
> > From: Stephen Warren <swarren@nvidia.com>
> >
> > On systems with caches enabled, NAND I/O may need to flush/invalidate
> > the cache during read/write operations. For this to work correctly, all
> > buffers must be cache-aligned. Fix nand_verify*() to allocate aligned
> > buffers.
> >
> > This prevents cache alignment warnings from being spewed when using
> > U-Boot to write an updated version of itself to flash on NVIDIA Tegra
> > Seaboard (after perturbation of stack/data layout in current
> > u-boot-dm/next branch).
> >
> > I have validatd (executed) nand_verify(), but I don't think I've executed
> > nand_verify_page_oob(); testing of that would be useful.
> >
> > Cc: Peter Tyser <ptyser@xes-inc.com>
> > Cc: Heiko Schocher <hs@denx.de>
> > Cc: Scott Wood <scottwood@freescale.com>
> > Fixes: 59b5a2ad83df ("nand: Add verification functions")
> > Signed-off-by: Stephen Warren <swarren@nvidia.com>
> > ---
> > v2: Use memalign() rather than ALLOC_CACHE_ALIGN_BUFFER() so that the
> > buffer is allocated from the heap not on the stack, to reduce stack
> > usage.
> 
> Scott, does this version look good?

Yes.  I'll apply it the next time I look at U-Boot patches, or if you
want it faster:

Acked-by: Scott Wood <scottwood@freescale.com>

-Scott

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2015-04-29 23:23 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-04-14 14:59 [U-Boot] [PATCH V2] nand: fix buffer alignment in new verification feature Stephen Warren
2015-04-14 22:45 ` Simon Glass
2015-04-29 21:20 ` Stephen Warren
2015-04-29 23:23   ` Scott Wood

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.