From: William Juul <william.juul@tandberg.com>
To: u-boot@lists.denx.de
Subject: [U-Boot-Users] [PATCH] NAND update 2
Date: Fri, 21 Dec 2007 10:15:33 +0100 [thread overview]
Message-ID: <476B8435.60902@tandberg.com> (raw)
Make nand dump and nand dump.oob work again.
This is a small update to the patch series I sent earlier
and must be applied on top of those patches.
Signed-off-by: William Juul <william.juul@tandberg.com>
Signed-off-by: Stig Olsen <stig.olsen@tandberg.com>
----
Have anyone tried/looked at the patch series?
On our git server http://git.tandberg.com/tandberg/u-boot.git, I have
updated the branch mtd-update to be based on v1.3.1 and I have also
made a mtd-update-1.3.1 branch. These two branches now contain the patch
included in this email.
I have also put an updated patch on our git http server:
http://git.tandberg.com/tandberg/patches/mtd-update.patch
This patch is a diff between my mtd-update-1.3.1 branch and v1.3.1 tag.
Best regards
William
diff --git a/common/cmd_nand.c b/common/cmd_nand.c
index bb1accd..a3ea1db 100644
--- a/common/cmd_nand.c
+++ b/common/cmd_nand.c
@@ -40,37 +40,44 @@ int find_dev_and_part(const char *id, struct mtd_device **dev,
extern nand_info_t nand_info[]; /* info for NAND chips */
-static int nand_dump_oob(nand_info_t *nand, ulong off)
-{
- return 0;
-}
-
-static int nand_dump(nand_info_t *nand, ulong off)
+static int nand_dump(nand_info_t *nand, ulong off, int only_oob)
{
int i;
- u_char *buf, *p;
+ u_char *datbuf, *oobbuf, *p;
- buf = malloc(nand->writesize + nand->oobsize);
- if (!buf) {
+ datbuf = malloc(nand->writesize + nand->oobsize);
+ oobbuf = malloc(nand->oobsize);
+ if (!datbuf || !oobbuf) {
puts("No memory for page buffer\n");
return 1;
}
off &= ~(nand->writesize - 1);
size_t dummy;
loff_t addr = (loff_t) off;
- i = nand->read(nand, addr, nand->writesize, &dummy, buf);
+ 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.len = nand->writesize;
+ ops.ooblen = nand->oobsize;
+ ops.mode = MTD_OOB_RAW;
+ i = nand->read_oob(nand, addr, &ops);
if (i < 0) {
printf("Error (%d) reading page %08x\n", i, off);
- free(buf);
+ free(datbuf);
+ free(oobbuf);
return 1;
}
printf("Page %08x dump:\n", off);
- i = nand->writesize >> 4; p = buf;
+ i = nand->writesize >> 4;
+ p = datbuf;
while (i--) {
- printf( "\t%02x %02x %02x %02x %02x %02x %02x %02x"
- " %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], p[9], p[10], p[11], p[12], p[13], p[14], p[15]);
+ if (!only_oob) {
+ printf( "\t%02x %02x %02x %02x %02x %02x %02x %02x"
+ " %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], p[9], p[10], p[11], p[12], p[13], p[14], p[15]);
+ }
p += 16;
}
puts("OOB:\n");
@@ -80,7 +87,8 @@ static int nand_dump(nand_info_t *nand, ulong off)
p[0], p[1], p[2], p[3], p[4], p[5], p[6], p[7]);
p += 8;
}
- free(buf);
+ free(datbuf);
+ free(oobbuf);
return 0;
}
@@ -304,9 +312,9 @@ int do_nand(cmd_tbl_t * cmdtp, int flag, int argc, char *argv[])
off = (int)simple_strtoul(argv[2], NULL, 16);
if (s != NULL && strcmp(s, ".oob") == 0)
- ret = nand_dump_oob(nand, off);
+ ret = nand_dump(nand, off, 1);
else
- ret = nand_dump(nand, off);
+ ret = nand_dump(nand, off, 0);
return ret == 0 ? 1 : 0;
next reply other threads:[~2007-12-21 9:15 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-12-21 9:15 William Juul [this message]
2008-01-04 14:21 ` [U-Boot-Users] [PATCH] NAND update 2 Stefan Roese
2008-01-04 14:40 ` William Juul
2008-01-04 16:16 ` Stefan Roese
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=476B8435.60902@tandberg.com \
--to=william.juul@tandberg.com \
--cc=u-boot@lists.denx.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.