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.

[参考译文] TMS320C6655:存储器空间范围的 MSM ECC 检查。

Guru**** 2553450 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/618485/tms320c6655-msm-ecc-check-over-memory-space-range

器件型号:TMS320C6655

大家好、

客户在 C6655上启用 MSM ECC 检查。

数据表中0xc00000~0xc1fff 的 C6655 MSM 存储器。 但6655仅有1M MSM、因此数据表中应存在错误。 MSM 存储器应为0xc000000~0xc0fff。

客户还在0x0c137020、0x0c136820上找到了 ECC 错误报告。 超过1M 的空间!

为什么会发生这种情况?

我们是否有任何寄存器限制 ECC 检查范围0xc000000~0xc0ffff?

谢谢!

BR、
丹尼

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

    我已通知团队。 他们的反馈将在此处发布。

    此致、
    Yordan
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    你好、Denny's
    我查看了内部设计规格、并确认这似乎是数据表中的一个拼写错误。
    此器件上的 MSMC 存储器为1M、相关地址范围应为0x0C00 000至0x0c0F FFFF

    我将就此提交一份文档 TT。

    我将与软件团队核实是否有任何限制设置、以便 ECC 范围符合芯片内存映射等

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

    您好、Mukul、

    您对此问题是否有任何更新? 谢谢!

    BR、
    丹尼

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

    您好、Mukul、

    客户发现2个 ECC 错误发生间隔时间为350ms。 这是不正常的,客户希望业务部门帮助分析原因。 这可能是由于一个时间射线影响芯片2地址、但 由于 MSMC 刷新时间、中断报告间隔时间为350ms?

    谢谢。

    BR、
    丹尼

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

    您能否澄清上述陈述。
    客户是否仍然在保留部分看到 ECC 错误发生?

    当您说在350ms 内出现2个错误时-这是否始终如一地发生? 测试了多少个电路板、有多少电路板显示了此问题?

    他们是否将其暴露在任何光线中以测试 ECC?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Mukul、

    客户是否仍然在保留部分看到 ECC 错误发生?
    是的、地址为0x0c137020、0x0c136820。

    当您说在350ms 内出现2个错误时-这是否始终如一地发生?

    两个错误会逐个导致中断、间隔时间小于 350ms。  在350ms 内有一些创纪录的时间、因此它可能始终如一地发生。 我们不确定。

    测试了多少个电路板、有多少电路板显示了此问题?

    只有一个。 客户制造了数百块电路板、发现一个电路板记录了此日志。

    他们是否将其暴露在任何光线中以测试 ECC?

    否、这是常见用途。

    客户使用该方法通过识别地址

    errAddr = (gpMSMC_regs->SMCEA&0xFFFFFF)+0xc000000

    客户认为在太短的时间内发生2个 ECC 错误是不合理的。 并希望 TI 对此进行解释。

    BR、
    丹尼

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    你好、Denny's
    感谢您提供相关信息

    更多问题和信息请求

    1)他们能否共享 MSMC 寄存器转储等,以便我们查看 ECC 错误日志?
    2) 2)您说100块电路板中有1块显示了这一点-这块电路板是现场返回还是他们在内部测试中看到的东西? 是否所有电路板都接受相同的测试和软件?
    3) 3)如果主器件正在访问/读取此存储器,则应生成 ECC 错误-考虑到我们已确定此地址空间确实保留在器件存储器映射中,我们能否确保软件不会有意无意地访问此存储器区域, 一旦我们这么做,它是否仍然显示错误?
    4) 4)我正在检查此保留地址是否也会生成 CPU 总线错误(请查看核心 PAC 用户指南以了解总线错误寄存器) -您能否确认是否在客户软件中启用了总线错误中断和/或当他们看到故障时,总线错误寄存器的寄存器值是多少


    此致
    Mukul
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    丹尼
    关于#3、进一步的具体问题
    1.客户打算访问哪个地址? 它们是否尝试访问0x0c10000:0x0c1FFFFFFF 之间的保留空间、这两个地址在访问期间出现 ECC 错误?
    或者、当它们访问0x0c00000000:0x0c0FFFFFF 之间的合法 MSMC SRAM 空间时、会在下面报告的两个不相关地址上触发 ECC 错误?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Mukul、

    1、抱歉、当发生错误时、它们没有记录寄存器。 日志仅记录发生错误的时间。

    2、电路板是现场使用的。 所有电路板都使用相同的软件。

    3、我们可以确保软件没有访问保留空间。

    4、是、客户软件总线错误中断被启用。

    BR、

    丹尼

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    它是2。 当它们访问0x0c00000000:0x0c0FFFFFF 之间的合法 MSMC SRAM 空间时、会在两个不相关的地址上触发 ECC 错误
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    感谢 Denny's 的更新。
    为了进行调试、我们可能需要一些针对 corepac 和 MSMC 寄存器的错误日志/寄存器转储。

    问题是否容易重现,以便在再次失败时能够捕获相关的寄存器?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    根据内部讨论、还有一些后续问题

    请阐明您对访问常规 MSMC 存储器空间时从保留区域报告的 ECC 错误的观察:

    1.当客户代码在0x0c00000000:0x0c0FFFFFF 之间访问合法 SRAM 空间时,MSMC 以数据总线全0和 ECC 错误状态进行响应。 但日志寄存器根据其计算结果、保存的地址似乎不在合法区域内?
    2.当客户代码在0x0c00000000:0x0c0FFFFFF 之间访问合法 SRAM 空间时,MSMC 以正确的数据和成功状态进行响应。 但会触发一个两位错误中断、日志寄存器根据其计算结果保存的地址、该地址似乎不在合法区域内?

    如前所述、我们可能需要 MSMC 寄存器转储、但如果客户之前已捕获 SMCEA 寄存器内容、请共享。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    2、当客户代码在0x0c00000000:0x0c0FFFFFF 之间访问合法 SRAM 空间时、MSMC 以正确的数据和成功状态进行响应。 但会触发一个两位错误中断、日志寄存器根据其计算结果保存的地址、该地址似乎超出了合法区域。
    这是客户观察结果。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我分享日志、希望这能有所帮助。


    小部分 例外日志********

    日期:2017年3月14日,版本:1.01


    板 CPU 类型:TI C66X
    格式版本: 1.00

    |------------------------------- |
    ------ 最近一次异常信息------
    |------------------------------- |

    ********* 错误序号:2 *********

    异常发生于CORE0 μ A

    异常发生时间:2017年08月15日03时28分49秒817毫秒 μ A

    异常发生的中断服务程序:0x00000000
    --异常捕获于主循环

    异常原因:0x00000051
    -- core外部异常

    详细异常信息:μ A
    通过清理在地址0x0c137020处发生 SL2可纠正错误

    异常时相关寄存器内容:
    B3 = 0x00000000调用方的返回指针
    A4 = 0x00000000调用方的第一个输入参数
    B4 = 0x00000000调用方的第二个输入参数
    B14 = 0x00000000数据指针
    B15 = 0x00000000栈指针
    NTSR = 0x00000000 NMI/异常任务状态寄存器
    NRP = 0x00000000不可屏蔽中断返回指针寄存器
    EFR = 0x00000000异常标志寄存器
    ITSR = 0x00000000中断任务状态寄存器
    IRP = 0x00000000中断返回指针寄存器

    异常PC指针:0x00000000
    异常函数指针:0x8A0E7350
    ***** 异常 INF 结束********


    |------------------------------- |
    ------ 所有异常信息------
    |------------------------------- |
    异常存储信息共2条!

    ********* 错误序号:1个*********

    异常发生于CORE0 μ A

    异常发生时间:2017年08月15日03时28分49秒464毫秒 μ A

    异常发生的中断服务程序:0x00000000
    --异常捕获于主循环

    异常原因:0x00000051
    -- core外部异常

    详细异常信息:μ A
    通过清理在地址0x0c136820处发生 SL2可纠正错误

    异常时相关寄存器内容:
    B3 = 0x00000000调用方的返回指针
    A4 = 0x00000000调用方的第一个输入参数
    B4 = 0x00000000调用方的第二个输入参数
    B14 = 0x00000000数据指针
    B15 = 0x00000000栈指针
    NTSR = 0x00000000 NMI/异常任务状态寄存器
    NRP = 0x00000000不可屏蔽中断返回指针寄存器
    EFR = 0x00000000异常标志寄存器
    ITSR = 0x00000000中断任务状态寄存器
    IRP = 0x00000000中断返回指针寄存器

    异常PC指针:0x00000000
    异常函数指针:0x8A0E7350
    ***** 异常 INF 结束********


    ********* 错误序号:2 *********

    异常发生于CORE0 μ A

    异常发生时间:2017年08月15日03时28分49秒817毫秒 μ A

    异常发生的中断服务程序:0x00000000
    --异常捕获于主循环

    异常原因:0x00000051
    -- core外部异常

    详细异常信息:μ A
    通过清理在地址0x0c137020处发生 SL2可纠正错误

    异常时相关寄存器内容:
    B3 = 0x00000000调用方的返回指针
    A4 = 0x00000000调用方的第一个输入参数
    B4 = 0x00000000调用方的第二个输入参数
    B14 = 0x00000000数据指针
    B15 = 0x00000000栈指针
    NTSR = 0x00000000 NMI/异常任务状态寄存器
    NRP = 0x00000000不可屏蔽中断返回指针寄存器
    EFR = 0x00000000异常标志寄存器
    ITSR = 0x00000000中断任务状态寄存器
    IRP = 0x00000000中断返回指针寄存器

    异常PC指针:0x00000000
    异常函数指针:0x8A0E7350
    ***** 异常 INF 结束********
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    谢谢 Denny's。 此日志可能不够、下次出现故障时、我们可能需要 MSMC 寄存器转储。

    您是否还可以共享生成以下消息的程序代码

    >>详细异常信息:μ A
    通过清理在地址0x0c137020处发生 SL2可纠正错误