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.

[参考译文] AM263P4:RBL 中的 AM263P4 ECC

Guru**** 2798555 points

Other Parts Discussed in Thread: AM263P4, AM2634

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1618884/am263p4-am263p4-ecc-in-rbl

器件型号: AM263P4
主题中讨论的其他器件: AM2634

您好、

我对 TCM 和 OCSRAM ECC 有一些问题。  

OCSRAM

似乎根据 AM263P4 寄存器附录默认启用了 OCSRAM 的 ECC、其中 ECC Enable、Check 和 RMW 字段的复位值为 1。 这是正确的吗? 我感到困惑的原因是、在以下 https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1448339/am2634-ecc-on-ocram-ocram-enabled-by-default 中、提到 AM2634 默认不启用 OCSRAM ECC、AM2634 具有与 AM263P4 相同的 ECC 聚合器寄存器定义。
RBL 完全初始化 OCSRAM 组 0 和 1。 由于 ECC OCSRAM 默认启用、因此将正确设置组 0 和组 1 的所有错误校正码。  检测到 2 位 OCSRAM ECC 错误时、RBL 将执行什么操作? 它是否仍会将控制权传递给 SBL?

TCM

与 OCSRAM 不同、TCM ECC 应通过软件启用。 RBL 代码是否在 ATCM 和 BTCM 上启用 ECC?  
如果答案为否、如果在使用 RBL 的 TCM 区域发生 1/2 位错误、该怎么办? 这不是安全问题、因为在 RBL 执行期间、我们可能容易发生 SEU 吗?

如果答案是肯定的、那么在检测到 2 位 TCM ECC 错误时、RBL 将执行什么操作? 它是否仍会将控制权传递给 SBL?

通用

SDK ECC 代码示例对每个名为“Stride"的“的 RAM 使用一个属性、它是否表示用于生成单个纠错码的字节数?  

谢谢、

Pouya

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

    尊敬的 Pouya:

    对延迟的回复表示歉意!

    似乎根据 AM263P4 寄存器附录默认启用 OCSRAM 的 ECC、其中 ECC Enable、Check 和 RMW 字段的复位值为 1。 这是正确的吗?

    您启用了正确的 ECC、默认情况下会为此器件启用校验位。

    检测 2 位 OCSRAM ECC 错误时、RBL 将执行什么操作? 它是否仍会将控制权传递给 SBL

    实际上、RBL 不会执行任何与 ECC 相关的验证。 但它将对 L2RAM、TCMA 和 TCMB 进行 PBIST 验证。 如果这些存储器中有任何实际的存储器错误、相应的 PBIST 验证将立即失败、如果发生这种情况、那么它不会调用 SBL。 RBL 将卡在无限循环中而不馈送看门狗、因此经过特定的超时后、该看门狗将复位器件、但 RBL 引导过程将再次开始、并且此过程是连续的。

    --
    此致、
    Jagadish。

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

    尊敬的 Jagadish:

    感谢您的答复。

    因此 、RBL 不会检查 OCSRAM 上是否存在任何 ECC 错误、也不会在 TCMA 和 TCMB 上启用 ECC。 这意味着、如果 RBL 使用的 TCMA/TCMB 存储器位置上的 SEU 导致一位或双位翻转、或者 RBL 使用的 OCSRAM 存储器位置中的双位翻转、则 RBL 将最终使用翻转的位。 这不是安全问题、因为代码使用的是损坏的数据吗? 我认为 PBIST 无法检测由于 SEU 导致的意外位翻转。

    谢谢、

    Pouya

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

    尊敬的 Pouya:

    对延迟的回复表示歉意!

    你的理解是完全正确的。

    RBL 在 L2RAM 和 TCM 存储器上运行 PBIST。 如果 PBIST 失败、RBL 不会跳转到 SBL 进入无限循环、不会提供看门狗服务。 看门狗将复位器件并重复。

    RBL 不会为 L2RAM 和 TCM 存储器启用 ECC 错误。

    您的顾虑:

    这意味着、如果 RBL 在使用的 TCMA/TCMB 存储器位置上由于 SEU 而导致单位或双位翻转、或者 RBL 在 OCSRAM 存储器位置中发生双位 翻转、则 RBL 将最终占用已翻转的位。 这不会是安全问题、因为代码正在使用损坏的数据

    是的、理论上可以。

    但是、根据我的理解、由于以下原因、它不被视为安全违规。

    SEU 通常是随机运行时位翻转。 PBIST 是结构测试、用于检测卡滞/耦合/解码器故障。 然而、PBIST 不是运行时安全机制

    RBL 运行很短的持续时间。

    RBL 在安全功能处于活动状态之前执行。

    不输出任何安全相关信号。

    它无法控制安全状态、无法控制任何输出执行器。

    由于上述原因、我认为这不是违反安全规定的行为。

    --
    此致、
    Jagadish。