This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Hardware ECC for NAND

Hi,

I am working on  NAND flash MT29F2G16ABAEA for DM8148EVM. I have interfaced it successfully using my own proprietary software. I have also written 4 bit  software based BCH ECC and ran it successfully.

Now I want to add on the die 4 bit internal ECC support of MT29F2G16ABAEA.From documentation of MT29F2G16ABAEA,it seems that it is simple but when I tried to add it,it is not working for me. I have used set feature command to enable hardware internal ECC,just after reset of the flash. Can any one has used this feature of MT29F2G16ABAEA? Can any one help me?

Thanks in advance

BR

Jam

  • Is there a particular reason why you're not using the hardware BCH-8 implementation provided by GPMC and ELM?  Especially since this would provide the ability to correct 8 bits per 2112-byte page instead of only 4 bits with the internal ECC, and there will be a significant performance penalty to using the internal ECC since the page cache commands are not supported when internal ECC is enabled.

  • Matthijs van Duin said:
    per 2112-byte page

    Sorry, I meant per 512+spare bytes sector of course.

  • Hi ,

    Thanks for reply..Actually using GPMC is also another option but GPMC case is much difficult and also software overhead would be there as GPMC does not perform complete ECC itself. So I would like to offload ECC to hardware of NAND flash completely.

    Thanks

    Jam

  • Jam,

    Please see if the below link will be in help:

    http://e2e.ti.com/support/dsp/davinci_digital_media_processors/f/100/t/124464.aspx

    BR
    Pavel

  • Jam Akh said:
    GPMC case is much difficult and also software overhead would be there as GPMC does not perform complete ECC itself.

    I'm not sure what you mean by that: all that software needs to do is program the desired layout of the spare area into GPMC's very flexible ECC calculator and you can write a page in a single pass (obtaining the ECC bytes directly from the GPMC, which means that if you're using EDMA then you can even let it handle that), and aftering reading a page and its spare bytes software checks whether the ECC bytes in the GPMC calculator are nonzero, and if so copy-pastes them into ELM to have it figure out which bits need to be corrected.