The basic concepts of Flash and MTD point

Recommended for you: Get network issues from WhatsUp Gold. Not end users.
The following reference to www.linux-mtd.infradead.org and mtd-utils code:
1)Minimum flash I/O unit:
NOR is generally 1byte, sometimes also can be 1bit;
NAND is 1page;
2)nand flash sub-pages:
General SLC Nand and SLC OneNAND subpage, But generally speaking, writing subpage will slow, Can refer to www.linux-mtd.infradead.org/doc/ubi.htm, So in reality, will use the page to operate, In the UBI FTL(Flash Translation Layer, UBI based on MTD sub-page for UBI header)., In order to reduce the overhead of UBI Header,
In NAND, a page using a ECC to correct a bit flip or inspection is a bad block, with sub-page, a sub-page can use a ECC
3)Learned from the mtd-utils, in the operation of MTD equipment, read and write failed to produce EIO errno, so if the bad block, no opportunity to make you succeed (write returns -1),
Some of the code in the write erase block and then read back erase block, See the write data is correct, This is not necessary, The write erase block returns a successful but write error probability data are extremely small, Within the mtd-utils is ignored in this case, He produced when using the bad block approach is to first check errno, Then determine whether to EIO and related function interpretation is really bad, The libmtd is used in the mtd_torture(), If errno is not EIO decided that the entire program operation failed flash, Exit the program.
Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download

Posted by Anastasia at January 02, 2014 - 2:28 AM