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.

[参考译文] TMS320TCI6614:在 Keystone 上启用 DDR3 ECC

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/627408/tms320tci6614-enabling-ddr3-ecc-on-keystone

器件型号:TMS320TCI6614

您好!

我正在尝试在 Keystone I 产品上启用 DDR ECC。

例如、我希望 ECC 保护 RAM 的最小区域(区域0x8000000000 - 0x80010000)。 我要向 ECCADDR1 (0x21000114)寄存器写入0x00010000。 ECCCTL (0x21000110)将获得0xc0000001 (启用 ECC、启用区域、启用区域1)。 这是在 DDR3调平之前的 U-Boot 过程中完成的(以确保 ECC 通道正确调平)。

然后、我将读取一个不受保护的地址、例如0x88000000。 这始终有效。

然后、我将读取受保护的地址0x8000000。 这有时会起作用、有时会导致 U-boot 崩溃。 我无法找到这种行为的一致性。 我一次读取2个32位字(md.l 88000000 2)。 我尝试先向受保护区域写入已知的值以初始化 ECC。 写入有时也会工作、有时会使 U-boot 崩溃。

我想获得有关我可能会做什么的任何信息。 或者、如果有一个启用 DDR ECC 的分步过程、这也会很有帮助。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我还使用 DDR 性能计数器寄存器进行了实验。 我将计数器1配置为对 ECC 错误进行计数、并将计数器2配置为对 DDR 访问进行计数。 当我改变计数器的含义时、计数器似乎没有被复位。 ECC 计数器从一些真正的大数字开始。 我的第一个问题是、是否有方法可以重置计数器。 该文档指出计数来自上次复位的 DDR。 但是、一旦 U-boot 从 RAM 运行、我就无法将其复位。

    在我能够读取受 ECC 保护的存储器的少数几次情况下、ECC 错误计数器会增加8。 因此、似乎所有读取都未通过检查。 这可能是预期的、因为我在读取前没有写入? (写入后无法读取、因此无法比较结果)。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我已通知团队。 请分享您正在使用的 SDK?

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

    谢谢 Yordan。

    我们在一个系统上使用 SC-MCSDK 2.2.0.2、在另一个系统上使用 SC-MCSDK 2.2.3.1p5。

    但是、U-Boot 在两个系统上都是相同的、并且与 arago-project.org/.../上的最新版本同步

    埃戈尔

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