HI3520D使用512M的内存
2016-06-30 15:09
288 查看
板子原来的内存是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个帖子中了解到要改的寄存器的值的
相关文章推荐
- 将SSH移植到arm soc上
- linux c 常量指针和指针常量
- 嵌入式Linux系统工程师火热招募中!
- Beaglebone Black 断网后重新连接问题
- 2440,嵌入式linux平台12864驱动(调试完成)
- Ubuntu12.04上交叉编译python-3.2.2详细过程
- PC与嵌入式驱动引导程序的区别
- 嵌入式Linux开发流程
- Arm-Linux根文件系统网络配置小结
- 给学习嵌入式Linux的新手的一点建议
- 嵌入式Linux系统启动过程分析
- 嵌入式系统的性能优化
- gcc学习总结(1)
- TQ2440中关于SecureCRT软件调试的错误解决
- 最近学习linux的体会
- linux 静态与动态ip设置
- final link failed: Nonrepresentable section on output的解决办法
- Linux系统下一块网卡配置多个ip地址方法
- 【嵌入式Linux】[ARM]:ARM相关小知识
- linux---libjpeg使用(jpg to rgb)