【MPSoC ZCU102 BOOT.BIN文件制作】

时间:2024-03-29 15:18:30
 

 

1 说明

本文介绍了通过Xilinx官方网站提供的Vivado、petalinux等工具制作官方开发板Xilinx MPSoC ZCU102启动文件BOOT.BIN的过程。此启动文件可通过SD启动方式被加载,最终引导启动u-boot。基本流程是首先通过Vivado生成ZCU102的硬件描述文件(2019版本中为xsa文件,之前版本为hdf文件),再由petalinux编译生成BOOT.BIN。本文中使用Vivado、petalinux均为2019版本,即目前最新版本。

2 硬件描述文件制作

2.1 开发环境与参考

本文使用windows版本Vivado,运行环境为windows 10。详细信息可参考官方文档:

https://china.xilinx.com/support/documentation/sw_manuals/xilinx2019_2/ug898-vivado-embedded-design.pdf

2.2 下载安装Vivado

2019版本Vivado包含在Vitis中,Vitis下载地址:

https://china.xilinx.com/member/forms/download/xef.html?filename=Xilinx_Unified_2019.2_1106_2127_Win64.exe

       注意下载前需要注册Xilinx官网账号,下载后双击运行。如图 2.1所示。

【MPSoC ZCU102 BOOT.BIN文件制作】

2.1 打开安装软件

       输入Xilinx官网账号,选择下载完整的安装镜像(以备后用),选择下载位置(需至少30G空间)。如图 2.2所示。

【MPSoC ZCU102 BOOT.BIN文件制作】

2.2 配置下载位置

选在下载Vivado软件,如图 2.3所示。

【MPSoC ZCU102 BOOT.BIN文件制作】

2.3 选择Vivado软件

选择Vivado HL System Edition后点击下一步,在下一页面中确保选择UltraScale+,如图 2.4所示。

【MPSoC ZCU102 BOOT.BIN文件制作】

2.4 选择UltraScale+

       下一步后点击“下载”进入下载页面,这里需要耗费很长一段时间。下载过程可能中断,选择断电续传模式重新下载即可。如图 2.5所示。

【MPSoC ZCU102 BOOT.BIN文件制作】

2.5 下载软件

       下载完成后双击xsetup.exe安装到对应位置即可。成功安装后双击桌面生成的Vivado 2019.2,打开界面如图 2.6所示。

【MPSoC ZCU102 BOOT.BIN文件制作】

2.6 Vivado界面

2.3 创建工程

       点击创建工程,如图 2.7所示。

【MPSoC ZCU102 BOOT.BIN文件制作】

2.7 创建工程

点击下一步后编辑工程名称与工程位置,如图 2.8所示。

【MPSoC ZCU102 BOOT.BIN文件制作】

2.8 编辑工程名称与工程位置

选择Example Project后选择Base Zynq UltraScale+ MPSoC,如图 2.9所示。

【MPSoC ZCU102 BOOT.BIN文件制作】

2.9 选择Base Zynq UltraScale+ MPSoC

选择ZCU102开发板,如图 2.10所示。

【MPSoC ZCU102 BOOT.BIN文件制作】

2.10 选择ZCU102开发板

点击完成创建工程。新创建的工程包括ZCU102所需的默认配置,可按需修改。

2.4 生成导出硬件描述文件

点击Run Synthesis,如图 2.11所示。

【MPSoC ZCU102 BOOT.BIN文件制作】

2.11 Run Synthesis

       等待右上角正在运行中的标志结束,如图 2.12所示。

【MPSoC ZCU102 BOOT.BIN文件制作】

2.12 运行中

在Design Runs中可查看当前运行的位置,如图 2.13所示。

【MPSoC ZCU102 BOOT.BIN文件制作】

2.13 运行位置

运行结束后出现完成界面,选择Run Implementation,点击OK,如图 2.14所示。

【MPSoC ZCU102 BOOT.BIN文件制作】

2.14 完成 Synthesis

使用同样的方式查看Run Implementation运行情况,此步骤会运行较长时间。完成后显示完成界面,点击OK即可。如图 2.15所示。

【MPSoC ZCU102 BOOT.BIN文件制作】

2.15 完成

       点击file--->Export--->Export Hardware…,如图 2.16所示。

【MPSoC ZCU102 BOOT.BIN文件制作】

2.16 点击生成硬件描述文件

默认导出路径为工程所在目录,不要修改此目录,如图 2.17所示。

【MPSoC ZCU102 BOOT.BIN文件制作】

2.17 导出位置

成功导出后可在对应目录下找到文件Base_Zynq_MPSoC_wrapper.xsa,如图 2.18所示。

【MPSoC ZCU102 BOOT.BIN文件制作】

2.18 生成xsa文件

点击Generate Bitstream生成BIT文件,此过程需要持续一段时间,如图 2.19所示。

【MPSoC ZCU102 BOOT.BIN文件制作】

                                                               图 2.19 生成Generate Bitstream

