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.

[参考译文] AM3352:如何从 MLO 测试 DDR3 RAM?

Guru**** 2396215 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1488556/am3352-how-to-test-ddr3-ram-from-mlo

器件型号:AM3352

工具与软件:

我们已经基于 BeagleboneBlack C3设计开发了一个使用 DDR3 RAM 的电路板。 我们使用了 TI 的" Sitara Linux 培训:调优 BeagleBoneBlack 上的 DDR3时序"文档和电子表格工具计算 DDR3时序并生成要插入 MLO 引导加载程序的代码。 代码按预期执行、直到 MLO 在加载 U-boot 之前为驱动程序分配内存。 这个新分配不是来自0x4030_0000以下的片载 RAM、而是来自(我猜到的) 0x8020800上的 DDR3 RAM。 当该代码尝试配置新分配的存储器时、它很快会在异常向量中结束、有时会在 USB 驱动程序初始化代码中的 hang ()循环中结束。

您能否建议我们可以向 MLO 添加一些测试代码、以便在引导加载程序尝试使用 DDR3存储器之前对其进行测试?

我们的代码库来自 TI Sitara SDK 6.0.0。 我们通过此发行版为使用 DDR2 RAM 的现有电路板构建 MLO/U-Boot/内核。

如果此问题更适合其他论坛、请重定向。

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

    我们通常使用 Linux memtester 对 DDR 进行压力测试、  该内核内置在 SDK 内核中、但需要进行调整才能耗尽 MLO。  您可以尝试使用 JTAG 连接到 CCS 来执行一些基本测试、例如在内存浏览器中查看/插入内存、或编写执行读取/写入的简单测试。  这可能会帮助您了解 DDR 配置是否存在明显的问题、或者在高利用率时是否更细微。  您还可以在 MLO 中使用 memcpy 编写一个简单测试、以访问0x80000000及更高版本(这是 DDR 存储器)或类似的测试、然后驱动程序开始分配存储器。

     

    此致、

    James

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

    在从 s_init 返回之前,很容易添加一个调用 get_ram_size ()的命令,并将结果记录到 MLO 中的控制台。 连续冷启动时、get_ram_size()结果不一致。 从调试器连续复位后、执行同样的操作。

    我们将在 BeagleBoneBlack_C3板上尝试使用相同的 MLO/测试代码、该板具有相同的 DDR3 RAM 芯片、以查看这是硬件还是固件问题。

    如果 MLO 尝试在 get_ram_size ()之后继续执行以初始化驱动程序等。它通常在0x402f_0424处结束死循环、并且 CCS 指示"软件中断"。 但是、此地址与 AM335x TRM 中指示的矢量表和死区循环不同。 它看起来像 u-boot 链接器映射中的向量表。 从哪里可以找到相关文档? 这可能有助于解释访问 DRAM 时的故障模式。

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

    不太确定是否在 u-boot 链接器映射中。  我将不得不问一位同事这方面的问题。   

    您能向我发送您使用的电子表格和 DDR3器件型号吗?  也许我可以看到配置错误的明目张胆的东西。  

    您是否已验证 EMIF 寄存器是否符合预期。   您可以转储 EMIF 寄存器块吗?  

    此致、

    James

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

    我们使用的是 D2516EC4BXGGB。 我似乎不能将250KB 电子表格附加到此邮件。 插入图像/视频/文件不接受它。 是否有其他发送方式?
    我将确认 EMIF 寄存器值。

    谢谢!

    Curtis

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

    Curtis 是金士顿设备。  我似乎无法在他们的网站上找到该部分。  您能否将产品说明书贴出来。

    您应该能够发布电子表格的 zip 文件  

    此致、

    James

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

    e2e.ti.com/.../D2516EC4BXGGB.PDFe2e.ti.com/.../AM335x_5F00_EMIF_5F00_Configuration_5F00_Tool_5F00_v3_5F00_traces.zipFinally找到了界面。 随附了电子表格和数据表。

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

    新的发展:一位同事带来了他的 Beag1108 Bone_Black 板,它的 DDR3芯片与我们预期的不同,但 BBB 内核源没有该芯片的单独计时。 我进行了一些在线搜索、找到了以下主题: https://e2e.ti.com/support/processors-group/processors/f/processors-forum/560358/am335x-memory-manufacturer-recommendation

    一条注释说一些 DRAM 是可互换的、包括我们的 Kingston 部分以及来自 BB_B PCB 和内核的部分。 所以、我刚刚重建了 u-boot 以使用包含的来自 BB_B 的400MHz DDR3时序、它们看起来有效。 继续测试。

    我注意到我们计算的时序和 BB_B 时序之间的差异、因此我将深入研究这些差异以了解发生了什么。

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

    好的、感谢您的更新、请随时关注我们。

    此致、

    James