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.

[参考译文] DRA829J-Q1:DDR 初始化问题(存储器中/总线上的零星数据变化)

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1442480/dra829j-q1-issue-with-ddr-initialization-sporadic-data-change-in-memory-on-the-bus

器件型号:DRA829J-Q1

工具与软件:

尊敬的 TI 团队:

我们几个基于 DRA829JMTGBALFRQ1和 Tanya NT6AN512T32AC 的定制电路板在 DDR 初始化(u-boot)方面存在问题:

DDR 初始化序列完成后、我们可以在调试器转储窗口中观察到存储器内容偶尔发生变化。 此外、如果我们尝试向存储器写入模式、则每个4字节字中只有2个高字节会更改为所需的值。

有趣的是、如果我们执行 MCU R5F 软复位(或通过输入引脚)和 u-boot 重复初始化序列(包括 DDR 控制器)、一切都可靠地工作。 目前为止生产的大多数电路板都能使用相同的代码可靠地工作。

您能否提供一个向量、以便在哪里搜索可能的根本原因。

谢谢!
Dmitry

附注: 我们还尝试使用 TI 之前提供的 cmm 脚本(对于 Lauterbach 调试程序)来初始化系统、并且行为是相同的-存储器中的零星数据变化并且每个字只有一半是可写入的。

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

    尊敬的 Dmitry:

    那么问题只发生在冷启动中吗? (如果您多次发出 MCU R5F 软复位、是否会出现该问题?)

    有几个电路板出现了问题。 这是否意味着许多电路板都没有出现问题? 或者仅测试了几个电路板?

    问题发生后、您是否能够从 Code Composer Studio 加载和执行附加的二进制文件并提供 CCS 控制台输出? (请从 R5内核加载/执行)。

    e2e.ti.com/.../0083.tda4x_5F00_lp4_5F00_debug.zip

    此致、
    Kevin

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

    尊敬的 Kevin:

    是的、该问题仅在冷启动期间出现、然后尝试进行多次软复位、从第一个 DDR 开始就始终保持稳定。

    到目前为止、只生产了少数电路板(~50)、其中3个受到影响。

    我们不使用 CCS、而是使用 TRACE32、但我会尝试在接下来的几天加载提供的二进制文件并让您了解结果。

    此致、
    Dmitry

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

    尊敬的 Kevin:

    我尝试隔离真正有助于在热复位情况下使 DDR 正常工作的因素。

    结果表明正在禁用然后启用这些 LPSC:LPSC_EMIF_DATA_0和 LPSC_EMIF_CFG_0  。

    因此、即使没有热复位、我们也可以通过第一次初始化 DDR、然后禁用上面提到的 LPSC、以重新启用它们并再次初始化 DDR 来使 DDR 正常工作。  你有什么线索吗?

    同时、我将尝试您的二进制文件。

    谢谢!
    Dmitry

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

    尊敬的 Dmitry:

    感谢您的更新。

    由于您有3块主板出现故障、是否可以用其中一块有故障的主板换用 Nanya 内存、并查看问题是否出在 Nanya 内存? (即、从故障电路板上获取南亚存储器并 在通过电路板上对其进行测试、同时从故障电路板上获取南亚存储器并在故障电路板上对其进行测试)

    此致、
    Kevin

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

    尊敬的 Kevin:

    您是否倾向于 朝着 硬件问题的方向思考?

    我想我们可以排除软件初始化例程问题、因为我们尝试了以下原因:

    • U-boot
    • 适用于 Trace32的 TI 脚本
    • TI SBL

    是否可以从可能的根本原因列表中排除 DDR 配置(由 Excel 工具生成)?

    从技术上讲、我们可以更换芯片、但首先我们想排除软件/配置问题。

    此致、
    Dmitry

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

    尊敬的 Dmitry:

    我假设软件应该对相同的寄存器设置进行编程、无论是冷启动还是热启动都是如此。   

    可能不同引导周期到引导周期的是发生的训练。  我提供的二进制文件会转储经过训练的值、我们可以比较冷启动和热启动。 作为调试步骤、我们还可以关闭训练并依靠硬编码值 来查看故障是否仍取决于冷启动与热启动(但我们首先需要二进制文件中的数据来生成近似值)。  

    您提到您使用的是 TRACE32、因此我不确定我提供的二进制文件是否可行。 您的电路板上有哪款 UART?

    您是否也联系了南亚并描述了这个问题?  

    此致、
    Kevin  

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

    尊敬的 Kevin:

    我不确定问题是否与热/冷启动循环相连。

    如上所述、只需关闭然后打开以下 LPSC: LPSC_EMIF_DATA_0和 LPSC_EMIF_CFG_0、就可以在第一次尝试时成功进行 DDRSS 初始化  。 在这种情况下、不需要软复位。

    您是否有与这些 LPC 相关的任何线索? 我的理解是、LPCS 仅控制外设的时钟并/或复位其逻辑。 门控发生在何处、在外设或 HSDIV 输出或 PLL 中的某个位置?

    我还尝试了由您提供的二进制加载、它不会触发任何输出。 这里使用了哪个 UART 实例? 或者您可以和我分享我可以转储并与您共享的地址范围(寄存器)。

    没有、我们还没有联系南亚。 我们怀疑的电流甚至不是内存、而是电源电路或内存/PLL 初始化。

    另一个小发现是、我们可以 通过将电源电流限制降低到特定值以下、在一些正常启动的电路板上重现完全相同的行为。  

    如果您有任何建议、我很感谢您分享。

    谢谢!
    Dmitry

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

    尊敬的 Dmitry:

    正如上面所述、我可以通过简单地关闭然后再打开以下 LPSC:LPSC_EMIF_DATA_0 和 LPSC_EMIF_CFG_0、从第一次尝试开始就成功实现 DDRSS 初始化  。 在这种情况下不需要软复位。

    是的、但这实际上是对 DDRSS 和 LPDDR4存储器的软复位、因此、您需要再次对 LPDDR4存储器发出复位以使系统工作的线索非常重要。

    我还尝试加载由您提供的二进制文件、它不会触发任何输出。 其中正在使用哪个 UART 实例?[/QUOT]

    我之前提供的二进制文件不能用于 TRACE32、也不能使用 UART 输出。  我询问您在系统中使用了哪一个 UART、并认为我可以使用 UART 输出重新构建二进制文件。

    否、我们还没有联系南亚。 我们目前怀疑的不是内存、而是电源电路或内存/PLL 初始化。

    内存初始化不依赖于内存?

    如果您能在存储器供应商中循环操作、看看它们是否能帮助您确定有问题的电路板上存储器的批号、将不胜感激。

     通过将电源电流限制降至特定值以下、我们可以在一些正常启动的电路板上重现完全相同的行为。  [报价]

    "相同行为"意味着系统不会从冷启动中引导、而是通过切换 EMIF LPSC 并重新初始化 DDRSS 来完全正常引导?

    增加电源电流限制是否可以解决所有电路板上的问题?  

    此致、
    Kevin

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

    尊敬的 Kevin:

    [报价 userid="51195" url="~/support/processors-group/processors/f/processors-forum/1442480/dra829j-q1-issue-with-ddr-initialization-sporadic-data-change-in-memory-on-the-bus/5605277 #5605277"]是的、但这实际上是对 DDRSS 和 LPDDR4存储器的软复位、因此需要再次对 LPDDR4存储器进行复位才能使系统正常工作这一线索非常重要。

    这些 LPSC 是否也触发对存储器本身的复位?

    我之前提供的二进制文件不能用于 TRACE32、也不能使用 UART 进行输出。  我询问您在系统中使用了哪一个 UART、并认为我可以使用 UART 输出重新构建二进制文件。[/QUOT]

    MCU_UART0

    [报价 userid="51195" url="~/support/processors-group/processors/f/processors-forum/1442480/dra829j-q1-issue-with-ddr-initialization-sporadic-data-change-in-memory-on-the-bus/5605277 #5605277"]

    内存初始化不依赖于内存?

    如果您能在存储器供应商中循环操作、看看它们是否能帮助您确定有问题的电路板上存储器的批号、将不胜感激。

    [报价]

    我的理解是、配置取决于存储器、但顺序 -否 我无法连接软复位、以帮助设置错误的配置工作。 您能提示一下吗?

    很抱歉、没得到、如果我们与 TI 分享已使用存储器的批次号码、您觉得有用吗? 尽管如此,我们将尝试到达南亚。

    "相同行为"意味着系统不会从冷启动中启动、而是通过切换 EMIF LPSC 并重新初始化 DDRSS 而完全正常启动?

    我可以确认"损坏数据"的效果相同、因此在冷上电期间会中止数据、同时 使用一些具有较低电源功率电流限制的"良好"电路板子集。 我将仔细检查一下 LPSC 的影响。

    此致、
    Dmitry

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

    尊敬的 Kevin:

    我有机会检查一下这个问题。

    我向您提供的有关使 LPDDR4从第一次尝试"播放" DSC 初始化的信息是不正确的。

    工作稳定的顺序为:

    1. 初始化 DDRSS 和 LPDDR4
    2. 通过 LPSC_EMIF_DATA_0 LPSC_EMIF_CFG_0关闭 DDRSS
    3. 通过 LPSC_EMIF_DATA_0 LPSC_EMIF_CFG_0打开 DDRSS
    4. 初始化 DDRSS 和  LPDDR4

    另一个观察:

    1. PLL12校准功能对问题没有任何影响、我已经检查了"开"和"关"
    2. 除了上面的步骤1、我试图进行一系列 PLL12重新配置、使用将在正常初始化例程中发生的参数、没有影响。

    我会感谢任何建议。

    谢谢!
    Dmitry

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

    尊敬的 Dmitry:

    我建议 按如下所述开始进行部件更换、以查看问题是否出在特定部件和/或电路板。 我还建议在内存供应商中执行循环。

    由于您有3块主板出现故障、是否可以将来自备用主板的南亚内存与其中一个有故障的主板交换、并查看问题是否出在南亚内存? (即、从故障电路板中获取 nanya 内存并 在通过电路板上对其进行测试、以及从通过电路板中获取 nanya 内存并在故障电路板上对其进行测试)[/QUOT]

    此致、
    Kevin