Patchwork [U-Boot] cmd_nand.c: Fix 'nand dump' after latest MTD resync

login
register
mail settings
Submitter Tom Rini
Date Feb. 23, 2012, 10:47 p.m.
Message ID <1330037266-25737-1-git-send-email-trini@ti.com>
Download mbox | patch
Permalink /patch/142724/
State Accepted
Commit cfdae12f37ad126d1198f6c1ffa4ada9e69dd206
Delegated to: Scott Wood
Headers show

Comments

Tom Rini - Feb. 23, 2012, 10:47 p.m.
With 2a8e0fc nand_do_read_ops changed in behavior slightly (keeping in sync
with the kernel which did this change in b64d39d8) such that the OOB data is
always copied into oobbuf and never appended to datbuf.  Within U-Boot only
the nand_dump function (for the dump nand subcommand) was expecting the OOB
data to only be appended to datbuf.  So we now change nand_dump to not
malloc extra space, correct the comment about datbuf and OOB data and switch
the pointer to oobbuf before printing.

Cc: Scott Wood <scottwood@freescale.com>
Signed-off-by: Tom Rini <trini@ti.com>
---
 common/cmd_nand.c |    5 +++--
 1 files changed, 3 insertions(+), 2 deletions(-)
Tom Rini - Feb. 24, 2012, 12:55 a.m.
On Thu, Feb 23, 2012 at 3:47 PM, Tom Rini <trini@ti.com> wrote:
> With 2a8e0fc nand_do_read_ops changed in behavior slightly (keeping in sync
> with the kernel which did this change in b64d39d8) such that the OOB data is
> always copied into oobbuf and never appended to datbuf.  Within U-Boot only
> the nand_dump function (for the dump nand subcommand) was expecting the OOB
> data to only be appended to datbuf.  So we now change nand_dump to not
> malloc extra space, correct the comment about datbuf and OOB data and switch
> the pointer to oobbuf before printing.

bah, sorry for the dupe, git send-email lied.
Scott Wood - Feb. 28, 2012, 8:56 p.m.
On 02/23/2012 04:47 PM, Tom Rini wrote:
> With 2a8e0fc nand_do_read_ops changed in behavior slightly (keeping in sync
> with the kernel which did this change in b64d39d8) such that the OOB data is
> always copied into oobbuf and never appended to datbuf.  Within U-Boot only
> the nand_dump function (for the dump nand subcommand) was expecting the OOB
> data to only be appended to datbuf.  So we now change nand_dump to not
> malloc extra space, correct the comment about datbuf and OOB data and switch
> the pointer to oobbuf before printing.
> 
> Cc: Scott Wood <scottwood@freescale.com>
> Signed-off-by: Tom Rini <trini@ti.com>
> ---
>  common/cmd_nand.c |    5 +++--
>  1 files changed, 3 insertions(+), 2 deletions(-)

Applied to u-boot-nand-flash

-Scott

Patch

diff --git a/common/cmd_nand.c b/common/cmd_nand.c
index 3e2edb8..fa96a52 100644
--- a/common/cmd_nand.c
+++ b/common/cmd_nand.c
@@ -48,7 +48,7 @@  static int nand_dump(nand_info_t *nand, ulong off, int only_oob, int repeat)
 
 	last = off;
 
-	datbuf = malloc(nand->writesize + nand->oobsize);
+	datbuf = malloc(nand->writesize);
 	oobbuf = malloc(nand->oobsize);
 	if (!datbuf || !oobbuf) {
 		puts("No memory for page buffer\n");
@@ -59,7 +59,7 @@  static int nand_dump(nand_info_t *nand, ulong off, int only_oob, int repeat)
 	struct mtd_oob_ops ops;
 	memset(&ops, 0, sizeof(ops));
 	ops.datbuf = datbuf;
-	ops.oobbuf = oobbuf; /* must exist, but oob data will be appended to ops.datbuf */
+	ops.oobbuf = oobbuf;
 	ops.len = nand->writesize;
 	ops.ooblen = nand->oobsize;
 	ops.mode = MTD_OOB_RAW;
@@ -85,6 +85,7 @@  static int nand_dump(nand_info_t *nand, ulong off, int only_oob, int repeat)
 	}
 	puts("OOB:\n");
 	i = nand->oobsize >> 3;
+	p = oobbuf;
 	while (i--) {
 		printf("\t%02x %02x %02x %02x %02x %02x %02x %02x\n",
 		       p[0], p[1], p[2], p[3], p[4], p[5], p[6], p[7]);