TI中文支持网
TI专业的中文技术问题搜集分享网站

AM335x DDR3 Software Leveling Tool

AM335x的DDR3 software leveling可以通过SD卡运行啦!

在AM335x的设计中,如果使用的是DDR3、DDR3L,是必须要进行software leveling的。其目的在于根据板卡的实际布线情况,通过leveling算法优化当前的DDR3的参数配置。而针对这套算法,之前我们提供的方式使用仿真器连接到板卡的JTAG口,修改GEL脚本进行初始化后,通过CCS工具将.out程序加载到AM335x上,执行参数优化算法。

对于板子上没有预留JTAG的情况就杯具了。

现在,通过将该算法移植到了bootloader中,也就是说可以直接将本贴中的MLO拷贝到SD卡FAT32分区中,使用SD卡启动AM335x,即可通过串口进行参数的输入,得到优化的参数配置!这样一来,就可以避免仿真器、JTAG、CCS、改GEL脚本等一系列复杂的操作啦!

大家可以下载使用,体验一下,欢迎给出宝贵的反馈意见!

PS:目前,我们可以支持303MHz和400MHz两个频率,串口0作为调试串口,具体的使用方法可以参考User Guide。

先睹为快:

结果:

另外,将这个MLO的前4个字节去掉就可以通过UART boot. 

MLO(UART DDR3 Leveling)

Steven Liu1:

附上User Guide。能够执行software leveling算法的MLO在上楼中。

azhiking:

回复 Steven Liu1:

谢谢分享。

能不能顺便介绍一下software leveling算法的简介,原理以及有关DDR3为什么需要Software Leveling机制?

Steven Liu1:

回复 azhiking:

感谢您的关心!简而言之,为了保证DDR3的信号完整性,优化相关的读写时序参数,匹配不同板子因板材、layout走线、线宽等多种因素可能会造成的阻抗变化,所以要求,DDR3的设计,必须要进行Software Leveling,获得最适应于当前layout的DDR3 PHY读写参数。具体的介绍,您还可以参考:http://www.deyisupport.com/question_answer/dsp_arm/sitara_arm/f/25/t/17684.aspx

mark anglin:

Is the source code for this DDR3 leveling MLO available?

 

Yaoming Qin:

回复 mark anglin:

这个代码目前没有开放。

Jack Sue:

为何我运行的结果是全0x0??

Please input the AM335x EMIF Timing Configuration:– AM335x Default EMIF Timing configuration (for StarterKit EVM) — DDR3_EMIF_SDRAM_TIM_1 : 0x0888A39B DDR3_EMIF_SDRAM_TIM_2 : 0x26337FDA DDR3_EMIF_SDRAM_TIM_3 : 0x501F830F DDR3_EMIF_SDRAM_CONFIG : 0x61C04AB2

Your choice:  1. Use the default one; 2. Input your own one.Please Choose The DDR3 Frequency:  1. 303MHz; 2. 400MHz.DDR3 Frequency is Set at 400MHz!

Please input your DDR3_EMIF_SDRAM_TIM_1 conifguration (in Hex) : 0aAAD4DBPlease input your DDR3_EMIF_SDRAM_TIM_2 conifguration (in Hex) : 266B7FDAPlease input your DDR3_EMIF_SDRAM_TIM_3 conifguration (in Hex) : 501F867FPlease input your DDR3_EMIF_SDRAM_CONFIG conifguration (in Hex) : 61C05332Your input EMIF Timing configuration —  DDR3_EMIF_SDRAM_TIM_1 :         0xAAAD4DBDDR3_EMIF_SDRAM_TIM_2 :         0x266B7FDADDR3_EMIF_SDRAM_TIM_3 :         0x501F867FDDR3_EMIF_SDRAM_CONFIG :        0x61C05332

