[U-Boot-Users] [PATCH] nand: Make 'nand dump.oob' actually work

Jason McMullan mcmullan at netapp.com
Tue Jul 1 19:48:22 CEST 2008


Currently, "nand dump.oob" is a no-op.

This commit makes it functional.

Signed-off-by: Jason McMullan <mcmullan at netapp.com>
---
 common/cmd_nand.c |   27 +++++++++++++++++++++++++++
 1 files changed, 27 insertions(+), 0 deletions(-)

diff --git a/common/cmd_nand.c b/common/cmd_nand.c
index 37198d2..f85ef09 100644
--- a/common/cmd_nand.c
+++ b/common/cmd_nand.c
@@ -39,6 +39,33 @@ int find_dev_and_part(const char *id, struct mtd_device **dev,
 
 static int nand_dump_oob(nand_info_t *nand, ulong off)
 {
+	int i;
+	size_t read_bytes;
+	u_char *buf, *p;
+
+	buf = malloc(nand->oobsize);
+	if (!buf) {
+		puts("No memory for oob buffer\n");
+		return 1;
+	}
+	off &= ~(nand->oobblock - 1);
+	i = nand->read_oob(nand, off, nand->oobsize, &read_bytes, buf);
+	if (i < 0) {
+		printf("Error (%d) reading page %08x\n", i, off);
+		free(buf);
+		return 1;
+	}
+	printf("Page %08x OOB:\n", off);
+	i = nand->oobsize >> 3;
+	p = buf;
+	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]);
+		p += 8;
+	}
+	free(buf);
+
+
 	return 0;
 }
 
-- 
1.5.4.3





More information about the U-Boot mailing list