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.

c6678 spi boot模式下DDR table配置问题

各位好,

自己做的板卡,采用SPI nor boot模式,使用的DDR型号为:MT41K256M16HA-125T:E,工作频率为1333.3MHZ,目前DDR table配置不正确导致DDR初始化失败。

根据文档“4Gb_DDR3L.pdf-Rev.O04/16EN” for MT41K256M16-125 查询该DDR3芯片的参数,  使用“DDR3 Register Calculate v4.xlsx”来计算寄存器的参数,如附件,由于DDR3 Register Calculate v4.xlsx”没有该芯片参数,所以选择“User Defined”列,并自己修改各参数,请各位大神帮忙看看,哪里设置不正确,导致DDR 初始化失败。

PS:之前板卡采用DDR型号为:MT41J256M16HA-125E,DDR table设置正确,DDR初始化成功,程序成功boot。 

DDR3 Register Calc v4 - MT41K256M16HA-125E.xlsx
  • 之前 DDR table配置如下:

    00 00 00 70  //length
    00 87 35 00  //where to load ddr table to L2
    02 42 80 F5  //config select
    00 00 00 00  //pll Prediv
    00 00 00 1C  //pll Mul
    00 00 00 02  //pll post div
    63 06 2A 32  //sd ram config
    00 00 00 00  //sdram config 2
    00 00 14 50  //sdram fresh cntrl
    11 13 78 3C //sdram timing 1
    30 B4 7F E3 //sdram timing 2
    55 9F 8A DF //sdram timing 3
    00 00 00 00
    00 00 00 00
    00 00 00 00
    00 01 00 00 //perform count config
    00 00 00 00
    00 00 00 00
    00 00 00 00
    70 07 32 14 //sdRamoutImpedCalcfg
    00 00 00 00
    00 10 01 0F //ddr phy control1
    00 00 00 00
    00 00 00 00
    00 00 00 00
    00 00 00 00
    10 00 00 00 //ecc cntrl
    00 00 00 00
    00 00 00 00
    00 00 03 05 //rdWrtExcThresh

    文档“4Gb_DDR3L.pdf-Rev.O04/16EN” for MT41K256M16-125见附件


    4Gb_DDR3L_41k.pdf
  • 你先用该组参数修改GEL脚本里的初始化函数,然后能够对DDR3正常初始化吗?

  • 多谢回复,

    用这组参数修改GEL脚本来初始化板子,DDR测试通过,并且,还通过“Memory_Test”工程(修改对应寄存器参数后),DDR初始也通过,唯独spi BOOT 下利用DDR table 初始化DDR不过,还有什么原因会导致这个问题?

    还有,如果DDR table 没有问题,那么,spi NOR BOOT 下,还有什么原因会导致这个问题?

    通过降低DDR 频率,也没有效果。

  • 区别在SPI NOR boot没有Leveling参数的更新,你不成功的场景下,是DDR3读写有错误吗?

  • 我也怀疑过是没有Leveling参数的问题导致,不成功的时候,DDR读写有错误,现象是某些地址某些字节出错(地址不固定,没有规律),比如填充值为0xFFFFFFFF,结果可能是0x0FFFFFFF 或 0xFF00FFFF