您好!
我们将使用 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