Re: [问题] DMA driver相关问题

楼主: hizuki (ayaka)   2022-02-25 14:12:15
※ 引述《descent (“雄辩是银,沉默是金”)》之铭言:
: https://github.com/grandemk/qemu_devices
: 你可以参考这个, 先在 qemu 上练习 pci driver
: 另外找 ldd 或是类似的书籍把 pci 那边看过,
: 虽然过时, 但是原理都是一样的
我先向d大说声抱歉,我推文的时候没有看到。
FPGA的厂商我没有用过很多,比如某家提供的IP应该是只有
PCIe slave的支援。现在你需要的是bus master DMA。
最简单的办法就是把PCIe 设备当生成网络卡(基本上这个IP应该有范例),
这样想怎么发资料回来都可以。
也不知道你的FPGA上有没有arm hard core,更傻瓜的办法就是arm core
去生出一个USB peripheral device,然后转发FGPA memory中的东西。
效能也不是很糟糕(usb ethernet, Jumbo MTU配置下)
基本上会需要PCIe传输资料到main memory,除非是自己的memory不够,
要牺牲main memory(有NUMA的platform可以这样做,ARM我要恨死你)
这样做应该是最快的。
不过这种case效能最好的其实是直接把PCI自己的memory给map到host上去,
而且看起来你只需要read不需要write
作者: uniquelegend (back7590)   2022-02-25 23:13:00
不好意思 想请教一下最后一个方法指的是MMIO吗?但这种不会比DMA还要没效率吗?非常感谢您的回复!我一开始忽略了dma的类型!目前在尝试pci dma的范例!
楼主: hizuki (ayaka)   2022-02-27 18:32:00
因为FPGA一般都把资料处理好处理满了,所以这样比较快
作者: uniquelegend (back7590)   2022-02-28 01:04:00
了解!所以在这边使用DMA不会因为节省CPU的处理时间,而增加效率吗?
楼主: hizuki (ayaka)   2022-02-28 01:13:00
其实取决于你fpga功力,一般人都拿来做运算,而 dma这些属于附加的应该不会写多好
作者: uniquelegend (back7590)   2022-02-28 02:26:00
原来如此xDD 那我了解了!非常感谢您的帮助

Links booklink

Contact Us: admin [ a t ] ucptt.com