要开发对应nanopi M4的u-boot,首先去RK3399的wiki查看资料http://opensource.rock-chips.com/wiki_RK3399
在wiki里给出了u-boot开发的资料
打开链接,看到官方提供里准备好的U-boot,我们下载这个U-boot,从这里入手进行分析
对了,开发环境可不是用nanopi,我用的是淘汰的笔记本当作linux开发机,也可以使用虚拟机进行开发。下载速度很慢,要等挺久的。在下载的同时安装开发环境。nanopi M4使用的RK3399芯片带有双核A72、4核A53,都是ARMv8架构,64位芯片,所以官方推荐的是使用ARM64编译器进行编译开发,同样下载下来。
下载完成后打开文件夹,找到make.sh。make.sh是Rockchip提供的u-boot简易编译工具。要使用make.sh还需要下载rkbin,并和u-boot文件放在同一个文件夹下。https://github.com/rockchip-linux/rkbin
执行make.sh,可以看到提示如下
按照提示输入命令 ./make.sh firefly-rk3399,可以看到make.sh脚本自动从configs文件夹下读取了firfly-rk3399的默认编译配置,并开始u-boot的编译。
可以看到,编译完成后产生了这些文件,可以看到u-boot编译后并不只是产生了一个结果文件,而是多个.bin .img文件,这是因为RK3399使用二级load的加载方式。可以参考官方的引导启动文档http://opensource.rock-chips.com/wiki_Boot_option
RK3399使用两机Loader模式载入u-boot,第一段载入ddr配置文件,第二段载入uboot文件和ARM可信固件(arm-trusted-firmware)对应的编译后文件分别为rk3399_loader_v1.17.115.bin、uboot.img、trust.img。这里我使用瑞芯微提供的Linux下载工具将这几个文件下载带eMMC中。下载工具从github获取rkdeveloptool的源代码 git clone https://github.com/rockchip-linux/rkdeveloptool.git (参考http://opensource.rock-chips.com/wiki_Rkdeveloptool)
然后安装环境libusb:sudo apt-get install libudev-dev libusb-1.0-0-dev dh-autoreconf 还有sudo apt-get install pkg-config libusb-1.0
手动编译rkdeveloptool:命令如下
autoreconf -i
./configure
make
make install
完成编译后,将rkdeveloptool和要烧入的文件放在同一个文件夹下
连接开发板的串口和USB线到电脑,主要,在上电的时候不要插上eMMC,上电之后在插上。
使用下列的命令烧入
sudo ./rkdeveloptool db rk3399_loader_v1.17.115.bin
sudo ./rkdeveloptool wl 0x4000 uboot.img
sudo ./rkdeveloptool wl 0x6000 trust.img
第一条指令将ddr启动文件烧入,烧入之后可以在串口接收界面看到DDR的配置数据
然后烧入uboot和trust文件。断开电源然后重新上电,可以看到uboot启动了。
网友评论