CPU:AM3352BZCZ60
DDR3:MT41K128M16JT-125
实际板载:单颗16Bit DDR3
运行MLO
303MHz下,Software leveling可以给出303MHz的PHY值
400MHz下,Software leveling给出的400MHz的PHY值都是0x00
———————————————————————————————
以下为400MHz的配置过程
RatioSeed_AM335x_boards.xls
AM335x_DDR_register_calc_tool.xls
DDR3_EMIF_SDRAM_CONFIG conifguration: :0x61C052B2
运行Software leveling结果
烦请各位了解这块的论坛前辈,Steven Liu前辈帮我分析一下;不了解的同仁们帮顶一下,不胜感激!
1、参数配置是否合理?我个人参照TI的一些文档,反复核对过了,个人认为应该无误
2、DDR3跑400MHz频率,PCB Lyaout这块是否需要特别注意什么,与303MHz会有差异吗?因为303MHz情况是可以给出PHY值,DDR3实际运行也是蛮稳定的
3、软硬件方面还有哪些问题,或者细节会引起400MHz Software leveling失败?例如OPPs设置方面;目前是Core::OPP100;MPU:550MHz
各位前辈碰到400MHz这种问题,解决的话,能不能贴出引起这方面问题的原因,我做为参考,谢谢了!
———————————————————————————————————————————————————
个人疑问
我在Software leveling 303MHz选项下,给入333MHz的参数,此时可以给出PHY值;用这些PHY值将DDR3配置为333MHz, 系统可以跑到内核,但要嘛卡在Start udev,要嘛在Start udev后报各种异常,系统始终无法登录
1、Software leveling的原理是什么?Steven Liu前辈能否稍微讲解一下
———————————————————————————————————————————————————-
下面是我使用RatioSeed默认值配置的相关参数,实际板上无法运行,u-boot都没能跑起来;各位前辈看一下是否有误
#define MT41J128MJT125_EMIF_READ_LATENCY 0x100007
#define MT41J128MJT125_EMIF_TIM1 0x0AAAD4DB
#define MT41J128MJT125_EMIF_TIM2 0x26437FDA
#define MT41J128MJT125_EMIF_TIM3 0x501F83FF
#define MT41J128MJT125_EMIF_SDCFG 0x61C052B2
#define MT41J128MJT125_EMIF_SDREF 0x00000C30
#define MT41J128MJT125_RATIO 0x100
#define MT41J128MJT125_INVERT_CLKOUT 0x1
//#define MT41J128MJT125_RD_DQS 0x40
//#define MT41J128MJT125_WR_DQS 0x79
//#define MT41J128MJT125_PHY_WR_DATA 0xC1
//#define MT41J128MJT125_PHY_FIFO_WE 0x117
——————————————————————————————————–
已经尝试了各种方法手段了,调试了很多天都没结果!拜托各位前辈点拨提醒一下,还有哪些细节没注意?还有哪些排查方向?
Gones Guo:
附件是DDR3的Datasheet
Gones Guo:
回复 Steven Liu1:
非常感谢Steven Liu前辈的分析讲解,会根据您提的一些注意点再去排查,多谢谢前辈!
Gones Guo:
回复 Steven Liu1:
Steven Liu 前辈,AM3352BZCZ60 60表示600MHz Cortex-A8,这是指MPU的频率?还是Core的频率?
u-boot-2013.01.01-psp06.00.00.00源码里设置的内核频率是1000MHz,我们目前用的CPU型号是AM3352BZCZ60 这个会影响DDR3 400MHz的功能吗?
—————————————————————————————
if (!voltage_update(CORE, PMIC_OP_REG_SEL_1_1_3))
{ core_pll_config(OPP_100); puts("\n>>SPL CORE PLL:OPP100.\n"); }
Steven Liu1:
回复 Gones Guo:
那个60表示的是MPU最高可以跑在600MHz. Core的设置一般都是OPP100,对应到代码中L3的频率设置是200MHz.
你可以参考着AM335X的datasheet,里面有介绍CORE和MPU频率间的配搭表.
Gones Guo:
回复 Steven Liu1:
好的,多谢前辈~
Gones Guo:
回复 Steven Liu1:
Steven Liu前辈,不好意思,又得拜托您给指导指导
———————————————————————————–
我们板上目前一组DDR_CK和两组DDR_DSQ 走线长度为
一组DDR_CK:1.355 inches
两组DDR_DQS:1.693 inches 1.693 inches
————————————————————————————–
我们有做过尝试,把DDR_CK的长度故意设定的比DDR_DQS的长,Software leveling就可以出来值
——————————————————————————————————————————————
我的疑问:
1、单纯的从Software leveling角度而言,400MHz情况下,Software leveling能给出PHY值,CK与DQS的长度关系是否有要求?
2、实际板载走线时,DDR3跑在400M的时钟频率下,CK与DQS的走线长度,以及它们之间的长度关系,是否也有要求?
Steven Liu前辈,又得麻烦您多费心一下了~
Yaoming Qin:
回复 Gones Guo:
关于走线,直接看看datasheet的要求,以datasheet的要求为准。