Good afternoon!
As short description:
- the dev board is LCDK
- C6748_StarterWare_1_20_04_01
-compiling example - /C6748_StarterWare_1_20_04_01/examples/lcdkC6748/nand
Lets look at example output
************* StarterWare NAND Application ************
****************** NAND DEVICE INFO ******************
MANUFACTURER ID : 0x2C
DEVICE ID : 0xCC
PAGESIZE : 2048 Bytes
BLK SIZE : 131072 Bytes
PAGES PER BLOCK : 64
******************************************************
Please Enter The Block Number(0 - 4095) 10
Please Enter The Page Start Page Number(0 - 63) 0
Please Enter The Number Of Pages To Write 1
Erasing The Block 10 : Succeeded.
Writing To Page 0 Of Block 10 : Succeeded.
Reading From Page 0 Of Block 10 : Succeeded./S-S/ /T-T/ /A-A/ /R-R/ /T-T/ /E-E/ /R-R/ /W-W/ /A-A/ /R-R/ /E-E/
NAND Data Integrity Test : Passed
******************************************************
Block Is Bad, Can't Continue ...!!!
A little modification at the end of this file by adding one more check for bad blocks
retVal = NANDBadBlockCheck ( &nandInfo, blkNum );
UARTprintf("NANDBadBlockCheck(). rc=%01d",retVal);
if ( retVal == NAND_BLOCK_BAD )
{
UARTPuts ( "\r\n Block Is Bad, Can't Continue ...!!! ",-1 );
while ( 1 );
}
If the application writes any data from page 2 to 62, everything is good.
The question is, when any data writes to any blocks at page 0 or 1 entire block becomes bad, so why it happens and how to fix it?
Thanks in advance!
WBR,
Dmitriy.