ZYNQ移植Linux
博客说明
撰写日期 | 2019.09.06 |
---|---|
完稿日期 | 2019.09.06 |
最近维护 | 暂无 |
本文作者 | multimicro |
联系方式 | multimicro@qq.com |
资料链接 | 本文无附件资料 |
GitHub | https://github.com/wifialan/ |
原文链接 | https://blog.youkuaiyun.com/multimicro/article/details/100585223 |
开发环境
环境说明 | 详细信息 | 备注信息 |
---|---|---|
操作系统 | Windows_x64、Manjaro18.04 KDE、Debian | |
Vivado版本 | 2018.3 | 官网地址 |
开发板型号 | ZYNQ7010(米联客 MiZ701N 黑色版本) | |
编译器版本 | gcc-linaro-7.3.1-2018.05-x86_64_arm-linux-gnueabihf | 官网地址 |
编译器路径 | /opt/toolschain/linaro/bin/arm-linux-gnueabihf- | 绝对路径 |
Xilinx uboot版本 | u-boot-xlnx-v2018.3 | 官网地址 |
Xilinx kernel版本 | linux-xlnx-v2018.3 | 官网地址 |
文件系统 | linaro-precise-ubuntu-desktop-20121124-560 | 官网地址 |
SD卡型号 | SanDisk C10 A1至尊高速移动版 16GB | 参考链接 |
0. SD卡制作
参考ZYNQ的Linux Linaro系统镜像制作SD卡启动
1. 移植u-boot
1.1 流程概述
网上移植u-boot的教程比较多,这里仅说明一下u-boot的编译流程,本博客采用的是2018.3版本。
- 打开vivado 2018.3,按照ZYNQ开发_Vivado_裸机开发流程建立起一个工程,由于本博客是要求从SD卡启动,所以,在ZYNQ的IP内需要勾选上SD卡外设。然后编译工程,产生bit文件。
- 提前说一下这一步,从vivado内打开Xilinx SDK工具,记得导入bit文件。然后建立u-boot所需要的FSBL工程,详情参考ZYNQ的Linux Linaro系统镜像制作SD卡启动,最终生成的BOOT.bin文件默认在此文件夹下:
- 编译uboot工程,产生u-boot.elf文件,供给步骤2所需
1.2 编译uboot
git 下来Xilinx公司提供的uboot工程:
proxychains4 git clone https://github.com/Xilinx/u-boot-xlnx.git
前面的proxychains4
是走的终端代理,不走代理的话,直接克隆即可。走代理的方式详情参考重装Ubuntu18.04后的系统配置工作总结里面内容。
根据自己使用的vivado版本进行检出对应的tag文件,不清楚tag名称的,可以使用git tag
命令查看
*
然后检出tag文件内容使用
git checkout xilinx-v2018.3
git checkout -b xilinx-v2018.3
此时的uboot版本和vivado版本一致,可以进行后续工作。
在此之前要更改一个配置文件
vim configs/zynq_zc702_defconfig
禁掉此行,否则uboot会在FLASH里面读取配置文件。然后
vim arch/arm/dts/zynq-zc702.dts
更改频率,这个频率就是在vivado建立工程时的晶振频率50MHz
然后在终端里面
make CROSS_COMPILE=/opt/toolschain/linaro/bin/arm-linux-gnueabihf- ARCH=arm zynq_zc702_defconfig
make CROSS_COMPILE=/opt/toolschain/linaro/bin/arm-linux-gnueabihf- ARCH=arm menuconfig
make CROSS_COMPILE=/opt/toolschain/linaro/bin/arm-linux-gnueabihf- ARCH=arm -j8
最后产生了u-boot文件
执行命令,生成elf文件
cp u-boot u-boot.elf
然后用此u-boot.elf完成上述步骤2
1.3 测试uboot运行情况
此SD卡里面有完整的BOOT.bin、devicetree.dtb、uEnv.txt、uImage文件,所以打印出的情况是下面这种(截选部分打印信息)
U-Boot 2018.01-dirty (Sep 06 2019 - 18:55:56 +0800) Xilinx Zynq ZC702
Model: Zynq ZC702 Development Board
Board: Xilinx Zynq
Silicon: v3.1
I2C: ready
DRAM: ECC