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.

请教AM3352 uboot中mtest命令的用法(针对DDR3)

DDR3的2nd source想测一下高低温,我是硬件,对代码不熟,看到mtest有好几个参数,不知道具体用法。能否share一下方法,如果合理地使用此命令来做测试?(我理解,所有的地址线数据线CLK线控制线要测到,且有足够的读写stress)。用的4Gb的DDR3,32 Meg x 16 x 8 banks。

谢谢支持!

  • 这个就是往一个地址空间里面写对应数据的测试命令。

    你可以参考着这个:http://processors.wiki.ti.com/index.php/DM816x_C6A816x_AM389x_DDR3_Init#Run_mtest

    Run mtest

    Simple memory test can be run from the U-Boot prompt using the mtest command. The syntax of the command mtest command is given below:

     mtest <start-address> <end-address> <test pattern> <# of iterations>
    

    This command incrementally writes the test pattern to the memory range specified and then reads it back. Running the memory test with a few patterns should be sufficient for checking out the memory.

    Run the memory test over the DDR address space of the EMIFs one by one:

     TI8168_EVM# mtest 0x80000000 0xA0000000 0xaa55aa55 3 (referred as Test A)
     TI8168_EVM# mtest 0xA0000000 0xC0000000 0xaa55aa55 3 (referred as Test B)
    

    You can try different patterns (say all 0s, then all Fs and so on) to be sure of the memory reliability.

  • 谢谢回复。

    根据此文尝试过,但会有随机的错误(我确定避开了UBOOT在跑的地址空间,我们512MB的DDR,地址是0x80000000-0x9FFFFFFF,我在9开头的地址上选小段做验证),完全一样的测试第一次pass第二次就fail,可能是什么原因?

    如果只用mtest不加参数,是否会自动避开UBOOT在用的地址空间,以所有码型(从全0到全F)遍历所有地址?

    谢谢。

  • 从DDR3的设计角度来说,你一定要根据我们的手册,做DDR3的配置,和software leveling这一系列流程操作,如果没做这个部分就直接跑这种test,即使成功了也是徒劳的。这种test只是一个侧面的验证而已。到后面了,做高温拷机测试,再加上application做终测才是对DDR压力比较大的时候。

    DDR3的配置和software leveling的测试方式,可以参考下面帖子的2. DDR2/3的配置详解(带视频)。

    http://www.deyisupport.com/question_answer/dsp_arm/sitara_arm/f/25/t/113233.aspx

  • 都做过了,已经选好参数了,就剩高低温测试一下了。谢谢支持。

  • 为什么之前会fail呢