From: Scott Wood <scottwood@freescale.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH 2/5 V2] NAND: Add nand read.raw and write.raw commands
Date: Thu, 22 Sep 2011 11:03:43 -0500 [thread overview]
Message-ID: <4E7B5C5F.6030904@freescale.com> (raw)
In-Reply-To: <1316656529-8252-1-git-send-email-marek.vasut@gmail.com>
On 09/21/2011 08:55 PM, Marek Vasut wrote:
> These commands should work around various "hardware" ECC and BCH methods.
>
> Signed-off-by: Marek Vasut <marek.vasut@gmail.com>
> Cc: Scott Wood <scottwood@freescale.com>
> Cc: Stefano Babic <sbabic@denx.de>
> Cc: Wolfgang Denk <wd@denx.de>
> Cc: Detlev Zundel <dzu@denx.de>
> ---
> common/cmd_nand.c | 19 +++++++++++++++++--
> doc/README.nand | 9 +++++++++
> 2 files changed, 26 insertions(+), 2 deletions(-)
>
> V2: Add documentation.
>
> diff --git a/common/cmd_nand.c b/common/cmd_nand.c
> index 66e06a5..72d418c 100644
> --- a/common/cmd_nand.c
> +++ b/common/cmd_nand.c
> @@ -606,6 +606,20 @@ int do_nand(cmd_tbl_t * cmdtp, int flag, int argc, char * const argv[])
> ret = nand->read_oob(nand, off, &ops);
> else
> ret = nand->write_oob(nand, off, &ops);
> + } else if (!strcmp(s, ".raw")) {
> + /* Raw access */
> + mtd_oob_ops_t ops = {
> + .datbuf = (u8 *)addr,
> + .oobbuf = ((u8 *)addr) + nand->writesize,
> + .len = nand->writesize,
> + .ooblen = nand->oobsize,
> + .mode = MTD_OOB_RAW
> + };
> +
> + if (read)
> + ret = nand->read_oob(nand, off, &ops);
> + else
> + ret = nand->write_oob(nand, off, &ops);
> } else {
> printf("Unknown nand command suffix '%s'.\n", s);
> return 1;
> @@ -695,10 +709,11 @@ U_BOOT_CMD(
> "NAND sub-system",
> "info - show available NAND devices\n"
> "nand device [dev] - show or set current device\n"
> - "nand read - addr off|partition size\n"
> - "nand write - addr off|partition size\n"
> + "nand read[.raw] - addr off|partition size\n"
> + "nand write[.raw] - addr off|partition size\n"
> " read/write 'size' bytes starting at offset 'off'\n"
> " to/from memory address 'addr', skipping bad blocks.\n"
> + " Use read.raw/write.raw to avoid ECC and write the block as-is.\n"
This says that .raw takes a size parameter, but you assume one page instead.
> diff --git a/doc/README.nand b/doc/README.nand
> index 751b693..084223a 100644
> --- a/doc/README.nand
> +++ b/doc/README.nand
> @@ -94,6 +94,15 @@ Commands:
> of data for one 512-byte page or 2 256-byte pages. There is no check
> for bad blocks.
>
> + nand read.raw addr ofs|partition size
> + Read `size' bytes from `ofs' in NAND flash to `addr'. This reads the raw
> + block, so ECC is avoided and the OOB area is read as well.
> +
> + nand write.raw addr ofs|partition size
> + Write `size' bytes from `addr' to `ofs' in NAND flash. This writes the raw
> + block, so ECC is avoided and the OOB area is written as well, making the
> + whole block written as-is.
The current implementation reads/writes a page, not a block, and not
'size' bytes.
Should mention that the OOB is expected to immediately follow the main
area in memory.
-Scott
next prev parent reply other threads:[~2011-09-22 16:03 UTC|newest]
Thread overview: 59+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-09-12 4:04 [U-Boot] [PATCH 0/5 V2] Random NAND fixes and improvements Marek Vasut
2011-09-12 4:04 ` [U-Boot] [PATCH 1/5] NAND: Really ignore bad blocks when scrubbing Marek Vasut
2011-09-27 18:54 ` Scott Wood
2011-09-12 4:04 ` [U-Boot] [PATCH 2/5] NAND: Add nand read.raw and write.raw commands Marek Vasut
2011-09-21 18:48 ` Scott Wood
2011-09-22 1:55 ` [U-Boot] [PATCH 2/5 V2] " Marek Vasut
2011-09-22 16:03 ` Scott Wood [this message]
2011-09-22 18:36 ` [U-Boot] [PATCH 2/5 V3] " Marek Vasut
2011-09-22 18:40 ` Scott Wood
2011-09-23 13:43 ` [U-Boot] [PATCH 2/5 V4] " Marek Vasut
2011-09-27 18:57 ` Scott Wood
2011-09-12 4:04 ` [U-Boot] [PATCH 3/5] NAND: Allow per-buffer allocation Marek Vasut
2011-09-21 18:50 ` Scott Wood
2011-09-21 19:49 ` Wolfgang Denk
2011-09-21 19:55 ` Scott Wood
2011-09-21 20:16 ` Wolfgang Denk
2011-09-22 1:34 ` Marek Vasut
2011-09-22 7:41 ` Stefano Babic
2011-09-22 8:51 ` Marek Vasut
2011-09-23 17:35 ` Scott Wood
2011-09-24 12:37 ` Marek Vasut
2011-09-26 18:33 ` Scott Wood
2011-09-26 18:49 ` Marek Vasut
2011-09-12 4:04 ` [U-Boot] [PATCH 4/5] NAND: Make page, erase, oob size available via cmd_nand Marek Vasut
2011-09-21 18:55 ` Scott Wood
2011-09-21 19:52 ` Wolfgang Denk
2011-09-22 1:57 ` [U-Boot] [PATCH 4/5 V2] " Marek Vasut
2011-09-27 19:01 ` Scott Wood
2011-09-27 19:38 ` Marek Vasut
2011-09-27 19:51 ` Scott Wood
2011-09-27 20:07 ` Marek Vasut
2011-09-27 20:53 ` Scott Wood
2011-09-27 21:04 ` Marek Vasut
2011-09-27 21:14 ` Scott Wood
2011-09-12 4:04 ` [U-Boot] [PATCH 5/5] NAND: Add scrub.quiet command option Marek Vasut
2011-09-12 16:45 ` Mike Frysinger
2011-09-12 17:45 ` Marek Vasut
2011-09-12 18:06 ` Scott Wood
2011-09-12 18:24 ` Marek Vasut
2011-09-12 18:31 ` Scott Wood
2011-09-12 18:36 ` Marek Vasut
2011-09-12 19:19 ` Scott Wood
2011-09-12 19:28 ` Marek Vasut
2011-09-12 19:36 ` Scott Wood
2011-09-12 19:42 ` Marek Vasut
2011-09-12 23:24 ` Scott Wood
2011-09-13 1:02 ` Marek Vasut
2011-09-13 4:25 ` Wolfgang Denk
2011-09-13 4:36 ` Marek Vasut
2011-09-13 22:22 ` Scott Wood
2011-09-13 22:41 ` Marek Vasut
2011-09-13 22:53 ` Scott Wood
2011-09-12 18:37 ` Wolfgang Denk
2011-09-12 18:50 ` Marek Vasut
2011-09-12 20:33 ` Mike Frysinger
2011-09-12 22:59 ` Marek Vasut
2011-09-13 22:20 ` [U-Boot] [PATCH 5/5] NAND: Add -y option to nand scrub command Marek Vasut
2011-09-13 22:28 ` Mike Frysinger
2011-09-27 19:03 ` Scott Wood
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=4E7B5C5F.6030904@freescale.com \
--to=scottwood@freescale.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.