各位好,我使用的是DM8168CCYGA2,在裸机是使用CCS测试DDR读写时出现:读随机错误,经更改改GEL文件的sw leveling部分代码__raw_writel(0x16,(DDRPHY_CONFIG_BASE)),将0x6,更改为0x16,然后DDR读就不会出错饿了。测量DQS信号拖尾现象也好了很多。
问题:
1、 根据PCB量出EMIF0、EMIF1的CLK、DQS信号线的长度(单位inch);
2、 根据实际量出来的长度,代入Ratio Seed.xls表格中,自动计算出在各个频率点(400、531、675、796)需要输入测试代码的WR DQS、RD DQS、RD DQS GATE的值;
3、 在CCS中加载DDR3_slave_ratio_search.out文件,并运行;
4、 在对应的提示输入中选择EMIF0/1,并输入相应的WR DQS、RD DQS、RD DQS GATE值,待此应用测试代码计算出WR DQS、RD DQS、RD DQS GATE的值范围和最优值;
5、 更改GEL文件在各个DDR运行频率点,重新加载GEL文件、DDR3_slave_ratio_search.out文件,运行,分别输入各频率点的WR DQS、RD DQS、RD DQS GATE参数,计算出不同频率点的WR DQS、RD DQS、RD DQS GATE的值范围和最优值;
6、在uboot中更改好相关的slave ratio value 后,编译,烧写,启动后,无任何输出。看电源电流只增加20ma,从运行GEL文件的电流变化来看,时钟都没有初始化起来。
uboot无法运行,烦请大家给些建议(上一版的板子可以运行,原理图未更改,只是优化了DDR部分的走线),谢谢!
Eason Wang:
Hi , 几个问题:
1。 是否有调整过DDR颗粒的型号? 如果有更换过,请参考附件上的
2. 以原来的uboot(未更改时序参数和SW leveling参数)是否能在新版上稳定运行?
3. 请注意,SW Leveling 是一个增加时序margin,增强DDR稳定性的手段。其前提条件是在你所做SW leveling 的频点上,DDR本身是可以运行的。
4. 关于DDR 时序参数的计算,请参考附件。
5. 在gel文件里面,记得也要根据频点,填入4中表格里面计算出的寄存器值。
zhongke wei:
回复 Eason Wang:
1、DDR型号仅仅是因为上一个版本的停产(H5Q2G83BFR),换成少了4个NC脚的升级版本(H5Q2G83FFR);
2、原来的uboot不能在新版本上运行(串口无任何输出,电流没有明显增大,时钟都未起来);
3、在gel文件初始化的条件下(增加自动sw leveling),试过clk跑到400、531、675、796几个频点都没有出现错误,都能正确读写;
Eason Wang:
回复 zhongke wei:
Hi,
我能不能理解为,
把GEL文件里的TIM参数和Leveling参数移到uboot中就不行?同样的参数,写同样的寄存器,是没有道理不行的。
如果DDR不行,是不是有可能别的部分有问题?
BR,
Eason