NOTE: This document is a work in progress. Some areas may not yet be complete.
This online application note provides a possible approach to production burning of NAND FLASH devices for use with the LPC32x0 boot ROM for boot from FLASH. By production burning, the intention is to burn the boot images in NAND FLASH prior to the FLASH device being placed on the production board.
To do this, the production burn process needs to take into consideration the following aspects of the LPC32x0, the NAND devices, and the software expected to operate on the LPC32x0.
* New NAND devices may contain factory marked bad blocks that vary per device in location and quantity
* The LPC32x0 has 2 NAND controllers - SLC and MLC - and each has different ECC algorithm, storage, and layout requirements
* The MLC data and ECC location is non-changeable
* The SLC data and ECC location is configurable
* The MLC data and ECC requirements will overwrite factory bad block markers
* The LPC32x0 can boot from NAND with only a MLC data/ECC formatted page
* The LCP32x0 can boot from NAND with a maximum size of a single block minus 1 page, or 56K. For small block devices, this means 15.5K max boot size, while large block devices can boot 56K.
* Operating systems such as Linux usually slice up NAND into partitions. Depending on bad block location, the storage of data in these partitions in specific NAND blocks may vary per device/system
* Some extra space in a partition needs to be allocated for bad blocks
* Some Operating Systems require the spare data area to be configured also (MTD OOB data area in Linux for JFFS2)