• 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 » OMAP™ Applications Processors » OMAP 4 Forum » OMAP4430 ELM
Share
OMAP™ Applications Processors
  • Forums
Options
  • Subscribe via RSS

Forums

OMAP4430 ELM

This question is answered
Fabrizio D'Amato1
Posted by Fabrizio D'Amato1
on Jul 20 2012 08:48 AM
Prodigy80 points

Hi All,

I'm trying to enable ELM module under linux, to make that it will work together with GPMC ECC engine.

Do you have some applicatione notes that explain better how interconnect gpmc and elm ?

 

Thanks a lot,

Fabrizio

 

 

omap4 omap GPMC elm
Report Abuse
  • Reply
You have posted to a forum that requires a moderator to approve posts before they are publicly available.
All Replies
  • Magdalena Iovescu
    Posted by Magdalena Iovescu
    on Jul 20 2012 15:39 PM
    Intellectual2480 points

    Hello Fabrizio,

    We are not familiar with ELM. Is that a memory chip? Also, what processor are you looking to use?

     

    Please click the Verify Answer button on this post if it answers your question

    _____________________________________________

    Be sure to read the OMAP4 and OMAP5 Forum Guidelines and FAQ

    Report Abuse
    • Reply
    You have posted to a forum that requires a moderator to approve posts before they are publicly available.
  • Fabrizio D'Amato1
    Posted by Fabrizio D'Amato1
    on Jul 23 2012 03:24 AM
    Prodigy80 points

    Hi Magdalena,

    ELM stands for Error Location module. It is in OMAP4 processor, and it is needed for the location of ECC error.

    Thanks,

    Fabrizio

     

    Report Abuse
    • Reply
    You have posted to a forum that requires a moderator to approve posts before they are publicly available.
  • Gina Glaser
    Posted by Gina Glaser
    on Jul 23 2012 09:29 AM
    Expert8055 points

    Fabrizio,

    Please see Chapter 15 in the OMAP4 TRM for information about using ELM in conjunction with the GPMC.  The public TRMs can be accessed here: http://www.ti.com/general/docs/wtbu/wtbudocumentcenter.tsp?templateId=6123&navigationId=12037#65

    Regards,
    Gina 

    Please click the Verify Answer button on this post if it answers your question

    _______________________________________________________

    Be sure to read the OMAP4 and OMAP5 Forum Guidelines and FAQ 

    Report Abuse
    • Reply
    You have posted to a forum that requires a moderator to approve posts before they are publicly available.
  • Vince Yee
    Posted by Vince Yee
    on Jul 25 2012 00:50 AM
    Prodigy110 points

    Hi Gina, 

    I am working on the same issue as Fabrizio.  The TRM is a bit confuse.  Where is the syndrome polynomial stored?  This is from page 3289, or 15.5.4.2

    "After reading a 528-byte NAND flash sector (512B data plus 16B spare area) with a 16-bit
    interface, a non-zero polynomial syndrome is reported from the GPMC (Polynomial syndrome 0 is used in
    the ELM):
    • P = 0x0A16ABE115E44F767BFB0D0980"

    Where is the P value stored in the GPMC?  Is this value automatically sent to the ELM?  If so, how come there are the ELM_SYNDROME_FRAGMENT_0-6 registers that need to be filled in?  

    Is that value stored in the BCH_RESULTS_0-6?  If so, the TRM is unclear.  

    This is why we post questions on forums as that information is not in the TRM.  

    If you are going to refer someone to the TRM, please be more specific, each chapter is hundreds of pages.

    thanks,

    Vincent

    Report Abuse
    • Reply
    You have posted to a forum that requires a moderator to approve posts before they are publicly available.
  • Gina Glaser
    Posted by Gina Glaser
    on Jul 25 2012 14:39 PM
    Expert8055 points

    Hi Vincent,

    Now that I have specific questions from you, I am discussing with our expert in this area and will let you know.

    Regards,
    Gina 

    Please click the Verify Answer button on this post if it answers your question

    _______________________________________________________

    Be sure to read the OMAP4 and OMAP5 Forum Guidelines and FAQ 

    Report Abuse
    • Reply
    You have posted to a forum that requires a moderator to approve posts before they are publicly available.
  • Vince Yee
    Posted by Vince Yee
    on Jul 25 2012 19:29 PM
    Prodigy110 points

    Thanks Gina,

    We would like to use as much of the hardware as possible. 

    Report Abuse
    • Reply
    You have posted to a forum that requires a moderator to approve posts before they are publicly available.
  • Gina Glaser
    Posted by Gina Glaser
    on Aug 02 2012 08:09 AM
    Verified Answer
    Verified by Magdalena Iovescu
    Expert8055 points

    Vincent,

    Here is a full description of how the ELM error correction works with GPMC.  I believe this should answer your questions.

    During writes, the internal GPMC ECC engine computes a polynomial remainder. When all of the necessary data have been written to the memory, the user should read this remainder from the GPMC_BCH_RESULT_x. Not all results registers need to be read. The 4-bit error correction level only requires 52 bits / 13 nibbles, which can be found in GPMC_BCH_RESULT_0 (bits [31:0]), and the LSB of GPMC_BCH_RESULT_1 (bits [51:32]). Similarly, 8-bit correction uses registers GPMC_BCH_RESULT_0, GPMC_BCH_RESULT_1, GPMC_BCH_RESULT_2, and GPMC_BCH_RESULT_3. 16-bit correction uses all GPMC_BCH_RESULT_x. This remainder information should now be written into the page spare area.

    When reading back the page from the memory, the same computation happens until you have exhausted all data. At that point, and if no error has been detected, the information in the GPMC_BCH_RESULT_x registers will be the same as when you finished your data writes. If at least one bit was in error, the register values will be different – most probably vastly different. You should now read the remainder from the page spare area. If there was no error, those reads will zero out the result registers. If any of the GPMC_BCH_RESULT_x registers is still not zero at that point, at least one error was detected. This is when the ELM is required. 

    The ELM abstracts the error location steps. The GPMC_BCH_RESULT_x registers should be copied to the ELM_SYNDROME_FRAGMENT_x registers in the exact same order. Note that the ELM contexts, i.e. every set of ELM_SYNDROME_FRAGMENT_x registers, is GPMC-agnostic, and any available one may be used at any time to initiate a computation. This does not depend on the CS the memory was connected to, for instance. Once all ELM_SYNDROME_FRAGMENT_x registers are ready, the ELM logic kicks in, and will give you both an information on the number of errors detected, and on the address within the page of each error. Software is now responsible for correcting each and every significant bit in error. If an error is detected in the remainder itself – this is a possible scenario – then the user can simply ignore this one.

    Regards,
    Gina

    Please click the Verify Answer button on this post if it answers your question

    _______________________________________________________

    Be sure to read the OMAP4 and OMAP5 Forum Guidelines and FAQ 

    Report Abuse
    • Reply
    You have posted to a forum that requires a moderator to approve posts before they are publicly available.
  • Vince Yee
    Posted by Vince Yee
    on Aug 02 2012 11:03 AM
    Prodigy110 points

    Thanks Gina!  also, i cannot see a "verify answer" button on any post.

    Report Abuse
    • Reply
    You have posted to a forum that requires a moderator to approve posts before they are publicly available.
  • Magdalena Iovescu
    Posted by Magdalena Iovescu
    on Aug 02 2012 11:47 AM
    Verified Answer
    Verified by Fabrizio D'Amato1
    Intellectual2480 points

    Hello Vince,

    You can see a 'verify' button only for threads you start. On this thread, you are not the original poster. So it would be great if Fabrizio can help by verifying.

    Thank you,

    Magdalena

     

    Please click the Verify Answer button on this post if it answers your question

    _____________________________________________

    Be sure to read the OMAP4 and OMAP5 Forum Guidelines and FAQ

    Report Abuse
    • Reply
    You have posted to a forum that requires a moderator to approve posts before they are publicly available.
  • Fabrizio D'Amato1
    Posted by Fabrizio D'Amato1
    on Aug 20 2012 04:30 AM
    Prodigy80 points

    Hi Magdalana,

    Thanks for your answer. I was out and I couldn't verify it. I will provide to follow your suggestion as soon as possible.

    Sorry not to do that until now.

    Best Regards,

    Fabrizio

     

    Report Abuse
    • Reply
    You have posted to a forum that requires a moderator to approve posts before they are publicly available.
  • Fabrizio D'Amato1
    Posted by Fabrizio D'Amato1
    on Aug 24 2012 09:24 AM
    Prodigy80 points

    Hi Magdalena,

    I'm trying to use ELM but I got an issue that I will report you soon after that I do the following assumptions:

                   1. I'm using the module in 8 bit ecc error correction mode.

                   2. I'm reading from the NAND in step of 512 byte.

                   3. I'm using the prefetch with IRQ mode

                   4. I'm using ELM in contiunuos mode

     

    The issue is the following:

    Once I read a block of 512 byte from the NAND I get the syndrome from GPMC and I'll fed ELM_SYNDROME_FRAGMENT registers with the same values. Further I'll enable the calculation (setting up SYNDROME_VALID bit) but even if ELM_IRQ_STATUS (LOC_VALID) is 1 the ECC_CORRECTABLE bit ECC_NB_ERRORS bit field are both 0.

    I can't figure this out. If ECC_NB_ERRORS bit field is 0 it means that It has not found any error so why ECC_CORRECTABLE bit won't go high ?

    Best Regards,

    Fabrizio

     

     

     

     

     

     

     

    omap4 elm ecc
    Report Abuse
    • Reply
    You have posted to a forum that requires a moderator to approve posts before they are publicly available.
  • Renjith Thomas
    Posted by Renjith Thomas
    on Aug 26 2012 05:48 AM
    Guru23890 points

    Fabrizio,

    Could you please send me the following files to renjith.thomas@pathpartnertech.com? Also could you please let me know the Linux kernel version that you are using?

    1. arch/arm/mach-omap2/board-omap4xxx.c or your corresponding board file. 
    2. arch/arm/mach-omap2/board-flash.c
    3. arch/arm/mach-omap2/gpmc.c
    4. drivers/mtd/nand/nand_base.c
    5. drivers/mtd/nand/omap2.c

    -Renjith | www.pathpartnertech.com | Verify the answer if you think your query is resolved

    Report Abuse
    • Reply
    You have posted to a forum that requires a moderator to approve posts before they are publicly available.
  • Fabrizio D'Amato1
    Posted by Fabrizio D'Amato1
    on Aug 27 2012 03:20 AM
    Prodigy80 points

    Hi Renjith,

    I'm really sorry but I can't share this code because the access is internal at my company.

    Best Regards,

    Fabrizio

     

     

    Report Abuse
    • Reply
    You have posted to a forum that requires a moderator to approve posts before they are publicly available.
  • Gina Glaser
    Posted by Gina Glaser
    on Sep 04 2012 15:09 PM
    Verified Answer
    Verified by Fabrizio D'Amato1
    Expert8055 points

    Fabrizio,

    Sorry for the delay.  ECC_CORRECTABLE = 0x0 indicates that the ECC error-location process failed.  Thus, the 0 value for ECC_NB_ERRORS cannot be trusted.  This could be an issue in your software.  Does the NAND block read complete successfully?

    Regards,
    Gina 

    Please click the Verify Answer button on this post if it answers your question

    _______________________________________________________

    Be sure to read the OMAP4 and OMAP5 Forum Guidelines and FAQ 

    Report Abuse
    • Reply
    You have posted to a forum that requires a moderator to approve posts before they are publicly available.
  • Fabrizio D'Amato1
    Posted by Fabrizio D'Amato1
    on Sep 05 2012 03:24 AM
    Prodigy80 points

    Hi Gina,

    Don't worry for the delay. I had solved my issue. I put the wrong values on the ELM registers. Right now all it seems to work correctly. I've enabled ELM and tested it as well.

    Thanks a lot for your help,

    Fabrizio

     

    ELM ecc omap4
    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