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.

[参考译文] RM57L843:自检文档

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/593927/rm57l843-self-test-documentation

器件型号:RM57L843
主题中讨论的其他器件:HALCOGEN

您好!

我已经编写了一些基于德州仪器 RM57安全包的自检、但是我正在寻找一些有关使用的隐藏寄存器的文档、并对它们进行自我测试

具体而言、以下行在 PBIST 自检中执行的操作:

/*这些寄存器都未记录*/
*(volatile uint32_t *) 0xFFFFFF400U = 0x4C000001U;
*(volatile uint32_t *) 0xFFFFFF440U = 0x00000075U;
*(volatile uint32_t *) 0xFFFFFF404U = 0x4C000002U;
*(volatile uint32_t *) 0xFFFFFF444U = 0x00000075U;
*(volatile UINT32_t *) 0xFFFFFF408U = 0x4C000003U;
*(volatile uint32_t *) 0xFFFFFFE448U = 0x00000075U;
*(volatile uint32_t *) 0xFFFFFF40CU = 0x4C000004U;
*(volatile uint32_t *) 0xFFFFFF44CU = 0x00000075U;
*(volatile uint32_t *) 0xFFFFFFE410U = 0x4C000005U;
*(volatile uint32_t *) 0xFFFFFF450U = 0x00000075U;
*(volatile uint32_t *) 0xFFFFFF414U = 0x4C000006U;
*(volatile uint32_t *) 0xFFFFFF454U = 0x00000075U;
*(volatile UINT32_t *) 0xFFFFFFE418U = 0x000000000000U;
*(volatile uint32_t *) 0xFFFFFF458U = 0x00000001U;

/*运行 PBIST*/

*(volatile uint32_t *) FFFFE56CU = 1;

使用的所有寄存器都是未记录的。 是否有这些健康测试的补充文档?

谢谢

Dmitri

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

    您好 Dmitri、

    您能否提供有关此代码所在位置的更多详细信息? 我无法在 SafeTI Diag Lib v2.3.1的文件中找到它。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    部分 pbistSelfCheck 方法目前未在 TMS570和 RM57安全手册中实现、但在安全手册7.134 PBIST 软件测试中被调用。 www.ti.com/.../spnu540a.pdf
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Dmitri、

    感谢您提供更多信息。 现在、我看到这来自 Halcogen 中某些器件提供的安全初始化例程。 请注意、RM57和 TMS570LC43xx 选项中未提供此功能、因为这些器件差别很大。 强烈建议使用以下链接中提供的 SafeTI 诊断库:

    我还要求 halcogen 的 SW 引线查看这一点、看看它们是否可以提供有关这些寄存器用途和使用的地址的更多信息。 从我的角度来看、该代码会在任何生产代码中造成问题、在任何与功能安全相关的代码中都是如此、因为 TI TRM 声明保留了偏移000h-15Ch 帧、并特别注意不要写入这些寄存器。

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

    你好、Chuck、

    该代码来自 RM48 Safe TI 库、寄存器也在器件数据表中列为保留:

      第7.5节.

    代码确实执行并进行了一些修改、并且看起来正在执行 PBIST 自检。

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

    您好 Dmitri、

    正确、这些是 TI 不希望向客户公开的内部寄存器写入。 但是、这些寄存器写入的目的是以自定义方式配置和执行 PBIST、从而准确快速地达到勘误表 PBIST#4权变措施。

    有关 勘误表 PBIST#4的说明、请参阅最新的器件勘误表文件 spnz214c.pdf。  

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

    对普拉特普拉斯的评论采取后续行动。 链接的勘误文档所适用的器件版本为器件版本 A。本勘误文档中指示的通报 PBIST#4已在器件版本 B 上修复。因此、在器件版本 B 上、无需执行 Prathap 指示的勘误工作

    然而、为了解决这些寄存器在您已经注意到的 PBIST 自检路由中的使用问题、这些寄存器被用来定义一个定制算法。 在这种情况下、为 PBIST 自检创建的自定义算法被设计成在 PBIST 上生成一个故障。 然后、该故障证明了 PBIST 模块能够在故障发生时向系统发出信号。 虽然这与安全手册中描述的实施略有不同、但它仍然符合诊断测试的精神。 从客户的角度来看、该寄存器写入序列可被视为黑盒、输出为 PBIST 故障。

    请注意、这与 PBIST 使用的任何其他基于 ROM 的算法的处理没有什么不同、除了能够在诊断库代码中看到这些寄存器写入的情况。 在 PBIST 的正常使用下、您可以将 PBIST 配置为使用特定的算法进行测试。 配置完成后、基于 ROM 的测试会将相同的寄存器配置为执行指定的算法、但该活动会作为 PBIST 实现和 PBIST ROM 的一部分"幕后"进行。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    谢谢 Chuck、Prathaps。

    将来是否会提供内置算法?

    谢谢、

    Dmitri

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

    目前没有计划改变 Hercules 系列中执行此操作的方式。 这将是一个新的芯片和新的 ROM 空间定义、需要对芯片设计进行全面的修改。 可能在后续器件中。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    谢谢、这回答了我的所有问题。