Linux最终运行在DDR中
配置:wind10,Ubuntu16.04,MX6ul-ALPHA开发板,ddr_stress_tester工具。
内容:在编译uboot之前初始化DDR。
uboot功能是启动linux
将linux的内核和设备树从EMMC,或者网络中拷贝到DDR中,linux在DDR中运行。每个板子的DDR不同,所以要初始化。
编译Uboot:
u-boot.bin转换为u-boot.imx。u-boot.imx就是添加头部信息的u-boot.bin。其中头部数据(IVT_DCD)就是图片中imximage.cfg文件。其中的imximage.cfg.cfgtmp是.cfg文件编译出来的附属文件。
DDR初始化的相关代码就是在头部数据中。
实际操作
1:安装ddr_stress_tester工具,该工具是NXP专门测试其芯片的DDR的。
在安装目录中新建 xxx_512MB.inc文件,该文件可以用Vscode打开。
2:从网上找到IM6ULL_DDR3芯片的测试工具excel格式的配置文件,根据芯片和DDR的参数配置文件(详情见原子Linux驱动开发第二期20.3节的视频讲解)
3:将excel表格中的RealView.inc下属栏界面的相关信息全部复制到xxx_512MB.inc文件中。
硬件设置,USB连接电脑,SD卡弹出,启动方式选择USB启动,关闭VMware
4:使用tester工具,先校准DDR。配置工具信息如图
Download,显示相关信息,校准(calibration)。ALPHA开发板主频800Mhz,测试选择0-400Mhz,测试时间比较长。
5:读取工具窗口的寄存器数值,和imxmage.cfg文件的寄存器数值比较,比较之前可以将工具窗口数值和原先 xxx_512MB.inc文件比较,重点修改校准值寄存器(Calibration 3个)
6:重新编译
超频测试
目的:如果超频测试得到的实际数值比标准主频高出10%到20%。说明硬件设计是没有问题的。超频测试之前需经过DDR校准。