ZCU102基于Petalinux挂载NVMe SSD

环境说明:

        1. Ubuntu 系统 18.04.4

        2. 开发环境三贱客:Vivado 2020.2  +  Petalinux 2020.2  +  Vitis 2020.2

        3. 开发板: Xilinx ZCU102

        4. SSD:  PCIe - M.2转接板 + 三星 SSD 980 500GB

一、Vivado工程准备

        首先第一步需要在Vivado中建立ZCU102的PCIe Root Complex控制器的工程。编译完之后导出XSA文件,用作Petalinux编译。这里我们直接使用官方的BSP文档,先简化这一步,防止这里设置出现问题。

        在Xilinx官网Petalinux 2020.2下载页面往下拉,可以看到BSP的下载链接,如下图所示:

        将它下载下来,再解压缩。在解压的后的文件内,可以找到vivado工程的文件hardware。将hardware文件里面的project_1_wrapper.bitproject_1_wrapper.xsa文件复制出来,放到我们自己将建立petalinux目录的文件夹里面。后续也可以将hardware文件拷贝到自己的文件夹里,在vivado里面对它进行修改,来进行我们自己的相关设置。

二、Petalinux工程创建及编译

        这里我把上面的bit和xsa文件放在了PCIE_sample文件夹内。在这个文件夹里,打开终端,在终端中创建一个zynqMP模板的工程:

petalinux-create  --type project --template zynqMP --name PCIE_sample

        这里我们使用的是ZCU102,是ZYNQMP的核,所以template里面选择zynqMP,如果是microblaze的核,这里写 --template microblaze;如果是zynq7000的核,这里选择 --template zynq。--name后面是我们自己工程的名字,可以按自己喜好进行命名。

        按回车运行之后显示INFO,创建了工程。在当前目录下建立了工程文件夹。

        在这个文件夹里面进行编译,先cd进工程文件夹,再导入我们的xsa文件

cd PCIE_sample
petalinux-config --get-hw-description=../project_1_wrapper.xsa

等待一会儿后会弹出“misc/config System Configuration”窗口,如下图所示。这里我们确认Subsystem AUTO Hardware Settings开启了,既前面有一个-*-的标志既可。选择下面的Exit并保存退出。

然后进行Petalinux kernel的配置,在终端中输入以下命令:

petalinux-config -c kernel

等待亿点点时间之后会弹出Linux/arm64 5.4.0 Kernel Configuration窗口,按照以下两个路径,分别保证开启 NWL PCIe Core 和 NVM Express block device。没有开启的键盘按“Y”既可开启。
        Device Drivers -> PCI support -> PCI controller drivers -> NWL PCIe Core
        Device Drivers -> NVME Support -> NVM Express block device

配置完之后退出,保存。终端中会显示[INFO] Successfully configured kernel

再进行rootfs的相关设置,在终端中输入以下指令:

petalinux-config -c rootfs

弹出Configuration窗口,分别按一下路径开启相关模块:

        Filesystem Packages->console->utils->pciutils->pciutils
        Filesystem Packages->base->util-linux->util-linux
        Filesystem Packages->base->util-linux->util-linux-mount
        Filesystem Packages->base->util-linux->util-linux-blkid
        Filesystem Packages->base->util-linux->util-linux-mkfs
        Filesystem Packages->base->util-linux->util-linux-fdisk
        Filesystem Packages->base->e2fsprogs->e2fsprogs
        Filesystem Packages->base->e2fsprogs->e2fsprogs-mke2fs

上面的设置进行完之后,对工程进行编译(如果运行过程中出现错误,可能是git拉取的问题,多运行几次就能成功,有一个warning不用管):

petalinux-build

成功之后petalinux工程的创建和编译就完成了。

三、JTAG启动Petalinux

        将Petalinux加载到ZCU102开发板上进行启动的方法有很多,一般都是用SD卡或者直接用JTAG的方式下载。这里我们还是用JTAG的方式下载比较方便,后面调试裸机也是用JTAG,统一不用切换。

        将目录切换到工程的images/linux文件夹下,这里有我们启动需要的相关文件。把之前的vivado的bit文件project_1_wrapper.bit也拷贝到这个目录下。将ubuntu终端的目录切换到images/linux,并运行相关指令:

cd images/linux/

petalinux-package --boot --fsbl zynqmp_fsbl.elf --fpga --uboot --force

petalinux-package --prebuilt --fpga project_1_wrapper.bit

petalinux-boot --jtag --prebuilt 3 --fpga --bitstream project_1_wrapper.bit

运行完最后一条指令后,等待亿点点时间,我们的Petalinux系统就在ZCU102上跑起来了。打开串口监视器,查看第一个串口(115200),能够看到Petalinux的启动信息。

Petalinux的登录账号和密码都是root。

通过lspci命令,可以看到我们的三星SSD已经link上了。

下一篇再进行一下NVMe的速度测试。

参考:

       1. Xilinx Answer 76169

        2. FPGADEVELOPER.COM

  • 3
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ZCU102是赛灵思公司(Xilinx)推出的一款高性能系统级开发板,旨在满足用户对于高性能计算和数据处理的需求。 ZCU102开发板基于赛灵思UltraScale+系列FPGA芯片,拥有强大的计算和处理能力,并配备了丰富的外设接口和高速通信接口。 关于ZCU102的详细信息可以在其官方发布的PDF文档中找到。这份PDF文档提供了完整的ZCU102开发板的规格和特性介绍,包括硬件架构、接口定义、引脚映射、外设配置和使用指南等内容。通过阅读这份文档,用户可以全面了解ZCU102开发板的功能和性能特点,并了解如何进行开发和调试工作。 在ZCU102的PDF文档中,用户可以找到以下信息:首先,硬件架构部分会介绍ZCU102开发板的整体设计结构,包括FPGA芯片、存储器、外设控制器等组成部分。其次,接口定义部分会详细描述每个接口的功能和电气特性,以及连接方式和使用方法。第三,引脚映射部分会列出所有引脚的具体功能和连接方式,便于用户进行硬件设计和连接。此外,外设配置部分会介绍如何配置和使用各个外设接口,如以太网、USB、HDMI等。最后,使用指南部分会提供一些开发和调试实例,以帮助用户快速上手ZCU102开发板,并进行相关软硬件开发工作。 综上所述,ZCU102的PDF文档是一份详尽的官方文档,可以帮助用户全面了解ZCU102开发板的规格和特性,并提供相关的开发指南,帮助用户进行软硬件开发工作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值