# Xilinx QDMA Driver (Windows)
This project contains the driver and user-space software for the Xilinx PCIe Multi-Queue DMA Subsystem IP.
_____________________________________________________________________________
Contents
1. Directory Structure
2. Dependencies
3. Building from Source
3.1 From Visual Studio
3.2 From Command Line
4. Driver Installation
5. Test Utilities
5.1 dma-arw
5.2 dma-rw
5.3 dma-ctl
6. Known Issues
7. References
_____________________________________________________________________________
1. Directory Structure:
<project_root>/
|__ build/ - Generated directory containing build output binaries.
|__ apps/ - Contains application source code which demonstrates the usage of QDMA driver.
| |__ dma-arw/ - Asynchrnous Read/Write PCIe BARs of QDMA IP or perform tx/rx DMA transfers.
| |__ dma-rw/ - Synchronous Read/Write PCIe BARs of QDMA IP or perform tx/rx DMA transfers.
| |__ dma-ctl/ - DMA queues control and configuration for DMA transfers.
|__ docs/ - QDMA documentation
|__ sys/ - Contains the QDMA driver source code.
|__ README.md - This file.
|__ QDMA.sln - Visual Studio Solution.
2. Dependencies
* Windows 10 target machine
* Windows 10 development machine
* Windows Driver Development Kit 10.0.17134.0 (or later)
* Visual Studio 2017
3. Building from Source
3.1 From Visual Studio
----------------------
The Windows driver and sample applications can be built using Visual Studio.
1. Open the *QDMA.sln* solution.
2. Select the appropriate *Build Configuration* (Debug/Release) from the menu bar.
2. Click *Build* from the menu bar.
3. Click *Build Solution*.
This driver project settings currently support 64bit Windows 10 OS.
In order to target a different Windows OS, go to the driver project *Properties->Driver Settings->General* and change *Target OS Version* to the desired OS.
Also *Release* and *Debug* build configurations exist and are configurable via the *Configuration Manager*.
The compiled build products can then be found in the *build/x64/`CONFIG`/* folder. This folder contains three folders:
- *bin/* contains sample and test applications
- *libqdma/* contains libqdma static library
- *sys/* contains the driver
3.2 From Command Line
---------------------
1. Open *Developer Command Prompt for VS2017*
2. Change directory to the project root directory
3. Run the following command:
msbuild /t:clean /t:build QDMA.sln
4. The build should run and display the following
Build succeeded.
0 Warning(s)
0 Error(s)
Time Elapsed 00:01:05.55
For more information on building Windows drivers visit the [MSDN website][ref4].
4. Driver Installation
The easiest way to install the driver is via Windows' *Device Manager*
(_Control Panel->System->Device Manager_).
_**Note**: The driver does not provide a certified signature and uses a test signature instead.
Please be aware that, depending on your target operating system, you may need to enable test-signed drivers in your windows boot configuration
in order to enable installation of this driver. See [MSDN website][ref5] for further information._
1. Open the *Device Manager*
2. Initially the device will be displayed as a *PCI Serial Port* or *PCI Memory Controller*.
3. Right-Click on the device and select *Update Driver Software* and
select the folder of the built QDMA driver (typically *build/x64/`CONFIG`/sys/QDMA/* (where `CONFIG` is *Debug* or *Release*).
4. If prompted about unverified driver publisher, select *Install this driver software anyway*.
5. *Xilinx Drivers -> Xilinx PCIe Multi-Queue DMA* should now be visible in the *Device Manager*
5. Test Utilities
The Xilinx dma-arw and dma-rw are test utilities can perform the following functions
AXI-MM
- H2C/C2H AXI-MM transfer.
AXI-ST-H2C
- Enables the user to perform AXI-ST H2C transfers and checks data for correctness.
AXI-ST-C2H
- Enables the user to perform AXI-ST C2H transfers and checks data for correctness.
register access
- read a register space
- write to a register space
5.1 dma-arw
-----------
e.g.
1. Get the dma-arw help
> dma-arw -h
dma-arw usage:
dma-arw -v : prints the version information
dma-arw qdma<N> mode <0 | 1> <DEVNODE> <read|write> <ADDR> [OPTIONS] [DATA]
- qdma<N> : unique qdma device name (<N> is BBDDF where BB -> PCI Bus No, DD -> PCI Dev No, F -> PCI Fun No)
- mode : 0 : this mode uses ReadFile and WriteFile async implementation
: 1 : this mode uses ReadFileEx and WriteFileEx async implementation
- DEVNODE : One of: queue_mm_ | queue_st_*
where the * is a numeric wildcard (0 - 511for queue).
- ADDR : The target offset address of the read/write operation.
Applicable only for control, user, queue_mm device nodes.
Can be in hex or decimal.
- OPTIONS :
-a set alignment requirement for host-side buffer (default: PAGE_SIZE)
-b open file as binary
-f use contents of file as input or write output into file.
-l length of data to read/write (default: 4 bytes or whole file if '-f' flag is used)
- DATA : Space separated bytes (big endian) in decimal or hex,
e.g.: 17 34 51 68
or: 0x11 0x22 0x33 0x44
2. Read/Write four bytes from AXI-MM at zeroth offset on queue zero of PF 0
> dma-arw qdma17000 mode 0 queue_mm_0 read 0 -l 4
> dma-arw qdma17000 mode 0 queue_mm_0 write 0 0xA 0xB 0XC 0xD
> dma-arw qdma17000 mode 1 queue_mm_0 read 0 -l 4
> dma-arw qdma17000 mode 1 queue_mm_0 write 0 0xA 0xB 0XC 0xD
3. Read four bytes from AXI-ST-H2C on queue zero
> dma-arw qdma17000 mode 0 queue_st_0 read -l 4
> dma-arw qdma17000 mode 1 queue_st_0 read -l 4
4. Write four bytes to AXI-ST-C2H on queue zero
> dma-arw qdma17000 mode 0 queue_st_0 write -l 4
> dma-arw qdma17000 mode 1 queue_st_0 write -l 4
5. Read/Write four bytes from control register space at zeroth offset
> dma-arw qdma17000 mode 0 control read 0 -l 4
> dma-arw qdma17000 mode 0 control write 0 0xA 0xB 0XC 0xD
> dma-arw qdma17000 mode 1 control read 0 -l 4
> dma-arw qdma17000 mode 1 control write 0 0xA 0xB 0XC 0xD
5.2 dma-rw
-----------
e.g.
1. Get the dma-rw help
> dma-rw -h
dma-rw usage:
dma-rw -v : prints the version information
dma-rw qdma<N> <DEVNODE> <read|write> <ADDR> [OPTIONS] [DATA]
- qdma<N> : unique qdma device name (<N> is BBDDF where BB -> PCI Bus No, DD -> PCI Dev No, F -> PCI Fun No)
- DEVNODE : One of: control | user | queue_mm_ | queue_st_*
where the * is a numeric wildcard (0 - 511for queue).
- ADDR : The target offset address of the read/write operation.
Applicable only for control, user, queue_mm device nodes.
Can be in hex or decimal.
- OPTIONS :
没有合适的资源?快使用搜索试试~ 我知道了~
dma-ip-drivers-master.zip
共371个文件
h:146个
c:103个
makefile:19个
需积分: 5 2 下载量 187 浏览量
2023-04-14
11:06:40
上传
评论
收藏 2.5MB ZIP 举报
温馨提示
xilinx开源的PCIE驱动源码,不过最核心的只有LINUX源码,WINDOWS需要注册。我传到另一个帖子里了。这个资源可以从github上直接下载,放在这里是考虑github经常打不开。
资源推荐
资源详情
资源评论
收起资源包目录
dma-ip-drivers-master.zip (371个子文件)
Resource.aps 3KB
datafile_32M.bin 32MB
datafile_256K.bin 257KB
datafile256K.bin 256KB
datafile256K.bin 256KB
datafile_16bit_pattern.bin 256KB
datafile_8K.bin 8KB
datafile0_4K.bin 4KB
datafile3_4K.bin 4KB
datafile2_4K.bin 4KB
datafile1_4K.bin 4KB
datafile4K.bin 4KB
datafile4K.bin 4KB
meson.build 3KB
eqdma_cpm5_access.c 203KB
eqdma_cpm5_access.c 202KB
eqdma_soft_access.c 198KB
eqdma_soft_access.c 197KB
qdma_cpm4_reg_dump.c 193KB
qdma_cpm4_reg_dump.c 192KB
qdma_s80_hard_reg_dump.c 192KB
qdma_soft_access.c 176KB
qdma_soft_access.c 175KB
qdma_soft_access.c 173KB
qdma_s80_hard_access.c 170KB
qdma_cpm4_access.c 169KB
qdma_cpm4_access.c 168KB
eqdma_soft_access.c 166KB
eqdma_soft_reg_dump.c 138KB
eqdma_soft_reg_dump.c 137KB
libxdma.c 120KB
eqdma_cpm5_reg_dump.c 105KB
eqdma_cpm5_reg_dump.c 104KB
eqdma_soft_reg_dump.c 102KB
libqdma_export.c 76KB
nl.c 69KB
dmaperf.c 57KB
qdma_mbox_protocol.c 56KB
qdma_mbox_protocol.c 55KB
qdma_devops.c 54KB
rte_pmd_qdma.c 53KB
qdma_descq.c 52KB
qdma_mod.c 48KB
qdma_rxtx.c 44KB
qdma_access_common.c 44KB
qdma_access_common.c 43KB
commands.c 42KB
qdma_vf_ethdev.c 38KB
xdev.c 37KB
qdma_access_common.c 36KB
cmd_parse.c 33KB
qdma_st_c2h.c 32KB
qdma_xdebug.c 30KB
xvsec_mcap_versal.c 30KB
xvsec_mcap_us.c 30KB
testapp.c 30KB
qdma_ethdev.c 29KB
dmaxfer.c 28KB
qdma_debugfs_dev.c 27KB
qdma_debugfs_queue.c 27KB
qdma_intr.c 26KB
qdma_context.c 25KB
dmaxfer.c 25KB
dmalat.c 25KB
xvsec_mcap.c 25KB
dmactl.c 23KB
qdma_resource_mgmt.c 22KB
xvsec_mcap.c 22KB
qdma_resource_mgmt.c 21KB
cdev_sgdma.c 21KB
qdma_resource_mgmt.c 21KB
mcap_ops.c 21KB
xvsec_parser.c 20KB
cdev.c 19KB
qdma_common.c 18KB
libqdma_config.c 17KB
qdma_regs.c 16KB
qdma_device.c 15KB
xdma_cdev.c 14KB
qdma_mbox.c 14KB
xvsec_drv.c 14KB
main.c 12KB
dmactl_reg.c 12KB
qdma_mbox.c 12KB
xvsec.c 10KB
xdma_mod.c 9KB
qdma_platform.c 9KB
qdma_dpdk_compat.c 8KB
qdma_user.c 8KB
dma_from_device.c 8KB
dma_to_device.c 8KB
xdma_thread.c 7KB
parse_obj_list.c 7KB
main.c 7KB
cdev_ctrl.c 7KB
qdma_sriov.c 7KB
dma_to_device.c 7KB
dma_from_device.c 6KB
cdev_xvc.c 6KB
qdma_thread.c 5KB
共 371 条
- 1
- 2
- 3
- 4
资源评论
sxcong
- 粉丝: 228
- 资源: 21
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 5uonly.apk
- 2023-04-06-项目笔记 - 第一百十九阶段 - 4.4.2.117全局变量的作用域-117 -2024.04.30
- 2023-04-06-项目笔记 - 第一百十九阶段 - 4.4.2.117全局变量的作用域-117 -2024.04.30
- 前端开发技术实验报告:内含4四实验&实验报告
- Highlight Plus v20.0.1
- 林周瑜-论文.docx
- 基于MIC+NE555光敏电阻的声光控电路Multisim仿真原理图
- 基于JSP毕业设计-基于WEB操作系统课程教学网站的设计与实现(源代码+论文).zip
- 基于LM324和LM386的音响放大器Multisim仿真+PCB电路原理图
- Python机器学习与数据挖掘环境配置与库验证
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功