各位好,
自己做的板卡,采用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。
user_haike:
之前 DDR table配置如下:
00 00 00 70 //length00 87 35 00 //where to load ddr table to L202 42 80 F5 //config select00 00 00 00 //pll Prediv00 00 00 1C //pll Mul00 00 00 02 //pll post div63 06 2A 32 //sd ram config00 00 00 00 //sdram config 200 00 14 50 //sdram fresh cntrl11 13 78 3C //sdram timing 130 B4 7F E3 //sdram timing 255 9F 8A DF //sdram timing 300 00 00 0000 00 00 0000 00 00 0000 01 00 00 //perform count config00 00 00 0000 00 00 0000 00 00 0070 07 32 14 //sdRamoutImpedCalcfg00 00 00 0000 10 01 0F //ddr phy control100 00 00 0000 00 00 0000 00 00 0000 00 00 0010 00 00 00 //ecc cntrl00 00 00 0000 00 00 0000 00 03 05 //rdWrtExcThresh
文档“4Gb_DDR3L.pdf-Rev.O04/16EN” for MT41K256M16-125见附件
Allen35065:
回复 user_haike:
你先用该组参数修改GEL脚本里的初始化函数,然后能够对DDR3正常初始化吗?
user_haike:
回复 Allen35065:
多谢回复,
用这组参数修改GEL脚本来初始化板子,DDR测试通过,并且,还通过“Memory_Test”工程(修改对应寄存器参数后),DDR初始也通过,唯独spi BOOT 下利用DDR table 初始化DDR不过,还有什么原因会导致这个问题?
还有,如果DDR table 没有问题,那么,spi NOR BOOT 下,还有什么原因会导致这个问题?
通过降低DDR 频率,也没有效果。
Allen35065:
回复 user_haike:
区别在SPI NOR boot没有Leveling参数的更新,你不成功的场景下,是DDR3读写有错误吗?
user_haike:
回复 Allen35065:
我也怀疑过是没有Leveling参数的问题导致,不成功的时候,DDR读写有错误,现象是某些地址某些字节出错(地址不固定,没有规律),比如填充值为0xFFFFFFFF,结果可能是0x0FFFFFFF 或 0xFF00FFFF