Article was already bookmarked.
When programming large page size NAND with a small page size data format, it may be required by the customer that factory bad block marker locations be written with non-FFh data. Several device manufacturers write non-FFh data to factory bad blocks during the manufacturing process at the factory. Hence the additional requirement to write non-FFh data to the block in any location is not necessary.
Specifications that use large page NAND device with small page programming generally specify that device manufacturers must scratch or zero-out bad blocks from the factory to meet customer requirements.
BPWin and Nand Options can be used to determine if this is indeed necessary
Enable Capture Bad Blocks during Read & Compare under NAND options and read a device from the factory that has bad blocks (the bad blocks are listed in the BPWin output window). Convert the decimal bad block value into an actual address in the Buffer and check if it is 00h or non-FFh data? If so, then the concern from the customer is not relevant as the factory bad blocks are already non-FFh.
Consider a device with bad block at block 456 (which is a decimal block address). The equivalent 8-bit Buffer address is 3AC8000h.
The read result is shown below as being all 00h data at 3AC8000h.
Do not confuse the bad block marker with an actual bad block. Remember as well that all locations in the part are just a portion of the memory array.
Even though there is a defined bad block marker per the device specification customer application implementation may relocate that marker to another location in the block. If this relocation occurs then the bad block marker location is modified, and subsequent operations in BPWin will need the Bad Block Marker Offset under Nand Options to list the relocated bad block marker address. This relocated address is now used to perform the bad block check.
If the new BBMarker Offset address is not specified, BPWin will use the default values under NAND options, resulting in the device failing for too many bad blocks.