ZYNQMP XDMA硬件设计

XDMA调试记录
1 XDMA硬件设计
1.1 XDMA IP核简介
Xilinx 提供的DMA Subsystem for PCI Express IP(简称XDMA)是一个高性能,可配置的、适用于PCIE2.0,PCIE3.0 的SG 模式 DMA,提供用户可选择的 AXI4 接口或者 AXI4-Stream接口。具体的可参考官方文档PG055,一般情况下配置成 AXI4 接口可以加入到系统总线互联,适用于大数据量异步传输,通常情况都会使用到 DDR,AXI4-Stream 接口适用于低延迟数据流传输。
XDMA 是SGDMA,并非Block DMA,SG 模式下,主机会把要传输的数据组成链表的形式,然后将链表首地址通过BAR 传送给XDMA,XDMA 会根据链表结构首地址依次完成链表所指定的传输业务。
XDMA IP核架构
如上图所示,XDMA 提供如下接口:

  1. AXI4/AXI4-Stream:必须选择其中一个,用来数据传输。
  2. AXI4-Lite Master:可选,用来实现PCIE BAR 地址到 AXI4-Lite 寄存器地址的映射,可用来读写用户逻辑寄存器。
  3. AXI4-Lite Slave:可选,用来将XDMA 内部寄存器开放给用户逻辑,用户逻辑可以通过此接口访问 XDMA内部寄存器,不会映射到BAR。
  4. AXI4 Bypass接口:可选,用来实现PCIE 直通用户逻辑访问,可用于低延迟数据传输
    1.2 XDMA硬件设计
    1.2.1设计目的
    将 PCIe NVMe SSD连接到ZYNQMP的PL端,同时,PS端能够直接访问NVMe盘。
    1.2.2 开发环境
  5. Vivado 2018.3
  6. zcu106开发板
  7. FMC子卡
  8. NVMe SSD盘
    1.2.3 XDMA设计概述
    下图是整体的模块设计,接下来会详细描述XDMA的参数设置。

Figure 2整体设计

XDMA BASIC参数配置。Functional Mode选择 AXI Bridge,Mode选择Advanced,AXI Address Width选择49,其余参数保持默认即可,其余具体的参数设置如下图:
 Basic参数配置
PCIe ID参数配置。Sub class Interface Menu配置为PCI to PCI bridge。

Figure 4 PCIe ID配置

地址分配如下图
在这里插入图片描述

XDMA其他的参数配置无需更改,默认即可。
2 嵌入式设计
2.1 Linux内核配置

  1. 由于PCIE设备为NVME SSD盘,同时,SSD盘挂载到PL端,linux配置界面进行如下修改,如下图所示:
    a) 选择如下
Bus support  --->
PCI host controller drivers  --->
   [*] NWL PCIe Core
    [*] Xilinx XDMA PL PCIe host bridge support
		[*] Enable PCI resource re-allocation detection	
Device Drivers  --->
		<*> NVM Express block device
  1. 保存配置文件并重新生成Image镜像文件,进入系统后复制到EMMC重启。
  2. 启动板卡,终端打印如下
    Figure 6 启动参数
    4、系统起来后,输入lspci -mk可查看PCIE接口信息
    Figure 7 PCIE接口信息

2.2 fio测试SSD速度
1、 在buildroot下编译fio工具:
a) menuconfig选择如下

Target packages  --->
    Debugging, profiling and benchmark  --->
        [*] fio

2、fio参数
fio的参数较多,具体的解释如下图所示,测试时,可将以下的参数搭配使用。如:

fio -filename=/dev/nvme0n1 -direct=1 -iodepth 4 -thread=1 -rw=read -ioengine=sync -bs=1M -size=20G -numjobs=1 -runtime=30 -group_reporting -name=my
  • 14
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值