一、S5PV210芯片的DRAM控制器介绍、初始化DDR的流程分析
1、DRAM的地址空间
1)从地址映射图可以知道,S5PV210有两个DRAM端口。 DRAM0的内存地址范围:0x20000000~0x3FFFFFFF(512MB);DRAM1:的内存地址范围:0x40000000~0x7FFFFFFF(1024MB);
2)S5PV210实际最多能接1.5G的内存。32位的CPU理论上能接4G的内存,但是ARM结构的机器是统一编址,寄存器会占掉一部分地址空间,所以实际是达不到4G的内存;
2、DRAM端口的引脚
DRAM端口的引脚:32根数据线(Xm1_DATAn) + 14根地址线(Xm1_ADDRn) + 3根片选信号线(Xm1_BAn) + 控制信号线。
3、DRAM控制器
DRAM是比较复杂的器件,初始化DRAM需要根据数据手册里的时序说明来写代码,没有对DRAM有深入的了解是没法写出合适的代码。但是DRAM的接口统一,于是在复杂CPU里集成了DRAM控制器,编程人员只需要操作寄存器就可以发出相应的时序,而不用去管时序是如何产生的。DRAM控制器简化了使用Soc开发人员的工作,我们只需要知道DRAM的大致过程和关键的参数就可以去初始化DRAM。
4、DRAM初始化
数据手册里初始化步骤
DRAM控制器支持多个版本的DRAM的,比如S5PV210支持LPDDR、LPDDR2、DDR2。不同版本的DRAM初始化步骤是不一样的,上面就是初始化DDR2的部分初始化步骤。初始化DDR2的代码就是按照上面的步骤进行的,但是上面的步骤很粗略,很多细节没有列举出来,但是可以辅助我们阅读DDR2的初始化代码;