Keil Logo

RL-ARM: Using on-board NAND flash devices with FlashFS

Information in this knowledgebase article applies to:

  • MDK-ARM v4.60


fformat() returns "fail", when I run it on my NAND flash device.


(see below)


1.) Ensure that NAND driver is working correctly. Driver is simple, it performs raw page read, write and block erase operations. If driver is verified to work, then next point is:

2.) If hardware ECC is used, then NAND page data layout must be properly organized, as described in the manual page "NAND Page Data Layout". When hardware ECC is configured to place ECC bytes beyond 5th byte in spare, data layout does not need to be changed since default will be used.

3.) For the development purposed switch /LOW_EB is implemented. The difference between /LOW and /LOW_EB is, that second one erases all good and also all bad blocks. Erasing bad blocks in NAND is not forbidden but it is not recommended. During development customers have often problems, because driver which is not yet working well, marks blocks as bad - this often happens on block 0, which must not be marked as bad, because we write some boot information in it. Therefore during development I advise customers to use fformat ("/LOW_EB") and for final version fformat ("/LOW");


NAND Page Data Layout

Last Reviewed: Thursday, October 18, 2012

Did this article provide the answer you needed?
Not Sure
  Arm logo
Important information

This site uses cookies to store information on your computer. By continuing to use our site, you consent to our cookies.

Change Settings

Privacy Policy Update

Arm’s Privacy Policy has been updated. By continuing to use our site, you consent to Arm’s Privacy Policy. Please review our Privacy Policy to learn more about our collection, use and transfers
of your data.