我们在批量生产的定制ARM板上使用了一批新的DDR3 IC,它们在某些内存参数以及最显着的数据速率(1600 VS 1866 MT/s)方面与旧的不同。
有趣的是,旧的 bootstrap 仍可在新板上引导,并且我们已对内存测试和我们的应用程序进行了72个小时以上的测试,而没有出现错误,但是我们不确定不同的时序参数从长远来看是否会产生任何影响。
那么有什么方法可以通过编程来区分它们吗?或者,除了手动检查DDR3部件号以外,对不同的 bootstrap 进行编程的最佳方法是什么?
最佳答案
如果您具有带SPD EEPROM的DDR3 DIMM模块,则可以通过I2C查询EEPROM,以获取内存的时序参数。
但是可能您的板上只有原始DRAM芯片。我不知道要向DDR3 DRAM芯片查询任何信息,例如部件号或时序参数。
通常,DRAM参数被硬编码到嵌入式ARM设备上的引导加载程序中。 SoC之间的差异到底有多大。也许您可以使用绑扎到不同值的GPIO线之类的东西来确定正在运行的版本板,然后基于此编程合适的DRAM参数?通常,有几条GPIO线很容易阅读,并且可以放入引导加载程序配置DRAM之前运行的代码中。