您好!
在学习K1_STK_v1.1中Memory_Test例程时有2个地方存在疑惑,还望赐教。
1.函数KeyStone_PLL_init对DDR3的PLL进行初始化时,PLL_CTL1中PLLRESET的位置定义与C6678 datasheet(SPRS691E)7.7节定义不符,在Table7-28中,PLLRESET定义在bit13,而程序中使用的是bit14,请问应该以哪个为准?
2.函数C6678_EVM_DDR_Init中,PRI_COS_MAP寄存器的配置以及注释与DDR3 Memory Controller(SPRUGV8E)4.24节定义不符,文档中对每个PRI的说明如下:
1= Map to Class-of-service 1
2= Map to Class-of-service 2
0 or 3 will not assign any class of service
根据文档,PRI_COS_MAP中每个PRI配置值应该为1或者2,但是程序如下:
/*map priority 0,1,2,3 to COS0, map priority 3,5,6,7 to COS1*/
gpDDR_regs->PRI_COS_MAP =
((1)<<CSL_EMIF4F_PRI_COS_MAP_REG_PRI_COS_MAP_EN_SHIFT)|
((1)<<CSL_EMIF4F_PRI_COS_MAP_REG_PRI_7_COS_SHIFT)|
((1)<<CSL_EMIF4F_PRI_COS_MAP_REG_PRI_6_COS_SHIFT)|
((1)<<CSL_EMIF4F_PRI_COS_MAP_REG_PRI_5_COS_SHIFT)|
((1)<<CSL_EMIF4F_PRI_COS_MAP_REG_PRI_4_COS_SHIFT)|
((0)<<CSL_EMIF4F_PRI_COS_MAP_REG_PRI_3_COS_SHIFT)|
((0)<<CSL_EMIF4F_PRI_COS_MAP_REG_PRI_2_COS_SHIFT)|
((0)<<CSL_EMIF4F_PRI_COS_MAP_REG_PRI_1_COS_SHIFT)|
((0)<<CSL_EMIF4F_PRI_COS_MAP_REG_PRI_0_COS_SHIFT);
程序实际配置的是0或者1,请问应该如何理解这个问题?
谢谢!
Nancy Wang:
一般情况下是以手册为准,不过我建议连上板子之后在register窗口对比看一下,比如PLLRESET位是否置1。
Shine:
1. 您看的是DDR3PLLCTL1 寄存器的bit13,程序中使用的bit14是PASSPLLCTL1寄存器。 2. Class-of-service可以配成0或3,默认值是0,只是配成0或3不会分配class of service。
yongchang hou:
回复 Nancy Wang:
谢谢
yongchang hou:
回复 Shine:
1)程序目的是初始化DDR 的PLL 是否应该以DDR3PLLCTRL1 的定义为准?
2)程序中 优先级最高的不分配service 而优先级低的反而分配service 这样操作是否合理?
Shine:
回复 yongchang hou:
DDR3PLLCTRL1也要设置,请参考gel文件。
C:\ti\ccs901\ccs\ccs_base\emulation\boards\evmc6678l\gel