Please Enter the PHY_INVERT_CLKOUT value (0 or 1) from the spreadsheet : 0Please Enter the Seed RD_DQS_SLAVE_RATIO Value in Hex to search the RD DQS Ratio Window : 40Please Enter the Seed FIFO_WE_SLAVE_RATIO Value in Hex to search the RD DQS Gate Window : 6DPlease Enter the Seed WR_DQS_SLAVE_RATIO Write DQS Ratio Value in Hex to search the Write DQS Ratio Window : 1Please Enter the Seed PHY_CTRL_SLAVE_RATIO Value in Hex : 80The ratio seeds for the DDR3 Software Leveling : invert_clkout =         0x0RD_DQS_RATIO_VAL =      0x40FIFO_WE_SLAVE_RATIO =   0x6DWR_DQS_SLAVE_RATIO =    0x1PHY_CTRL_SLAVE_RATIO =  0x80

        The Slave Ratio Search Program Values are… ***************************************************************DATA_PHY_RD_DQS_SLAVE_RATIO is :0x0DATA_PHY_FIFO_WE_SLAVE_RATIO is : 0x0DATA_PHY_WR_DQS_SLAVE_RATIO is : 0x0DATA_PHY_WR_DATA_SLAVE_RATIO is : 0x0***************************************************************rd_dqs_range = 0fifo_we_range = 0wr_dqs_range = 0wr_data_range = 0

Optimal values have been found!!

***************************************************************DATA_PHY_RD_DQS_SLAVE_RATIO is :0x0DATA_PHY_FIFO_WE_SLAVE_RATIO is : 0x0DATA_PHY_WR_DQS_SLAVE_RATIO is : 0x0DATA_PHY_WR_DATA_SLAVE_RATIO is : 0x0***************************************************************

===== END OF TEST =====DDR3 software leveling done!

 盼复!

Steven Liu1:

回复 Jack Sue:

全0代表着你的software leveling运算失败了,软件上请检查一下EMIF和PHY的配置;再就是排查一下可能的硬件问题,review一下原理图,或者换一块板子排除一下当前板子可能的焊接问题。

Jack Sue:

回复 Steven Liu1:

1)我在英蓓特的dev8600上进行同一实验,也是得到全0结果!当然对于需要输入的几个ratio seeds,我直接用的代码里现成的,但这应该没影响吧?

2)测试的上一块板子,利用同样配置(除那4个ratio定义是参考以前的)是可以运行到将操作系统image文件下载到SDRAM的。只是在下载完成后,在每次加载内核时,都会停在不同位置上。因此,DDR3的电路连接上应该不存在问题,但参数配置有可能不对,导致运行不稳定。对于现在的全0结果,在成熟的开发板上都有发生,有点不能理解。希望TI能给与更多提示!

3)另外我想问问,在配置EMIF_SDRAM_CONFIG时,reg_ddr_term和reg_dyn_odt这两个域应该如何确定?memory datasheet上也没有给出明确值啊!用的内层颗粒是美光的MT41K256M16-125E。

谢谢!盼复!

Steven Liu1:

回复 Jack Sue:

1.你的意思是说你使用的这个MLO中的默认配置进行的实验吗?这个默认的EMIF配置影响很大的!要看你使用的是DDR2、DDR3的型号,不同型号的配置是不一样的,不是通用的。这个代码中默认的配置是按照AM335x的StarterKit开发板进行的设置,DDR3型号:MT41J128M16JT-125

2.我觉得问题是你配置的EMIF和PHY的参数,是不是适用于你当前的板子的。一般来说,DDR的型号不同,就要检查EMIF的配置,layout的不同,就要用工具去计算DDR PHY的配置。

3. 这两个值是和DDR的datasheet有关的,是要算的,RZQ是确定值,但是终端匹配和ODT是你要根据手册来分给个合理的值。

yaofei song:

为什么我串口写选择“1”,居然给我返回“1”,写什么返回什么,死活不会执行“1”代表的选择啊,

赞(0)
未经允许不得转载:TI中文支持网 » AM335x DDR3 Software Leveling Tool
分享到: 更多 (0)