标签: fpga

Linux 用户空间 PCI 驱动程序选项?(uio_pci_generic)

我的 PCI 总线上有一个 Xilinx FPGA PCIe 端点。Linux 很好地识别了设备,lspci 中的一切看起来都很完美。

我的问题是关于用户空间的 PCI 访问选项以及什么是好/坏。

选项 1:通过 /sys/.../resource0 直接访问

(到目前为止我只成功完成了一项工作)

我可以打开并 mmap 说 /sys/bus/pci/devices/XXXX:XX:XX.X/resource0 然后 mmap 并读/写。只需要先修复权限即可。我的问题是,这是好还是坏方法?感觉这可能不是访问 PCI 地址空间的首选方法?

选项 2:使用 uio_pci_generic

我已经成功配置我的 FPGA,以便该驱动程序能够实际连接,但它需要中断这一事实确实很烦人。似乎这无法访问任何接受中断和配置内存空间?这对我来说似乎不太有用?我错过了什么吗?

选项 3:编写我自己的 uio 驱动程序

这也许是一个合理的选择?我不太确定这有多困难。这样做的一个可能的优点是我可以访问 DMA,从而大大加快速度。

选项 4:编写完全自定义的 Linux PCI 驱动程序

如果可能的话我想避免这个选项

我的问题是最好的方法是什么,以及选项 1 的具体缺点是什么。或者我应该考虑其他方法吗?

(我正在运行 debian,内核已打过 3.14.15 rt 补丁)

linux drivers kernel pci fpga

5
推荐指数
1
解决办法
4979
查看次数

标签 统计

drivers ×1

fpga ×1

kernel ×1

linux ×1

pci ×1