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.

[参考译文] AM1808:NAND 闪存状态寄存器的相关问题[ECC_ERRNUM]

Guru**** 2578945 points
Other Parts Discussed in Thread: AM1808

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/588247/am1808-question-about-nand-flash-status-register-ecc_errnum

器件型号:AM1808

您好、查姆斯、

我对 NAND 闪存状态寄存器[ECC_ERRNUM]有疑问。

如果这些位被置位、这意味着失败的位数、对吧?

我看到 TRM SPRUH82C   P.914

0:发现1个错误。
1:发现2个错误。
2:发现3个错误。
3:发现4个错误。

如果原始数据为0xF0。 然后、数据在错误时变为0xFF。
ECC_ERRNUM 位是否设置为0x3h?

我把它弄糊涂了...

我认为以下内容是正确的。

0:未找到错误。
1:找到1个错误。
2:发现2个错误。
3:发现3个错误。

请告诉我。

如果我们有、您能否向我发送有关[具有4位错误控制的 NAND 闪存读/写]的采样 S/W。

此致、
新吉宇田  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    循环 RTOS 团队详细讨论4位错误控制。 在 Linux 内核和 u-boot 中、我们使用:
    3字节 ECC、适用于256/512字节
    eccsize 字节块的1位错误

    此致、
    Yordan
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    请参阅串行引导和闪存工具中提供的 NAND 驱动程序和 NAND 闪存写入器代码:
    processors.wiki.ti.com/.../Serial_Boot_and_Flash_Loading_Utility_for_OMAP-L138

    这些也适用于 AM1808。 您还可以参考 NAND 驱动程序的 uboot 代码来检查错误检查机制。

    此致、
    Rahul
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Sirs、
    我正在和 Ueda 先生一起研究这个问题。

    让我再问一个问题。
    问:[ECC_ERRNUM]位定义中的“N:M 错误找到”的单位是什么? 它看起来不像#个错误位。 或者,在测试读取期间,它将是#个失败的字节? 我无法从 AM1808 TRM - SPRUH82C 中理解它。

    让我分享一下客户测试的结果。
    作为一个错误注入、一个被测试的字节被有意地从0xFF 修改为0xF0。 因此、位[ECC_ERRNUM]读取1。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Sirs、
    非常感谢您今天的答复。 谢谢你。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Sirs、
    请原谅我的提醒。 从一开始就有一个星期了。 我可以要求更快的回复吗?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

     

    非常感谢你的帮助。

    我们可以从客户那里获得有关此问题的更多详细信息。

     -它们测试的字节被有意地从0xFF 修改为0xF0。

     -其测试结果显示"ECC_ERRNUM=0 (找到1个错误)、更正后的数据=0xFF"。

     他们还知道" EMIFA 接口中采用的4位 ECC 是一个 Reed-Solomon 错误校正代码。"

        来自 TRM:SPRUH82C (19.2.5.6.6.2 4位 ECC)。

     

    那么、我们的理解如下:

     - 0xF0的4位 ERRr 更正为0xFF。

     - ECC_ERRNUM=0 (发现1个错误)表示"根据  Reed–Solomon 错误 校正算法发现1个符号错误"。

     

    这种理解是否正确?

     

    此致、

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    很抱歉耽误你的重新喷涂。 您是否了解了 NAND 驱动程序的软件实现、它根据我指向的封装进行 ECC 校正。 请参阅软件包中的 device_nand.c.c 文件。

    e2e.ti.com/.../device_5F00_nand.c

    EMIF IP 将 NAND 的每一页分为512字节(页数据)。 当从 NAND 页面读取并校正 NAND ECC 时、请参阅函数 DEVICE_NAND_ECC_READ 和 DEVICE_NAND_ECC_correct 中的实现。 它 检查 NAND4BITECC#寄存器是否存在错误、然后使用 FCR 寄存器启动校正机制。 ECC_STATE 指示是否发生错误、而"ECC_ERRNUM"域 FSR 寄存器指示发生了多少位错误。 有关完整序列,请参阅 TRM 中的第(20.2.5.6.6.2 4位 ECC)节。

    请确认客户正在使用相同的机制。 如果遵循相同的序列并且4位被翻转、那么机制应该能够校正它、并且 ECC 状态应该指示没有错误、因为 EMIF IP 最多校正4位错误。 n`t ECC 状态为0、1或>3、则 ECC_ERRNUM 值无关。 在您的用例中、由于使用了4个位、ECC_STATE 将为2或3、因此应使用 ERRNUM 值来确定错误数并指示错误数。

    您能否提供错误的引发方式以及这些错误的位置。

    此致、

    Rahul

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    非常感谢你的帮助。

    我们的客户向我们发送了如下附加信息:
    (ECC_State 似乎为0x3。)

    NANDFSR            :0x00000303
    NANDERRADD1   :0x0000001D
    NANDERRADD2   :0x00000000
    NANDERRVAL1   :0x0000000F
    NANDERRVAL2   :0x00000000

    再说一次、我们的理解是否正确?
     - 0xF0的4位 ERRr 更正为0xFF。
     - ECC_ERRNUM=0 (发现1个错误)表示"根据  Reed–Solomon 错误 校正算法发现1个符号错误"。

    此致、
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Rahul

    对此有什么意见吗?

    我们能否按如下方式回答客户?
    - 0xF0的4位 ERRr 更正为0xFF。
    - ECC_ERRNUM=0 (发现1个错误)表示"根据 Reed–Solomon 错误校正算法发现1个符号错误"。

    此致、