• Join
  • Sign In with my.TI Login
Texas Instruments
  • Products
  • Applications
  • Tools & Software
  • Support & Community
  • Sample & Buy
  • About TI
Sample & Purchase Cart Sample & Purchase Cart
  • Search
  • Advanced
TI E2E™ Community
  • Support Forums
  • Blogs
  • Groups
  • Videos
  • 简体中文
  • More ...
TI Home » TI E2E Community » Support Forums » Digital Signal Processors (DSP) » C6000 Multicore DSP » Keystone Multicore Forum (C66, 66A, AM5) » NAND Flash and 8-bit ECC
Share
C6000 Multicore DSP
  • Forums
  • Announcements
Options
  • Subscribe via RSS
Training Available
TI provides self-paced online training that introduces the primary components of the KeyStone II family of SoC devices.

  • KeyStone II SoC Overview >
  • KeyStone II Software Overview >
  • KeyStone II ARM Cortex-A15 Corepac Overview >
  • More Information >
  • Check out
    Multicore Mix blog
    • $core_v2_blog.Current.Name

      It’s our second anniversary, but you get the present!

      Posted 5 days ago
      by Lindsey Bare
      It’s hard to believe it’s already been two years...
    • $core_v2_blog.Current.Name

      Limited time offer: Save $100 on Keystone-based EVM!

      Posted 18 days ago
      by tscheck
      Have you been thinking about ordering a TI Keystone-based EVM...
    • $core_v2_blog.Current.Name

      Imagine the impact…TI’s KeyStone SoC + HP Moonshot

      Posted 29 days ago
      by Sanjay35057
      Last week, market leader Hewlett Packard announced a huge change...

    NAND Flash and 8-bit ECC

    NAND Flash and 8-bit ECC

    This question is answered
    tianxing hou
    Posted by tianxing hou
    on Aug 03 2012 04:55 AM
    Intellectual990 points

    Hi,

    I want to connect a NAND Flash with the C66x DSP, and it may be use the 8-bit ECC.

    I want to know if you have the code of 8-bit ECC.

    I find in the web of http://processors.wiki.ti.com/index.php/Raw_NAND_ECC#What_is_required_to_support_4b.2F8b_ECC_NAND_devices.3F. I find the OMAP device support 8-bit ECC in software.

    Thank you,

    Tianxing

    8-bit ECC NAND Flash
    Report Abuse
    • Reply
    You have posted to a forum that requires a moderator to approve posts before they are publicly available.
    All Replies
    • Aditya
      Posted by Aditya
      on Aug 06 2012 15:23 PM
      Expert3345 points

      C66x devices only support 1-bit and 4-bit hardware ECC detection. Note that using NAND that requires 8-bit ECC with 4-bit hardware ECC could have negative consequences, including boot failure.

      If you must use 8-bit ECC enabled NAND, you need to use a software ECC algorithm like Reed-Solomon Code or BCH code (more efficient than RS code). These are very well documented algorithms and you should be able to find the code very easily on the Web.

      In any case, here is a good app note from Micron that talks about hardware and s/w ECC solutions: http://www.micron.com/~/media/Documents/Products/Software%20Article/SWNL_implementing_ecc.pdf

      Apparently they also provide software ECC drivers for their NAND products: http://www.micron.com/~/media/Documents/Products/Technical%20Note/NAND%20Flash/tn2962_large_page_NAND_drivers.pdf

      This should be a good start. Let me know if you have any questions.

      Regards,

      Aditya

      Report Abuse
      • Reply
      You have posted to a forum that requires a moderator to approve posts before they are publicly available.
    • tianxing hou
      Posted by tianxing hou
      on Aug 07 2012 05:09 AM
      Intellectual990 points

      Hi Aditya,

      Thank you for your reply, it is useful for us.

      I can't find the source code of 8-bit ECC algorithm on the web, could you give me some advices.

      Thank you,

      Tianxing

      Report Abuse
      • Reply
      You have posted to a forum that requires a moderator to approve posts before they are publicly available.
    • Aditya
      Posted by Aditya
      on Aug 07 2012 15:01 PM
      Expert3345 points

      Tianxing,

      I am trying to find something for you that we might have developed internally.

      Regards,

      Aditya

      Report Abuse
      • Reply
      You have posted to a forum that requires a moderator to approve posts before they are publicly available.
    • Aditya
      Posted by Aditya
      on Aug 08 2012 09:04 AM
      Expert3345 points

      Tianxing,

      At this time, we only have an internal test for 1-bit s/w ECC but that defeats the purpose since we already support 1-bit and 4-bit hardware ECC. I can try to find something useful for you online. In the meantime if you do come across something, please post it on this thread so that it will help the forum as a whole.

      Regards,

      Aditya

      Report Abuse
      • Reply
      You have posted to a forum that requires a moderator to approve posts before they are publicly available.
    • tianxing hou
      Posted by tianxing hou
      on Aug 08 2012 20:17 PM
      Verified Answer
      Verified by tianxing hou
      Intellectual990 points

      Hi Aditya,

      Thank you for your work to find the ECC algorithm for us.

      Now, I found a 8-bit (or more bit) ECC algorithm on the web http://comments.gmane.org/gmane.linux.drivers.mtd/33552

      It is a batch of Linux for the 1-bit software BCH ECC algorithm, and now it support 1-bit, 4-bit, 8-bit and more. And the author of code provide a benchmark in his PC as follow:

      Test CPU: Intel(R) Core(TM) i5 CPU 650  @ 3.20GHz
      AECT = Average software encoding + correction time
      WECT = Worst software encoding + correction time
      AT   = Average data throughput
      page size = 512 bytes
      
      BCH: 4-bit correction, using BCH_CONST_PARAMS=y, BCH_CONST_M=13, BCH_CONST_T=4
      Errors   AECT (µs)   WECT (µs)  AT (Mbit/s)
      -------------------------------------------
      0        0.690042    0.831818   5935
      1        0.998295    1.08354    4102
      2        1.05392     1.15312    3886
      3        1.58135     1.68057    2590
      4        1.64079     1.76482    2496
      
      
      BCH: 8-bit correction, using BCH_CONST_PARAMS=y, BCH_CONST_M=13, BCH_CONST_T=8
      Errors   AECT (µs)   WECT (µs)  AT (Mbit/s)
      -------------------------------------------
      0        1.77351     1.82228    2309
      1        2.76681     3.05114    1480
      2        2.88904     3.40575    1417
      3        3.39914     3.68515    1205
      4        3.60047     4.26807    1137
      5        5.27063     7.72297    777
      6        6.36246     10.5239    643
      7        7.74478     12.136     528
      8        9.33835     16.4703    438
      Now, I am finishing the code, if you have some advices for it,  please tell me.
      
      
      Regards,
      Tianxing
      Report Abuse
      • Reply
      You have posted to a forum that requires a moderator to approve posts before they are publicly available.
    • Aditya
      Posted by Aditya
      on Aug 08 2012 21:24 PM
      Expert3345 points

      Tianxing,

      Thanks for posting this information. We will definitely look into leveraging this internally as well. I do not want to ask you to go out of your way here, but could you please  post similar benchmark results if possible when you have implemented it on the DSP?

      Regards,

      Aditya

      Report Abuse
      • Reply
      You have posted to a forum that requires a moderator to approve posts before they are publicly available.
    • tianxing hou
      Posted by tianxing hou
      on Aug 08 2012 23:41 PM
      Intellectual990 points

      Hi Aditya,

      I will post benchmark results when I implemented it on the DSP that would be some weeks later. 

      Regards,

      Tianxing

      Report Abuse
      • Reply
      You have posted to a forum that requires a moderator to approve posts before they are publicly available.
    • tianxing hou
      Posted by tianxing hou
      on Aug 15 2012 22:24 PM
      Intellectual990 points

      Hi Aditya,

      I tested the performance of writing the NAND Flash on the board TMS320C6678EVM, however I found the speed is slowly at 800kB/s, the page write will consume 600 us. The datasheet provide the type value is 200us.

      The datasheet of chip as follow:

      5327.NAND512R3A2DZA6.rar

      Did you have tested that? Would you give me some advices about that.

      Regards,

      Tianxing 

      Report Abuse
      • Reply
      You have posted to a forum that requires a moderator to approve posts before they are publicly available.
    • Mahendra varman
      Posted by Mahendra varman
      on Sep 11 2012 09:33 AM
      Intellectual405 points

      Hi Tianxing

      Did you modified the IBL code and nand writer routines to support your nand flash ?

      I have used in my design Nand flash (MT29F1G08ABBDAHC-IT) in x16 EMIF mode with 6678.

      Can you please help me in which files of IBL i need to modify to support my nand flash.. ?

      Thanks

      Report Abuse
      • Reply
      You have posted to a forum that requires a moderator to approve posts before they are publicly available.
    • tianxing hou
      Posted by tianxing hou
      on Sep 12 2012 03:15 AM
      Intellectual990 points

      Hi Mahendra,

      I am sorry I can't help you.

      I did't modify the IBL code, I only try to execute the ECC algorithm.

      Regards,

      Tianxing 

      Report Abuse
      • Reply
      You have posted to a forum that requires a moderator to approve posts before they are publicly available.
    • Mahendra varman
      Posted by Mahendra varman
      on Sep 12 2012 05:22 AM
      Intellectual405 points

      Hi Tianxing,

      Thanks for your reply.

      We have used 128MB Micron Nand flash connected to EMIF of C6678.

      I gone through the MCSDK and now understood that I surely need to modify the NAND WRITER Utility to suite my nand.

      My Doubt is Whether, the default IBL will support NAND READ for my 128MB nand flash ? ( Because If IBL supports nand read for all nand flash then I need not want to modify IBL for booting purpose, just modify nand writer , write to my nand and start booting)

      Please suggest

      Report Abuse
      • Reply
      You have posted to a forum that requires a moderator to approve posts before they are publicly available.
    TI E2E™ Community
    • Support Forums
    • Blogs
    • Videos
    • Groups
    • Site Support & Feedback
    • Settings
    TI E2E™ Community Groups
    • TI University Program
    • Make the Switch
    • Microcontroller Projects
    • Motor Drive & Control
    Other Communities
    • Deyisupport
    • Designsomething.org
    • beagleboard.org
    • TI on Element 14
    • TI on TechXchangeSM
    Other Technical & Support Resources
    • WEBENCH® Design Center
    • Product Information Centers
    • Technical Documents
    • TI Design Network
    • TI Technical Articles
    • TI Training

    All content and materials on this site are provided "as is". TI and its respective suppliers and providers of content make no representations about the suitability of these materials for any purpose and disclaim all warranties and conditions with regard to these materials, including but not limited to all implied warranties and conditions of merchantability, fitness for a particular purpose, title and non-infringement of any third party intellectual property right. TI and its respective suppliers and providers of content make no representations about the suitability of these materials for any purpose and disclaim all warranties and conditions with respect to these materials. No license, either express or implied, by estoppel or otherwise, is granted by TI. Use of the information on this site may require a license from a third party, or a license from TI.

    Content on this site may contain or be subject to specific guidelines or limitations on use. All postings and use of the content on this site are subject to the Terms of Use of the site; third parties using this content agree to abide by any limitations or guidelines and to comply with the Terms of Use of this site. TI, its suppliers and providers of content reserve the right to make corrections, deletions, modifications, enhancements, improvements and other changes to the content and materials, its products, programs and services at any time or to move or discontinue any content, products, programs, or services without notice.

    Follow Us Texas Instruments on Facebook Texas Instruments on Twitter Texas Instruments on LinkedIn Texas Instruments on Google+
    TI Worldwide | Contact Us | my.TI Login | Site Map | Corporate Citizenship | mobile m.ti.com (Mobile Version)

    TI is a global semiconductor design and manufacturing company. Innovate with 100,000+ analog ICs and
    embedded processors, along with software, tools and the industry’s largest sales/support staff.

    © Copyright 1995-2013 Texas Instruments Incorporated. All rights reserved.
    Trademarks | Privacy Policy | Terms of Use