8/12/16-Bit Ecc Programming Guide (Decoding) - Samsung S5PC110 Manual

Risc microprocessor
Table of Contents

Advertisement

S5PC110_UM

4.3.10 8/12/16-BIT ECC PROGRAMMING GUIDE (DECODING)

1. To use 8/ 12/ 16-bit ECC in software mode, set the MsgLength(NFECCCONF[25:16] to 511(512-byte
message length) and the ECCType to "001/100/101"(enable 8/12/16-bit ECC, respectively). ECC module
generates ECC parity code for 512-byte read data. Therefore, you must reset ECC value by writing the
InitMECC (NFECCCONT[2]) bit as '1', and clear the MainECCLock(NFCONT[7]) bit to '0'(Unlock) before read
data.
2. Whenever data is read, the 8/12/16-bit ECC module generates ECC parity code internally.
3. After you complete reading 512-byte (not including spare area data), ensure to read the corresponding parity
codes. ECC module needs parity codes to detect whether error bits have occurred or not. Therefore, you have
to read ECC parity code immediately after reading 512-byte. After ECC parity code is read, the 8/12/16-bit
ECC engine searches for error internally. 8/12/16-bit ECC search engine needs minimum of 155 cycles to find
any errors. DecodeDone(NFECCSTAT[24]) can be used to check whether ECC decoding is completed or not.
4. When DecodeDone (NFECCSTAT[24]) is set ('1'), ECCError(NFECCSECSTAT[4:0]) indicates whether error
bit exists or not. If any error exists, you can fix it by referencing NFECCERL0~NFECCERL7 and NFECCERP0
~ NFECCERP3 registers.
5. If you have additional main data to read, continue the steps 1 ~ 4.
6. To check spare area data (meta data) error, the sequences are same (steps 1 ~ 4), except setting the
MsgLenght(NFECCCONF[25:16]) to the size that you want.
NOTE: You should set the ECC parity conversion codes to check free page error. For more information, refer to
refer to 4.3.11 .
4 NAND FLASH CONTROLLER
4-11

Hide quick links:

Advertisement

Table of Contents
loading

Table of Contents