HI3520D使用512M的内存

2019-07-12 22:52发布

板子原来的内存是256m,觉得太小,所以改用了512m的芯片,手册上是支持的。

确认芯片电路

256M内存和512M内存都是8个BANK,10bit行地址,不同的是256M是14bit列地址,512M是15bit列地址 计算方法为2^(14+10) * 8 * 2 = 256M 2^(15+10) * 8 * 2 = 512M 注意是乘以2是因为数据线是16bit的,也就是说每个地址空间为2Bytes 从上面可以看出512M的内存比256M的多一跟地址线,所以需要检查电路中有没有接好。

修改Uboot

说明:从上面可以知道,升级内存最重要的是配置地址和引脚,因为多了一跟地址线啊 说明:uboot的官方的SDK由2部分提供,一部分是基本寄存器的初始化,包括但不限于DDRC初始化。这部分代码(大概是4800B)可以被先加载到片内RAM中执行,然后初始化DDRC,然外部物理内存就可以愉快的访问了。(详细机制我也就不是很清楚了,所以有请大神能不吝指教)

编译uboot

这个应该都有吧,准备好uboot.bin文件

处理基本寄存器的部分

说明这里海思是利用了excel表格来成功bin文件的,打开 uboot-Hi3520D-bvt_No1_660_330_660_ddr_innerFEPHY.xls文件,修改里面2处地方: 切换到ddrc_init table DDRC_RNKCFG改成0x142 DDRC_TIMING1改成0xFF637A6A 切换到main table -> 点击generate reg bin file 将uboot.bin cp到当前目录,使用命令: ./mkboot-hi3520d.sh reg_info_hi3520d.bin reg_info_hi3515a.bin u-boot-hi3520d-T16063003.bin 生成uboot!!!

后续工作

其实后面就没有什么要特别要说的了。TFTP烧写,启动参数设置,还有测试内存有没有生效等,都是很常见的了。

后记

DDRC的寄存器很多,很不容易修改,从官方SDK用excel表格来修改就可以看出来,如何知道改怎么修改寄存器的值呢。这个我也不知道了╮(╯3╰)╭ 我是从http://www.ebaina.com/bbs/thread-10333-1-1.html个帖子中了解到要改的寄存器的值的