uboot移植-DDR初始化

时间:2024-04-10 10:30:47

Linux最终运行在DDR中

配置:wind10,Ubuntu16.04,MX6ul-ALPHA开发板,ddr_stress_tester工具。
内容:在编译uboot之前初始化DDR。

uboot功能是启动linux

将linux的内核和设备树从EMMC,或者网络中拷贝到DDR中,linux在DDR中运行。每个板子的DDR不同,所以要初始化。
编译Uboot:
uboot移植-DDR初始化
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。配置工具信息如图
uboot移植-DDR初始化
Download,显示相关信息,校准(calibration)。ALPHA开发板主频800Mhz,测试选择0-400Mhz,测试时间比较长。
5:读取工具窗口的寄存器数值,和imxmage.cfg文件的寄存器数值比较,比较之前可以将工具窗口数值和原先 xxx_512MB.inc文件比较,重点修改校准值寄存器(Calibration 3个)
6:重新编译

超频测试

目的:如果超频测试得到的实际数值比标准主频高出10%到20%。说明硬件设计是没有问题的。超频测试之前需经过DDR校准。