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.

[参考译文] AM625SIP:AM-625-SIP-SK 上的 ECC 问题

Guru**** 2893300 points

Other Parts Discussed in Thread: SYSCONFIG

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1640296/am625sip-issues-with-ecc-on-am-625-sip-sk

器件型号: AM625SIP
主题: SysConfig 中讨论的其他器件

来自客户:

 

 

大家好、我一直在尝试让 AM-625-SIP-SK 开发板上的 ECC 正常运行几天、但没有取得什么成功。

 

下面简要介绍了我正在执行的操作以及我检查/尝试的操作:

  • 我将 OP-TEE 从 9E80 移至 9A80(删除了尾随零,地址为十六进制)
    • 在 U-Boot 中使用 MD 观察到 OP-TEE 正在加载到正确的地址
    • 我无法在 9E80 及以上查看内存、也许这是由于内存防火墙、但是我尝试在 binman 文件中更改区域、但它没有任何效果、每当读取该地址时、仍然会出现恐慌、但是当从 9A80 读取到 9C00 时、就像我预期的那样、不会出现恐慌
  • 我将 R5F DMA 区域从 9DB0 移动到 99B0、我假设这是成功的、不确定如何进行测试
  • 我在 9E78 至 9A78 移动了一个未知区域(我假定与 OP-TEE 相关)。 除了器件树中的其他任何地方都没有提到该区域、我检查了整个 OP-TEE、ATF 和 U-Boot 源代码、并且在任何地方都看不到调用它的地方。 我还检查了分解的输出我们的二进制 blob ,没有看到它的实例。 这个区域是什么?它的用途是什么?
  • 添加了一个从 9C00 到 A000 的保留 ECC 区域、并按照 TRM 中所述通过在 DDRSS_ECC_R0_STR/END_ADDR_REG 上运行 MD 验证了 ECC 区域
  • 上述更改已反映在 A53 U-Boot、A53 binman、R5 U-Boot、R5 binman 和 Linux 设备树中(我创建了一个包含在这些构建中的通用设备树,从而消除此处出现人为错误的可能性)
  • 我还通过检查我验证过的反汇编输出二进制文件使用了正确的地址、将 ARM 可信固件中的 BL32_BASE 和 OP-TEE 中的 CFG_TZDRAM_START 设置为新地址
  • 观察到 R5 U-Boot SPL 中启用 ECC 的打印输出
  • 观察到的无错误 BL31 和 OP-TEE 初始化输出
  • 引导至 Linux、所有 Linux 内核映像和设备树都在 9000 和 9800 之间加载(我们有一个小内核)
  • 在 Linux 中无法初始化 CPU 内核时、OP-TEE 会报告错误–19
  • 在 platform_probe 函数期间、无法使用 resp 中的“Mailbox timedout“初始化 ti-sci 驱动程序
  • 关闭 ECC 时、系统启动正常–因此我相信 ECC 正在遮蔽一些东西!

希望这些信息对您有所帮助! 非常感谢任何想法/建议/示例!