是否有用于 FPGA 的 PCIe 的 DMA Linux 内核驱动程序示例?

man*_*nez 6 linux driver fpga linux-kernel dma

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

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

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

小智 0

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

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

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