繁体   English   中英

有PCIe for FPGA的DMA Linux内核驱动程序示例吗?

[英]Are there any DMA Linux kernel driver example with PCIe for FPGA?

我想在内核空间中编写一个驱动程序:

  • 在嵌入式系统(使用powerPC)中通信PCIe连接的FPGA。
  • 它使用DMA将信息从FPGA传输到RAM。
  • 用户程序必须访问此信息。

我需要一些例子来做类似的事情来指导我。 有谁知道我在哪里可以找到一些来源?

Connectal( http://www.connectal.org )是一个开源框架,使用户空间软件能够与Xilinx或Altera FPGA进行通信。 实际上,很少有这种通信涉及设备驱动程序。

Connectal支持通过内存映射硬件FIFO在软件和硬件之间传递消息,并且它通过来自FPGA的DMA支持共享内存。

设备驱动程序设计为独立于体系结构,但PCIe通信仅在x86中进行了测试。

Connectal还支持Zynq,因此您将遇到的一些问题(非窥探I / O)已经过调试。

Connectal的硬件目前在Bluespec Systems Verilog中实现,并使用Xilinx或Altera PCIe内核。

Linux设备驱动程序第3版是一个很好的资源。 它包含在PCIe设备中映射所需的所有信息,并创建用户空间程序可以使用的设备文件。 它还附带了示例源代码,可以从本书附带网站上找到。 如果您计划进行大量内核模块开发,我建议您购买本书。

至于让FPGA执行DMA ...以下是我的一些假设:*你有硬件部分,因为你只提到需要内核驱动程序的帮助*你有一个PCIe PLB桥(也假设Virtex 5与PowerPC)*您的FPGA中还有一个映射到PCIe地址空间的硬件DMA控制器

我将创建一个具有IOCTL的设备驱动程序来设置DMA的源/目标地址。 这样,您的用户空间程序就可以执行IOCTL来编程FPGA中的DMA控制器。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM