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.

[参考译文] TMS320C6657:TMS320C6657:在 C6657平台中启用 DDR3 ECC 会导致随机错误

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1256323/tms320c6657-tms320c6657-enable-ddr3-ecc-in-c6657-platform-causes-random-errors

器件型号:TMS320C6657

您好 TI

DDR3的 ECC 存在问题。 我们的设计基于 C5567平台的 EVM。

以下是我们的初始化代码:通过设置 InitFlag.ecc = 1来启用 ECC

__________

platform_init_flags InitFlag;
platform_init_config initconfig;


*初始化主平台库*/
memset (&initconfig、0、sizeof (platform_init_config));
InitFlag.pll = 1;
InitFlag.DDR = 1;
InitFlag.phy = 1;
InitFlag.ecc = 1;

platform_status = platform_init (&InitFlag、&initconfig);

__________________

当启用 ECC 时、只有在某些电路板上、当我们将代码上传到 DDR3并启动时、才会出现随机错误。

我们将使用 MCSDK_2_01_02_06、TI 库中没有示例代码可用于显示使用  InitFlag.ECC = 1的配置。

当我们想增强 ECC 特性时、我们还应该做些什么吗?

您能提供帮助吗?

Br

TAM 转接

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

    Tam tran,

    我认为"initFlag.ecc"代码属于平台测试-处理器 SDK 6.3的示例代码。

    MCSDK_2_01_02_06中不存在此平台测试代码。  

    您要么必须使用最新的处理器 SDK 6.3 (要么)将此代码集成到 MCSDK_2_01_02_06中。

    此致

    尚卡里

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

    Shakari、您好!

    我的坏情况、是一个拼写错误。

    让我再问一个问题:我们正在使用 pdk_C6657_1_1_2_6\packages/ti\platform\evmc6657l\platform_lib

    其中一些示例、例如

    -文件"bench_srio.c",其中 ECC 被禁用

    FormFlags.pll = 0;/*用于计时的 PLL */
    pFormFlags.DDR = 0;/*外部存储器*/
    pFormFlags.tcsl = 1;/*时间戳计数器*/
    pFormFlags.phy = 0;/*以太网*/
    pFormFlags.ecc = 0;/*内存 ECC */<- ECC 被禁用

    pFormConfig.pllm = 0;/*使用库默认时钟除数*/
    pFormStatus = platform_init (&pFormFlags、&pFormConfig);

    -"platform_test.c"

    memset (&args、0x01、sizeof (test_config));
    memset (&init_FLAGS、0x01、sizeof (platform_init_flags));<--此处启用 ECC
    ...

    if (platform_init (&init_FLAGS、&init_config)!= Platform_eok){
    printf ("平台初始化失败、errno = 0x%x \n"、platform_errno);

    您如何在测试代码中测试 ECC 是否正常工作?

    在我们的软件中、如果 ECC 已启用(仅设置该 ECC 位并调用 platform_init)、则在我们尝试启动时、某些时候将代码加载到 DDR3失败。

    禁用 ECC、我们的软件将启动稳定。  

    那么、我的问题是:如果我们需要启用 ECC (在调用 paltform_init 之前设置唯一的位)、还是我们需要在 SW 中配置其他部分、那么我们应该执行的唯一操作

    Br

    TAM 转接  

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

    Tam tran,

    平台测试只是供参考的一个示例...

    要启用和禁用 DDR3-ECC、我们必须依靠数据表和有关 DDR3和 ECC 的部分。

    此致

    尚卡里

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

    Tam tran,

    平台测试只是供参考的一个示例...

    要启用和禁用 DDR3-ECC、我们必须依靠数据表和有关 DDR3和 ECC 的部分。

    ===

    关于 KeyStone-I 的 DDR3指南、 https://www.ti.com/lit/ug/sprugv8e/sprugv8e.pdf

    第39页  

    通过设置 ECC_EN=0禁用 ECC。 默认情况下、ECC_EN=0。  

    如需更多信息、请访问以下部分: "2.17 ECC"(DDR3用户指南中)。

     

    此致

    尚卡里

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

    您好,Shankari

    抱歉、我需要重新打开问题。

    来自 sprugv8e 第2.17节:

    问题1:

    >>>  

    ECC 在写入过程中存储在 SDRAM 内部。 启用 ECC 后、
    执行任何功能性读取或写入、所有 DDR3存储器空间被配置为 ECC
    首先写入64位对齐和64位倍数的已知数据。 这是
    确保在功能使用之前将正确的 ECC 值存储在 ECC SDRAM 中。

    <<<<<<<<<<<<<<<<<<

    "首先写入已知数据":0是否可以作为已知数据、还是应该是其他一些模式?

    问题2:

    >>>

    字节计数不是64位份额的倍数或非64位对齐地址的写访问
    在 ECC 保护的地址范围内执行、将导致写入 ECC 错误中断。 在本
    情况下、DDR3存储器控制器会向 SDRAM 写入数据。 但是、写入 SDRAM 的 ECC 值
    将损坏

    <<<<<<<<<<<<<<<<<<<<<<<

    是否有可以在链接器中设置的64位对齐选项? 如果我们必须通过所有代码为位于 DDR3中的每个变量手动将 DATA_ALIGN 设置为64位、则这是一个噩梦。

    问题3:

    >>>>>

    如果存在一位错误、DDR3存储器控制器会校正数据并在读取时将其发送
    获取位置反馈。 对于2位错误、DDR3存储器控制器生成读取 ECC 错误中断。 请注意、在中
    在这两种情况下、SDRAM 中的数据仍然损坏。 这是系统软件的责任
    纠正 SDRAM 中的数据

    <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

    在发生1位错误和2位错误的情况下、"系统软件"的责任是什么意思:SDRAM 仍然损坏、应该对 SW 的哪个部分进行分录以更正 SDRAM 中的数据?

    问题4:

     >>>

    如果 ECC 被禁用、ECC 字节通道被保持在复位状态以省电。 因此、如果正向压降
    必须在启用 ECC 后触发、以确保 ECC 字节通道为水平

    <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

    该语句表示必须在启用 ECC 后进行矫正设置。 是否有任何特定的 ECC 信道被提及?

    Br

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

    TAM:

    请打开一个新查询。

    此致

    尚卡里