生成过程可见右上角状态栏与Design Runs窗口,如图 2.20所示。

【MPSoC ZCU102 BOOT.BIN文件制作】

2.20 生成过程

成功生成后弹出已完成界面,点击OK即可,如图 2.21所示。

【MPSoC ZCU102 BOOT.BIN文件制作】

2.21 生成结束

点击File--->Export--->Export Bitstream File,生成bit文件,如图 2.22所示。

【MPSoC ZCU102 BOOT.BIN文件制作】

2.22 导出bit文件

选择导出bit文件路径,这里选择桌面,如图 2.23所示。

【MPSoC ZCU102 BOOT.BIN文件制作】

                                                                         图 2.23 导出bit文件

到此生成了2个硬件描述文件,xsa与bit。

3 编译BOOT.BIN

3.1 运行环境与参考

编译BOOT.BIN需在Linux环境中进行,官方推荐Ubuntu16.04 32bit,建议不要修改。本文在Ubuntu16.04 32bit虚拟机中进行操作。详细信息请参考官方文档:

https://china.xilinx.com/support/documentation/sw_manuals/xilinx2019_2/ug1144-petalinux-tools-reference-guide.pdf

在虚拟机中安装运行环境,如程序清单 3.1所示。

程序清单 3.1 安装环境

# sudo apt-get install -y gcc git make net-tools libncurses5-dev ttpd zlib1g-dev libssl-dev flex bison libselinux1 gnupg wget diffstat chrpath socat xterm autoconf libtool tar unzip texinfo zlib1g-dev gcc-multlib build-essental -dev zlib1g:i386 screen pax gzip

3.2 下载安装

首先需要下载petalinux(2019)与ZCU102官方BSP。注意下载前需要登录Xilinx账户,下载地址:

https://china.xilinx.com/member/forms/download/xef.html?filename=petalinux-v2019.2-final-installer.run

https://china.xilinx.com/member/forms/download/xef.html?filename=xilinx-zcu102-v2019.2-final.bsp

3.3 安装petalinux

注意:安装petalinux不能使用root用户

创建安装目录,创建后更改目录所有者为用户:

$ sudo mkdir -p /opt/pkg/petalinux/2019.2

$ sudo chown -R stone:stone /opt/pkg/petalinux

安装petalinux

$ ./petalinux-v2019.2-final-installer.run /opt/pkg/petalinux/2019.2

安装过程可能会缺少部分库,按需要安装即可

获取设置脚本,配置当前环境,成功获取后即可以使用petalinux-xxx命令,如图 3.1所示。

【MPSoC ZCU102 BOOT.BIN文件制作】

3.1 获取设置脚本

3.4 创建、配置、编译、打包

使用官方下载的ZCU102 BSP创建工程:

$ petalinux-create -t project -s /home/stone/xilinx-zcu102-v2019.2-final.bsp

       成功创建工程后在当前目录出现工程目录,如图 3.2所示。

【MPSoC ZCU102 BOOT.BIN文件制作】

3.2 工程目录

       先拷贝硬件配置文件Base_Zynq_MPSoC_wrapper.xsa到某个目录下,再导入硬件配置:

$ cp Base_Zynq_MPSoC_wrapper.xsa /home/stone/

$ cd /home/stone/petalinux/xilinx-zcu102-2019.2

$ petalinux-config --get-hw-description=/home/stone/

       配置过程中会自动在/home/stone目录下搜索xsa文件。配置中出现选择菜单可直接退出不理会。

       编译:

$ petalinux-build

       拷贝准备好的bit文件,通过如下命令进行打包:

$ petalinux-package --boot --format BIN --fsbl images/linux/zynqmp_fsbl.elf --u-boot images/linux/u-boot.elf --pmufw images/linux/pmufw.elf --fpga /home/stone/*.bit --force

       打包结束后即可在images/linux目录下生成BOOT.BIN文件,此目录下还包括官方linux镜像、文件系统等文件,如图 3.3所示。

【MPSoC ZCU102 BOOT.BIN文件制作】

3.3 BOOT.BIN

将BOOT.BIN文件放入SD卡,切换ZCU102开发板到SD卡启动,上电即可启动设备。

3.5 使用自定义u-boot源码

使用官方BSP默认无法查看源码,但可以通过配置其他的源码路径进行修改。下载Xilinx官方u-boot源码,下载地址:

https://github.com/Xilinx/u-boot-xlnx/tree/xilinx-v2019.2

下载后解压到任意目录,输入命令$ petalinux-config打开配置菜单,选择

Linux Components Selection --->

u-boot () --->

       选择ext-local-src,返回

       External u-boot local source settings --->

       输入解压u-boot源码路径,如图 3.4所示。

【MPSoC ZCU102 BOOT.BIN文件制作】

3.4 更换源码路径

       保存退出后使用命令petalinux-bulid重新编译即可。