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.

[参考译文] 66AK2E05:K2E EVM 不能与 Innodisk DDR3 SO-DIMM 配合使用

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/743579/66ak2e05-k2e-evm-not-working-with-innodisk-ddr3-so-dimm

器件型号:66AK2E05

您好!

我们将使用 Innodisk 制造的一些宽温度 DDR3 SO-DIMM 测试 K2E EVM。 我们拥有4GB 和8GB DIMM (M3S0-4GMSCDPC 和 M3S0-8GMSDDPC)、两者均具有 MT41K512M8DA-107 IT Micron IC。 尝试运行 U-boot 时、它会在读取 DIMM 的 SPD 并启动内存测试后立即挂起、实际上、通过单步执行、我看到它会在第一个 DDR 内存访问代码行挂起。 在控制台中、我只会得到以下信息:

U-Boot 2018.01-gcdb1cc0a9e (2018年10月06日- 04:31:50 +0000)

CPU:66AK2Ex SR1.0
模型:德州仪器(TI) Keystone 2 Edison EVM
DRAM:DDR3A 速度将配置为1600运行。
检测到 SO-DIMM [i-DIMM]
DDR3速度1600
DRAM:4 GiB

8GB DIMM 也会发生同样的情况。 我已经检查了 U-Boot 读取的 SPD 信息、它看起来是有效的、控制台输出也显示了这一点。

我还尝试通过提供的 GEL 文件设置 DDR3、尽管使用了硬编码的时序和设置、如果我尝试通过内存浏览器读取 DDR3、我会得到一个内核挂起。

我在 另一个线程中看到 、在 PGCR2寄存器中设置"固定读取延迟"位(FXDLAT)可以解决类似的问题、并尝试在 GEL 文件中和通过 U-boot 设置该问题。 U-boot 的结果是存储器测试找到0个字节、而使用 GEL 文件、我现在可以在不挂起内核的情况下读取 DDR3、但每次刷新时我会得到不同的值、即大量读取错误。

我不知道 FXDLAT 位的用途是什么、如果使用它的方向是正确的、毕竟、U-boot 和 GEL 可能出于某种原因未设置它。 有人知道问题可能是什么? 有人使用了这些(或类似) DDR3模块?

我的最后 一个想法是将 SPD 中的值输入到 TI 提供的电子表格中、以计算 DDR3寄存器并通过 GEL 文件进行设置、但我怀疑这些设置将与 U-boot 提供的设置相同、并导致相同的错误。

此致、

Giannis

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

    您是否查看了以下 DDR3调试和初始化指南:
    www.ti.com/.../sprabx7.pdf
    www.ti.com/.../sprac04.pdf

    似乎 DDR 控制器配置不正确。

    此致、
    Yordan
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Yordan、您好!
    我知道您链接的文档、但尚未全部浏览。 我假设 U-boot 初始化代码将根据 DIMM 的 EEPROM/SPD 中的信息配置 DDR 控制器。 必须对特定 DIMM 的 DDR 配置进行硬编码似乎与使用可互换 DIMM 的目的相矛盾。 U 引导不能正确处理自动配置、或者 DDR3控制器中是否有无法仅通过 SPD 信息确定的设置?

    在任何情况下、我都会检查您建议的指南、希望 U-boot 代码中缺少一些内容。 我希望这些症状可能会为您或其他在 DDR3->Keystone 方面有经验的人响铃、以便为我提供如何解决问题的提示。 遗憾的是、制造商只提供稀疏信息、因此我将不得不依赖 SPD 信息了解更多详细信息、就像 U-boot 一样...
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    一个可能重要的细节是我正在测试的 Innodisk 模块不具有 ECC。 这在 SPD 信息中得到了正确反映、因此 U-boot 可能未正确考虑、而是假定 DDR3始终启用 ECC。

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

    您对 u-boot 从 DIMM 读取 SPD 正确无误。 遗憾的是、我无法尝试您的设置、因此我可以猜测并提供调试建议。

    我在 u-boot 源代码中发现、您实际上可以检查从 SPD 读取的参数。
    请参阅 arch/arm/mach-keystone/dddr3_spd.c:检查静态 int ddr3_read_spd ()、它在 ddr3_get_DIMM_params_from _spd ()中调用、并分别在 ddr2_k2e.c->ddr3_init ()中调用。

    对于 ECC 配置、您可以插入 board/ti/ks2_evm/board.c -> ft_board_setup_ex ()、这将调用 ddr3_check_ecc_int ()。 DDR3_CHECK_ECC_int 位于 arch/arm/mach-keyston/sdr3.c 中 在此 dr3.c 文件中、您还可以找到以下函数:
    DDR3_ECC_support_RMW ()
    DDR3_ECC_CONFIG ()
    DDR3_ENABLE_ECC ()
    您可以从 include/configs/k2e_evm.h & include/configs/ti_armv7_keystone2.h 跟踪电路板配置设置

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

    Yordan、您好!

    我已经看到了您提到的函数、看起来 ECC 始终处于配置状态。 此外、我发现对于 DDR3 SO-DIMM、ECC 和非 ECC DIMM 的引脚分配不同、因此 DIMM 需要与电路板设计相匹配。 ( 来源、第10页)

    因此、我们可能会获得新的 ECC DIMM、因为我们已经设计出具有 ECC 的电路板(遵循 K2E EVM 设计)。 如果我们可以使用我们刚刚开发的非 ECC DIMM、那会很好、但这似乎是不可能的。

    尽管如此、感谢您的帮助、如果我有此问题的任何更新、我将再次发布。

    Giannis

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    感谢您的反馈。 如果我们有进一步的反馈(我未提及的内容)、将直接发布在此处。
    此致、
    Yordan
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    最好尝试使用 RTOS 引导加载程序和 DSS 文件:
    processors.wiki.ti.com/index.php/Processor_SDK_RTOS_Flashing_Bootable_Images

    此外、在 Processor SDK RTOS 中、有电路板诊断应用、当您安装 RTOS SDK 时、它们位于:
    ~/ti/pdk_k2e_4_0_10/packages/ti/board/diag

    在~/ti/pdk_k2e_4_0_10/packages/ti/board/diag/mem/src.中有一个 memtest 板载诊断文档可在此处找到:
    software-dl.ti.com/.../Board_EVM_Abstration.html

    此致、
    Yordan