AmlogicDDR调试指南目的:本指南主要用来指导客户进行AmlogicDDR12nm芯片的调试,让客户通过调整timing.c,就能明确DDR的配置,确保能够顺利跑起来,同时进行DDR的测试。注:所有timing.c的调试,都是在确认硬件焊接正常、电源供电正常的基础上进行调试。一、DDR调试1、LPDDR3/4dq_remapdq_remap会影响DDR的training,必须正确设置。原则是lane0-lane3的组内排序,需要和原理图的对应上,如下图timing.c的dq_remap需要对应到原理图上LPDDR3/4的信号顺序,lane0-4顺序列到dq_remap上。Note:DDR3/DDR4部分只需要确认各个lane对应的DQS\DQM没有接错即可。2、dram_rank_config的配置CONFIG_DDR0_32BIT_RANK01_CH0中的ch0对应SOC的DDRDQ信号,32bit的DQ对应只有ch0,RANK01在原理图上对应DDR_CS0和DDR_CS1的连接情况,如果CS0/CS1都连接,使用RANK01,否则使用RANK0。默认系统都用32bit,如果只有16bit的,请选择16bit。ConfigdetailCONFIG_DDR0_16BIT_CH0dramtotalbuswidth16bitonlyusecs0CONFIG_DDR0_16BIT_RANK01_CH0dramtotalbuswidth16bitusecs0cs1CONFIG_DDR0_32BIT_RANK0_CH0dramtotalbuswidth32bitusecs0CONFIG_DDR0_32BIT_RANK01_CH01onlyforlpddr4,dramtotalbuswidth32bitusechanelacs0cs1chanelbcs0cs1CONFIG_DDR0_32BIT_16BIT_RANK0_CH0dramtotalbuswidth32bitonlyusecs0,buthighaddressuse16bitmodeCONFIG_DDR0_32BIT_16BIT_RANK01_CH0dramtotalbuswidth32bitusecs0cs1,butcs1use16bitmode,currentphynotsupportreserveCONFIG_DDR0_32BIT_RANK01_CH0dramtotalbuswidth32bitusecs0cs1CONFIG_DDR0_32BIT_RANK0_CH01onlyforlpddr4,dramtotalbuswidth32bitusechanelacs0chanelbcs0注:LPDDR4的配置有点特殊,存在CH01的情况,需要根据原理图的连接来进行配置。如果原理图上CHA/CHB都连接到LPDDR4上,需要选择CH01(如:CONFIG_DDR0_32BIT_RANK01_CH01);如果只连接CHA,则选择CH0(如:CONFIG_DDR0_32BIT_RANK01_CH0)。3、DDR容量问题;A、容量设置:设置为0xffff为自动识别容量,如果为特殊的容量,需要手动填写。比如CS0=2GB,CS1=1GB;B、容量不对,可能和DMC_Rmap有关:DMC_Remap在timing.c中的位置,基本每个类似的DDR都会有对应的设置:Dmc_remap对应的数组中,对应了DDR_ADDRMAP_0-4五个寄存器(注:配置DMC_Remap的0和1是一样的);Bit(s)ADDRMAP_0ADDRMAP_1ADDRMAP_2ADDRMAP_3ADDRMAP_429:25CA8RA2RA8RA14RA16forDDR4SDRAM24:20CA7RA1RA7RA13bg1forDDR4SDRAM19:15CA6RA0RA6RA12BA2orbg0forDDR414:10CA5CA11RA5RA11BA19:5CA4CA10RA4RA10BA04:0CA3CA9RA3RA9RA15DMCRemap的注意事项:A,一般以列地址先开始,默认开始位是5(对应CA3),前面的4:0共5位,计算地址是需要算上;B,参考当前的DDRDMC配置,LPDDR3/4为前半部分为列地址,中间为BA2-BA0,后面部分为行地址;DDR3/4的Bank穿插在行列地址中;C,地址线和容量的计算:1GB(单rank)为30根地址线,把DMCRemap的使用地址线+5(4:0没有在上面),就为实际要用到的地址线;D,行列地址的配置,需要参考规格书来处理,如下图的LPDDR3中,行地址为R0-R14,列地址为C0-C9,对应LPDDR3的DMC_Remap配置(g12a_u212_v1下的timing.c),8Gb容量,为2^30,30根地址线,需要用到的地址线为0-29根,但DMCRemap的29(第二行29<5)对应的C10地址线,但LPDDR3只有C9,而R14地址线对应了30(第四行30<25),和实际地址线不对应,实际访问时只能访问到28,容量会减半。需要调整RA14为29(对应R14),CA10更改为30(注:此时访问不到30,理论上更改为0也没问题)。4、DDR跑不起来A,确认焊接、供电等正常(LPDDR4X需要0.6V供电);B,查看原理图并核对timing.c,确保dq_remap配置正确;C,查看原理图,确认timing.c的“CONFIG_DDR0_32BIT_RANK01_CH0”配置是否正确;D,查看log,确认是否由于容量不对影响,进而调整dmc_remap。二、测试阶段测试的主要目的是确保DDR的稳定性,主要分为:DDRwindow/极限频率、Kernel下压力测试。1、测试前准备:确保把u-boot下的的board.h(例如g12a_u211_v1.h)中增加下面的修改,方便命令操作,可以在uboot下...