以编程方式区分DDR3

时间:2016-12-16 02:36:15

标签: linux arm embedded

我们在批量生产的定制ARM板上使用了新一批DDR3 IC,它们与旧版本的内存参数不同,最显着的是数据速率(1600 VS 1866 MT / s)。

有趣的部分是旧的引导程序仍然可以在新的主板上启动,我们运行内存测试和我们的应用程序超过72小时没有错误,但我们不确定不同的时序参数是否会产生任何影响从长远来看。

那么有没有办法以编程方式区分它们?或者除了手动检查DDR3部件号之外,编程不同引导加载程序的最佳方法是什么?

1 个答案:

答案 0 :(得分:1)

如果您的DDR3 DIMM模块带有SPD EEPROM,则可以通过I2C查询EEPROM以获取存储器的时序参数。

但可能你的主板上只有原始DRAM芯片。我知道无法向DDR3 DRAM芯片查询任何信息,例如部件号或时序参数。

通常,DRAM参数被硬编码到嵌入式ARM设备上的引导加载程序中。 SoC之间的差异如何。也许您可以使用类似GPIO线的东西来绑定不同的值来确定运行的版本板,然后根据它编写正确的DRAM参数?通常有一些GPIO行很容易读取,并且可以适用于在引导加载程序配置DRAM之前运行的代码。