NAND: Add nand read.raw and write.raw commands
PATCH 1/1 NAND: Add nand read.raw and write.raw commands
These commands should work around various "hardware" ECC and BCH methods. This is important for example in case where the user needs to write precisely what's in a buffer to a NAND page, with no interference of hardware ECC engine or such.
--- common/cmd_nand.c | 14 ++++++++++++++ 1 files changed, 14 insertions(+), 0 deletions(-)
common/cmd_nand.c +14 -0
@@ -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 ;
Signature · 1 line
1.7.5.4
PATCH 1/1 NAND: Add nand read.raw and write.raw commands
Dear Marek,
Quoted 3 lines · Marek Vasut
These commands should work around various "hardware" ECC and BCH methods. This is important for example in case where the user needs to write precisely what's in a buffer to a NAND page, with no interference of hardware ECC engine or such.
I think I don't get it :)
Where is the problem with writing this stuff to NAND now? If the ECC interferes there was a problem with the NAND Flash therefore the data is corrupted.
Regards
Simon
PATCH 1/1 NAND: Add nand read.raw and write.raw commands
Quoted 8 lines · Simon Schwarz
Dear Marek,
Quoted 4 lines · Marek Vasut
These commands should work around various "hardware" ECC and BCH methods. This is important for example in case where the user needs to write precisely what's in a buffer to a NAND page, with no interference of hardware ECC engine or such.
Quoted 5 lines
I think I don't get it :)
Where is the problem with writing this stuff to NAND now? If the ECC interferes there was a problem with the NAND Flash therefore the data is corrupted.
It's not an issue with data corruption. For example in my case, if nand_write_skip_bad() is called, HW ECC writes the ECC information in various places in the page. But if done this way, exactly what's in the buffer is written to the page.
Cheers
Quoted 3 lines
Regards
Simon
PATCH 1/1 NAND: Add nand read.raw and write.raw commands
Quoted 11 lines · Marek Vasut
Quoted 10 lines · Simon Schwarz
Dear Marek,
Quoted 4 lines · Marek Vasut
These commands should work around various "hardware" ECC and BCH methods. This is important for example in case where the user needs to write precisely what's in a buffer to a NAND page, with no interference of hardware ECC engine or such.
I think I don't get it :)
Quoted 8 lines
Quoted 3 lines
Where is the problem with writing this stuff to NAND now? If the ECC interferes there was a problem with the NAND Flash therefore the data is corrupted.
It's not an issue with data corruption. For example in my case, if
nand_write_skip_bad()is called, HW ECC writes the ECC information in various places in the page. But if done this way, exactly what's in the buffer is written to the page.
But isn't then the HW ECC misconfigured? AFAIK ECC information should be written only to the OOB never into the normal page.
I'am really not sure if I understand the patch - it seems to me that you are writing/reading the oob while this collides with the description that you want to write data. Could you explain further what exactly the patch is supposed to do?
Regards
Simon
PATCH 1/1 NAND: Add nand read.raw and write.raw commands
Dear Simon Schwarz,
Quoted 8 lines · In message <[email protected]> you wrote:
But isn't then the HW ECC misconfigured? AFAIK ECC information should be written only to the OOB never into the normal page.
I'am really not sure if I understand the patch - it seems to me that you are writing/reading the oob while this collides with the description that you want to write data. Could you explain further what exactly the patch is supposed to do?
There are some SoCs with quite funny requiremnts regarding the organization of NAND they expect for their ROM boot loader. The Freescale (or rather SigmaTel) i.MX28 is one of them.
I think Marek needs this feature to format the NAND in such a way that booting from NAND works on i.MX28
Best regards,
Wolfgang Denk
Signature · 5 lines
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
The inappropriate cannot be beautiful.
- Frank Lloyd Wright _The Future of Architecture_ (1953)