0 开发环境
宿主机:Ubuntu14.04
开发板:Mini2440
U-Boot:u-boot-1.1.6
编译器:arm-linux-gcc
1 设置REFCNT
根据《U-Boot移植——添加新开发板》的方法添加Mini2440的配置后,为了使得U-Boot能顺利重定位到SDRAM中,需要先对SDRAM进行配置。SDRAM的初始化是在U-Boot的第一阶段完成,具体代码在board/mini2440/lowlevel_init.S中。
比较smdk2410的默认配置与Mini2440的配置得知,两者的内存空间是一样的,不同的是刷新频率,只要修改宏REFCNT即可:
//#define REFCNT 1113 /* period=15.6us,HCLK=60MHz, (2048+1-15.6*60) */
#define REFCNT 0x4f4 /* period=7.8125us,HCLK=100MHz, (2048+1-7.8125*100) */
说明:
(1)第1行是旧设置,第2行是新设置;
(2)关于REFCNT的计算公式,见参考资料[1]P93或者参考资料[2]P5-18。
(3)上述设置按照DRAM的刷新周期为7.8125us(由DRAM的芯片手册给出),DRAM的频率为HCLK=100MHz(可设置)来计算,其中关于HCLK的设置详见《U-Boot移植——时钟配置》。
参考资料
[1]韦东山. 嵌入式Linux应用开发完全手册. 人民邮电出版社,2012
[2]S3C2440A USER'S MANUAL