打印
[i.MX]

自制飞思卡尔imx6板子DDR测试出现问题求帮助

[复制链接]
3582|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
buhui912|  楼主 | 2015-12-9 10:25 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我们自制imx6板子,用mfg_tools烧录失败,老卡在jump to os 地方。然后怀疑是DDR问题。又用了飞思卡尔的ddr_stress_tester_v2.30工具进行DDR测试。发现校准测试时,即使把频率降到297HZ,测试也会出现下面问题:
running Write level HW calibration

Write leveling calibration completed, update the following registers in your initialization script

    MMDC_MPWLDECTRL0 ch0 (0x021b080c) = 0x001F001F

    MMDC_MPWLDECTRL1 ch0 (0x021b0810) = 0x001F001F

    MMDC_MPWLDECTRL0 ch1 (0x021b480c) = 0x001F001F

    MMDC_MPWLDECTRL1 ch1 (0x021b4810) = 0x001F001F

Write DQS delay result:

   Write DQS0 delay: 31/256 CK

   Write DQS1 delay: 31/256 CK

   Write DQS2 delay: 31/256 CK

   Write DQS3 delay: 31/256 CK

   Write DQS4 delay: 31/256 CK

   Write DQS5 delay: 31/256 CK

   Write DQS6 delay: 31/256 CK

   Write DQS7 delay: 31/256 CK



Starting DQS gating calibration

. . . . . . . . . . . . . . ERROR FOUND, we can't get suitable value !!!!

dram test fails for all values.

压力测试也通不过,
DDR Freq: 297 MHz

t0.1: data is addr test

Address of failure: 0x100004c0

Data was: 0xff38ffdf

But pattern  should match address

Error: failed to run stress test!!!

但是单独的32bit memory读写时,是没有问题的。

想问下像这种ddr_stress_tester_v2.30有没有提供源代码,因为如果测试出现问题,我们很想结合测试源代码知道我们的DDR设计哪个地方出问题了。飞思卡尔有没有哪个DDR_stress_test版本是有源代码的啊?没有源代码,比较难定位DDR的哪个地方出问题了。

相关帖子

沙发
buhui912|  楼主 | 2015-12-9 10:26 | 只看该作者
我们的DDR是三星的,imx6社区上说如果和官网上板子用的DDR不一样的话,需要用I.MX6DQSDL DDR3 Script Aid V0.10.xlsx工具生成一下DDR初始化脚本。
我没有用这个工具,我的ddr_stress_tester_v2.30测试时用的缺省脚本,虽说应该重新生成一下针对三星的DDR初始化脚本,
但是有意思的是我们烧录了很多板子,虽然有些imx6板子配上三星DDR芯片是烧录失败的,但是也有些成功的,这说明即使我们不修改uboot里面的flash_head.S,全部用缺省的DDR初始化脚本也是可以。那么问题可能出现在制板时,有些板子的三星DDR搭配问题吧。

这些问题感觉如果有开源的ddr_stress_tester,不用通过UBOOT,直接板子一上电就可以测试,应该可以马上定位问题的。

使用特权

评论回复
板凳
似不似萨多萨| | 2015-12-9 10:39 | 只看该作者
imx6 压力测试频率范围应该是333MHz--672MHz( 官方文档提示的 ),,,,低于333MHz,正常的板子,测试也通不过。。。个人使用情况是这样的。。另外,烧录是把镜像烧录到eMMc或SD卡中吧,怎么会和DDR有关系?

使用特权

评论回复
地板
buhui912|  楼主 | 2015-12-9 13:18 | 只看该作者
似不似萨多萨 发表于 2015-12-9 10:39
imx6 压力测试频率范围应该是333MHz--672MHz( 官方文档提示的 ),,,,低于333MHz,正常的板子,测试也通 ...

我把压力测试的频率设为396MHz时,也在t0.1: data is addr test的地方出错。烧录时用mfg_tools工具时,一开始要把uboot,Uimge的Mfg版本下载到DDR中,在DDR中执行uboot的后半部分和加载Linux 内核。
我的烧录失败是在一开始的mfg版本的uboot执行时串口初始化之前就出错了。由于没有一些好的调试工具,看不出在uboot最开始哪个地方出错。所以就用ddr_stress_tester工具测试板子的DDR,发现DDR测试问题时,怀疑是UBOOT中的DDR运行相关地方出错了。

使用特权

评论回复
5
舒斯特尔| | 2015-12-9 20:13 | 只看该作者
如果有开源的ddr_stress_tester,不用通过UBOOT,直接板子一上电就可以测试,应该可以马上定位问题
我也这么认为的

使用特权

评论回复
6
mini1986| | 2015-12-14 15:58 | 只看该作者
个人感觉那个脚本也不是那么好用,不如自己对着ddr颗粒手册,去改寄存器,就是麻烦点......
成功搞过三星ddr3的飘过......

使用特权

评论回复
7
qqwangbalu| | 2015-12-16 14:09 | 只看该作者
你用的是什么内存,需要修改烧录工具OS firmware下的uboot才能烧录。当然你自己的uboot后面也要修改的

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

5

帖子

0

粉丝