看板 LinuxDev 關於我們 聯絡資訊
※ 引述《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 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 192.147.44.15 (美國) ※ 文章網址: https://www.ptt.cc/bbs/LinuxDev/M.1645769539.A.CBD.html
uniquelegend: 不好意思 想請教一下最後一個方法指的是 02/25 23:13
uniquelegend: MMIO嗎?但這種不會比DMA還要沒效率嗎? 02/25 23:14
uniquelegend: 非常感謝您的回覆!我一開始忽略了dma的類 02/25 23:18
uniquelegend: 型!目前在嘗試pci dma的範例! 02/25 23:20
hizuki: 因為FPGA一般都把資料處理好處理滿了,所以這樣比較快 02/27 18:32
uniquelegend: 了解!所以在這邊使用DMA不會因為節省 02/28 01:04
uniquelegend: CPU的處理時間,而增加效率嗎? 02/28 01:04
hizuki: 其實取決於你fpga功力,一般人都拿來做運算,而 dma這些屬 02/28 01:13
hizuki: 於附加的應該不會寫多好 02/28 01:13
uniquelegend: 原來如此xDD 那我瞭解了!非常感謝您的幫助 02/28 02:26