ZYNQ Uboot编译
Uboot下载
- GitHub下载源码,地址https://github.com/Xilinx/u-boot-xlnx.git
- 下载主分支即可,不必听从网上教程下载与Vivado版本号相同的分支
Versioning:
Starting with the release in October 2008, the names of the releases
were changed from numerical release numbers without deeper meaning
into a time stamp based numbering. Regular releases are identified by
names consisting of the calendar year and month of the release date.
Additional fields (if present) indicate release candidates or bug fix
releases in “stable” maintenance trees.
Examples:
U-Boot v2009.11 - Release November 2009
U-Boot v2009.11.1 - Release 1 in version November 2009 stable tree
U-Boot v2010.09-rc1 - Release candidate 1 for September 2010 release
(从 2008 年 10 月发布开始,版本的名称从数字版本号更改而来,没有更深层次的含义转换为基于时间戳的编号。常规版本由以下人员标识名称由发布日期的日历年和月份组成。其他字段(如果存在)表示候选版本或错误修复在“稳定”维护树中发布。)
- 使用旧版Vivado编译生成布局文件,若uboot启动失败或遇到其他问题再尝试回退同版本验证.
Uboot编译
切换至下载目录,执行以下命令:
1 | export CROSS_COMPILE=arm-linux-gnueabihf- #设置交叉编译器前缀 |
对于使用版本高于2020.1的uboot源码编译ZYNQ的uboot,xilinx 制作了统一的配置文件xilinx_zynq_virt_defconfig.这在Xilinx Wiki提到:
Configuring U-Boot (>= 2020.1 Release)
After the build process completes the target u-boot elf-file is created in the top level source directory, named . Additionally in the tools/ directory the utility is created, which is used in other tasks to wrap images into u-boot format.u-boot/u-boot.elfmkimage
其他版本或FPAG系列具体参考网站说明Build U-boot.
或使用脚本就不需要指定环境变量
1 |
|
编译完成后再当前目录可以看到u-boot.elf
烧录Falsh
使用SDK或者Vitis制作boot.bin文件,主要步骤如下:
- 使用VIVADO生成Block Design根据原理图初始化FLASH或SD卡相关配置,初始化UART配置,导出硬件布局文件
.xsa
- 使用vitis创建域,创建时候勾选初始化引导文件,这样创建成功后可以在域中找到FSBL.elf文件而不需要额外创建FSBL应用.
- 使用Vitis制作BOOT.bin文件后使用Vivado烧录,或直接使用Vitis烧录也行
以上介绍大概步骤,具体细节可根据步骤参考网上教程.
注意: 若VIVADO烧写出错,可尝试将Verify
勾选去掉重启Vivado后尝试烧写.
2024年6月7日更新: 使用Vivado2022版本烧写Flash时失败,多次尝试后发现Flash锁死,建议按照以上步骤使用SD卡启动,Flash解锁步骤还在摸索中…
SD卡文件可以在编译后的sd_card目录中找到BOOT.bin文件,将其放到SD中就可以启动.
施工中….