u-boot2020.04移植(1、u-boot的编译)

最近公司项目用到了xilinx的zynq7000 soc,开发方式有所不同,驱动的数据都是通过设备树来提供,以前没接触过,所以想系统的学习一下相关的内容,但是手头只有一块三星的s5pv210开发板,使用的u-boot和linux系统不支持设备树,只好自己移植,以此记录一下移植过程,加深理解与记忆,如果你也刚好有需要,欢迎参考与指正,我主要以u-boot本身为主,对于硬件相关的不会怎么涉及。

我使用的虚拟机是ubuntu1804,选的u-boot版本是最新的2020.04(u-boot下载链接),由于三星提供的交叉编译工具链版本太低了,编译不了这个版本的u-boot,所以还得重新下载一个交叉编译器(交叉编译工具链下载链接),这种下载方式可能很慢,你也可以直接在ubuntu中通过apt下载,使用国内的源,下载比较快,这样下载的直接就是最新版本,命令如下:

sudo apt install gcc-arm-linux-gnueabi

 注意工具链的名字,不要下载错了。

上面这些准备好后,就可以尝试编译u-boot了,在编译u-boot之前,需要先配置使用的哪块单板,但在u-boot源文件configs目录下找不到V210这块板子的默认配置文件,只好看看有没有与V210最接近的板子,根据s5pv210的手册可以得知,V210,C110与C111这三块芯片非常相似,用的手册都是一样的(见图1),通过搜索关键字发现s5p-goni这块板子里面有C110相关的内容,所以决定以这块板子为基础进行移植,我没有另外的添加新的单板,所以后面移植全部都是直接在s5p-goni相关的源文件中修改。

图1

先执行如下命令生成配置文件.config:

make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- s5p_goni_defconfig

我这里没有修改Makefile,所以需要手动指定交叉编译器和体系架构类型,正确执行结果如下(图2):

图2

 然后执行如下命令编译u-boot:

make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi-

正确执行结果如下(图3):

图3

到这里,编译u-boot就完成了,后面就可以进行移植了。

猜你喜欢

转载自blog.csdn.net/a1598025967/article/details/106876269