Samsung S3C6400X User Manual page 170

Table of Contents

Advertisement

S3C6400X RISC MICROPROCESSOR
SLC ECC PROGRAMMING GUIDE
1) To use SLC ECC in software mode, reset the ECCType to '0' (enable SLC ECC)'. ECC module
generates ECC parity code for all read / write data when MainECCLock (NFCON[7]) and SpareECCLock
(NFCON[6]) are unlocked('0'). You must reset ECC value by writing the InitMECC (NFCONT[5]) and
InitSECC (NFCON[4]) bit as '1' and have to clear the MainECCLock (NFCONT[7]) bit to '0'(Unlock)
before read or write data.
MainECCLock (NFCONT[7]) and SpareECCLock(NFCONT[6]) bit controls whether ECC Parity code is
generated or not.
2) Whenever data is read or written, the ECC module generates ECC parity code on register NFMECC0/1.
3) After you complete read or write one page (does not include spare area data), Set the MainECCLock bit
to '1' (Lock). ECC Parity code is locked and the value of the ECC status register will not be changed.
4) To generate spare area ECC parity code, Clear as '0' (Unlock) SpareECCLock (NFCONT[6]) bit.
5) Whenever data is read or written, the spare area ECC module generates ECC parity code on register
NFSECC.
6) After you complete read or write spare area, set the SpareECCLock bit to '1' (Lock). ECC Parity code is
locked and the value of the ECC status register will not be changed.
7) From now on, you can use these values to record to the spare area or check the bit error.
8) For example, to check the bit error of main data area on page read operation, after generating of ECC
codes for main data area, you have to move the ECC parity codes (is stored to spare area) to
NFMECCD0 and NFMECCD1. From this time, the NFECCERR0 and NFECCERR1 have the valid error
status values.
NOTE: NFSECCD is for ECC in the spare area (Usually, the user will write the ECC value generated from
main data area to Spare area, which value will be the same as NFMECC0/1) and which is generated from the
main data area.
MLC ECC PROGRAMMING GUIDE (ENCODING)
1) To use MLC ECC in software mode, set the MsgLength to 0(512-byte message length) and set the
ECCType to '1'(enable MLC ECC). ECC module generates ECC parity code for 512-byte write data. So,
you have to reset ECC value by writing the InitMECC (NFCONT[5]) bit as '1' and have to clear the
MainECCLock (NFCONT[7]) bit to '0'(Unlock) before write data.
MainECCLock (NFCONT[7]) bit controls whether ECC Parity code is generated or not.
2) Whenever data is written, the MLC ECC module generates ECC parity code internally.
3) After you finish writing 512-byte data (not include spare area data), the parity codes are automatically
updated to NFMECC0, NFMECC1 register. If you use 512-byte NAND flash memory, you can program
these values to spare area. However, if you use NAND flash memory more than 512-byte page, you can't
program immediately. In this case, you have to copy these parity codes to other memory like DRAM.
After writing all main data, you can write the copied ECC values to spare area.
The parity codes have self-correctable information include parity code itself.
4) To generate spare area ECC parity code, set the MsgLength to 1(24-byte message length), and set the
Preliminary product information describe products that are in development,
for which full characterization data and associated errata are not yet available.
Specifications and information herein are subject to change without notice.
NAND FLASH CONTROLLER
8-9

Advertisement

Table of Contents
loading

Table of Contents