This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

uboot停在continuing with ddr3,不往下执行

Other Parts Discussed in Thread: AM3352

我这边焊接了50片am3352的板子,有40多片都是可以正常执行起来。但其中有四五个板子,就停在了continuing with ddr3。个人感觉是DDR出了问题,但是又不太确定。想问下,有没有办法可以验证一下?我之前看到有个帖子www.deyisupport.com/.../51326.aspx提到SW leveling,但是不清楚具体是什么?  

以下是我的启动信息:

U-Boot SPL 2011.09 (Apr 30 2014 - 10:53:36)
Texas Instruments Revision detection unimplemented
Could not probe the EEPROM; something fundamentally wrong on the I2C bus.
read_eeprom() failure. continuing with ddr3

一直停在这里,就不往下执行了。


  • 从你的log看上去,貌似是卡在了DDR3这块上面。你可以参考:AM335x的DDR3软硬件设计以及相关资源 

    DDR3 software leveling,这步是在你整版都做好、焊接完拿回来后做的。software leveling 就是一个算法程序,其作用就是针对你当前的板子布线,优化当前的 DDR3 的时序配置。这个程序的输入的是 DDR3 初始 PHY 配置(将当前的布线长度值输入到 Ratio Seed Spreadsheet 中获得),输出的是优化后的 PHY 配置。一般来说,这个算法的执行,TI 官方的做法是在 CCS 中,通过仿真器(XDS100v2 或者 560v2)链接板子,通过初始化 GEL 文件先行初始化你的板子。初始化完成后,通过 CCS 加载该算法程序,输入初值后运行获得。这里有个工作就是修改 GEL 文件使其适用于你当前的板子,里面包含了 DDR3 的 EMIF 配置和 PHY 配置两部分,这个修改过程可以参考“浅析 GEL 文件在 ARM 初始化时的作用和修改"。最终把得到的结果重新填入到 GEL 文件的 PHY 配置部分,或者是操作系统的对应配置文件中就可以了。这样 DDR3 使用的时序就是最优化的时序了。

    插一句:如果是DDR3的话,是必须要做SOFTWARE leveling的。

  • 原来SOFTWARE leveling是只适用于DDR3的,但是我板子上的是DDR2。关于DDR2的,有没有什么办法可以测试一下是否可以正常通信?

  • 你的是DDR2的话,为啥打印信息里面会出现“continuing with ddr3”?

    你用的配置是DDR2的还是DDR3的呢?

    从DDR配置的角度来说,还是一样要做EMIF的配置和DDR2 PHY的配置。只是不需要做software leveling。

    参考:http://processors.wiki.ti.com/index.php/AM335x_EMIF_Configuration_tips#DDR_PHY_Registers

    最简单的测试办法是使用仿真器通过JTAG去连板子,然后在CCS的memory browser中去读写0x80000000地址区域内的内容,如果读写都正常的话,就说明配置没问题了。

  • 我这边的板子没有把JTAG线给引出来,所以我直接在uboot里面去读取0x80000000的数。发现这几块出问题的板子读出来的数据跟写进去的不一样。而那些可以成功启动的板子,写进去和读出来的数据是一样的。出现这种情况,是不是DDR或者CPU坏了?

  • Steven Liu 说:

    你的是DDR2的话,为啥打印信息里面会出现“continuing with ddr3”?

    你用的配置是DDR2的还是DDR3的呢?

    从DDR配置的角度来说,还是一样要做EMIF的配置和DDR2 PHY的配置。只是不需要做software leveling。

    参考:http://processors.wiki.ti.com/index.php/AM335x_EMIF_Configuration_tips#DDR_PHY_Registers

    最简单的测试办法是使用仿真器通过JTAG去连板子,然后在CCS的memory browser中去读写0x80000000地址区域内的内容,如果读写都正常的话,就说明配置没问题了。

    您好!我想问一下Ratio Seed Spreadsheet中DDR_CK length 具体指哪段长度?CPU到DDR的长度?CPU到DDR的长度加上DDR到终端电阻的长度?

    还有既然software leveling可以得到最优的时序,那这个初始配置值是不是可以不那么精确呢?

    谢谢!!