1,怎么确定ddr3的cache状态是否使能,是查看mar寄存器吗?例如evm板就是查看从mar128到160的状态是否是1是吗?如果是1就是表示已经完成了ddr的cache配置吗?
2,生成自定义的platform时,对应的l2cache长度只是取决于可用的l2空间吗?例如l2cache设置为128k,对ddr的cache长度有限制吗?
3,生成platform时,l2cache设置为0或者128k,代码中加不加cache_enable感觉mar寄存器都是1的状态。用的RTSC工程,但是没有用sys/bios
4,在platform中设置l2作为sram的长度为0x60000,那么剩下的0x20000就自动变成128k cache使用了吗?
Shine:
1. 往MAR寄存器里写1就是使能cache了。
2. Platform里的cache取决于可用的L2空间,对DDR cache没有限制。
3. 看一下gel文件里有没有事先使能?
4. cache是需要使能的。
fei lau:
回复 Shine:
1,那我查询mar为1的状态就表示已经成功使能了吧?
3,只是手动把gel中的l2改成了3/4SRAM,想问一下l2是如何分配地址空间作为cache使用的,是从未分配的地址吗?比如我之前设置的o=0x00800000,l=0x60000作为sram,那么剩下的128k就作为cache空间了吗?
4,我调用的cblas_gemm函数输入均在ddr上,为何我使能cache后运算时间并未变短?是使用ddr cache还需要其他设置吗?
谢谢工程师。