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.

[参考译文] RTOS/TDA3:TDA3 "EMIF1 ECC 配置"问题

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/768724/rtos-tda3-tda3-emif1-ecc-configuration-problem

器件型号:TDA3

工具/软件:TI-RTOS

您好!

我正在使用 CCSv8调试我们的定制板。

EMIF1连接到具有256MB ECC 的1GB DDR3。

我在没有 ECC_ENABLE 的情况下连接了 IPU1_C0、EMIF1的存储器范围看起来不错。

 

运行脚本 ecc_enable 后、emif1的内存范围看起来很奇怪。

对吗?

这是我的 GEL。

e2e.ti.com/.../TDA3xx_5F00_ddr_5F00_config.gel

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

    启用 ECC 后是否通过执行 memfill 来初始化 ECC 值?

    此致、
    Rishabh
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    有关 如何启用 ECC、请参阅 www.ti.com/.../sprac42b.pdf

    此致、
    Rishabh
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!
    哪些 ETC 值?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!
    我已经按照步骤启用 EMIF ECC。 问题仍然存在。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    我不理解您所说的"ETC Values"。
    启用 ECC 后、您需要在执行任何访问之前写入 DDR、否则会出现错误。
    启用 ECC 后、您能否从0x4C000110到0x4C000140读取 ECC 寄存器并共享转储。

    此致、
    Rishabh
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!
    抱歉、它是"ECC 值"、而不是"ETC 值"。
    运行 ECC 使能脚本后、我无法将任何程序加载到 M4。
    写入 DDR 意味着什么? 不加载程序到 M4对 DDR 的写入?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    我指的是第2.2节第6步。
    您能否按照前面的要求共享寄存器值?

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

    您好!

    我将于2011年2月11日提供您所需的信息。

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

    在这种情况下、我将关闭该线程、直到那时。

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

    您好!

    在运行脚本" TDA3xx_EMIF1_ECC_Configuration "之前、 从0x4C000110到0x4C000140的 ECC 寄存器是

     运行脚本" TDA3xx_EMIF1_ECC_Configuration "后、 从0x4C000110到0x4C000140的 ECC 寄存器为

    BR、Denny's

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

    您会遇到很多 ECC 错误、因此可能会导致内存无法访问。
    有关如何启用 ECC 和预填充存储器的信息、请参阅 processor_sdk_vision_03_06_00_00\ti_componations\drivers\pdk_01_10_02_07\packages/ti\boot\sbl_auto_sbl_utils\src\sbl_utils_common.c 中的 API SBLUtilsEmifECCConfigure。

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

    e2e.ti.com/.../8407.TDA3xx_5F00_ddr_5F00_config.gelHi、

    请检查我的 GEL 文件"TDA3xx_DDR_config"。

    BR、Denny's

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

    仅使用 GEL 文件是不够的。 您需要遵循 SBL 中给出的顺序。

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

    您好 Rishabh Garg、

    我将尝试按照您提到的 SBL 中的顺序来修改 GEL。

    顺便说一下、CCS 上是否没有任何现有源代码可用于测试 EMIF ECC 的功能?

    如果功能正常、我只想使用 ECC 测试 DDR3。

    BR、Denny's

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

    启用 ECC 包括两个部分:
    ECC 配置
    2.使用 EDMA 预填充 DDR
    凝胶只能用于第一部分。 您需要运行可执行文件来执行第二部分。
    如果您有 SBL、则可以使用相同的来为所需的存储器范围启用 EMIF ECC。

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

    您好 Rishabh Garg、

    我无法理解第二个步骤"2. 使用 EDMA 预填充 DDR "。

    您是否意味着运行脚本"TDA3xx_EMIF1_ECC_Configuration"后、我们无法将程序加载到 ipu1_0?

     PDK 中有一个名为"CSL_ECC_TEST_APP"的测试应用。

    可以使用此应用程序检查 EMIF ECC 的功能是否正确?

    BR、Denny's

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

    是的、您需要在访问 DDR 之前对其进行初始化、以避免 ECC 错误。
    您还可以使用 ECC 应用程序 CSL_ECC_TEST_APP 来检查 EMIF ECC。
    此应用使用 CPU 来提供 DDR、与 EDMA 相比、速度更慢。

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

    您好 Rishabh Garg、

    我是否需要对原始 GEL 文件进行任何更改? 我是说 CCSv8中的原始 GEL 文件未启用 ECC。

    在连接到 ipu1_0然后运行 CSL_ECC_TEST_APP 之前、是否需要在 GEL 中启用 ECC?

    BR、Denny's

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

    请访问 processors.wiki.ti.com/.../PDK_TDA_CSL_User_Guide

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

    您是否能够使其正常工作?

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

    您好 Rishabh Garg、

    我在 CCS 上运行了 CSL_ECC_TEST_APP、但它可以很好地执行。

    TeraTerm 消息会像这样挂起。

    我检查 了 C:\processor_sdk_vision_03_06_00_00\ti_components \drivers\pdk_01_10_02_07\packages/ti\CSL\examples\ecc\ecc_test_app\ecc_emif.c 中的 c 代码

    找到了这个  

     

    因此,我在 CCS 中修改了 GEL。

    我再次运行测试。 这一次我首先运行脚本 EMIF1_ECC_Configuration ()以确保寄存 器 CTRL_WKUP_EMIF1_SDRAM_CONFIG_EXT 设置良好。

    在我完成这些更改后、一切都进展顺利。

    顺便说一下、我对在    CSL_ECC_TEST_APP 中设置 EMIF_ECC_START_ADDR 和 EMIF_ECC_END_ADDR 有一些问题。

    默认设置为0x90000000~0X9001FFFF。

    我无法为整个1GB DDR3设置 ECC 范围(0x8000000~0xBFFFFFFF)?

    我完成了此更改、应用程序再次挂起。

    BR、Denny's

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

    更换第一张图片。

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

    示例代码正在从 DDR 执行。 因此、您会遇到初始化问题。
    您可以更新链接器命令文件以使用 OCMC、然后将 DDR 起始地址和结束地址更新为整个 DDR。
    此外、当应用程序执行 CPU 复制时、需要很长时间才能预填充整个 DDR 存储器。
    您可能会看到在该特定代码行上挂起。

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

    您好 Rishabh Garg、

    为了避免 SBL 中出现相同的问题、我如何确定 ECC 范围?

    在 SBL 步骤中、SBL 将应用程序代码加载 到 DDR3。  

    ECC 范围不应包含应用程序代码的有效范围、对吧?

    BR、Denny's  

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

    尊敬的 Denny's:

    SBL 将设置 ECC 和预填充存储器、因此您不应面临 SBL 的任何问题。

    换句话说、ECC 范围可以/不能包含运行应用程序代码的范围、具体取决于用例。

    此致、

    Rishabh

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

    到目前为止、我仍然对"预填充存储器"感到困惑。
    我是否有任何学习来源?
    您为我提供的信息表明、有时 ECC 范围可能包含应用程序代码运行的区域。 这完全取决于我们选择的用例。
    对于这种情况、我是否有任何指导方针或标准可供遵循?

    此致、

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

    当 SoC 首次上电时、DDR 和 ECC 奇偶校验位未初始化。
    需要进行 DDR 初始化、以便正确初始化 ECC 校验和存储器。
    软件的第一步是在启用 ECC 后初始化整个存储器。 此步骤称为预填充存储器。
    此步骤将确保在代码访问启用 ECC 的区域之前正确设置奇偶校验位。
    此步骤将确保不会为未初始化的奇偶校验数据生成 ECC 错误情形。
    此步骤可通过 CPU 内存集或 EDMA 传输到内存区域来完成。
    详细信息可在此处获取:www.ti.com/.../sprac42b.pdf
    如果您需要更多文档、请参阅 TRM :www.ti.com/.../spruie7c.pdf 中的 EMIF 章节
    我们有 EMIF ECC 的 CSL 示例。
    EMIF ECC 也在 SBL 中被启用。

    此致、
    Rishabh
x 出现错误。请重试或与管理员联系。