Re: [問題] DMA driver相關問題

看板LinuxDev作者 (入贅桧月家,我妻彩花)時間2年前 (2022/02/25 14:12), 編輯推噓3(307)
留言10則, 2人參與, 2年前最新討論串3/3 (看更多)
※ 引述《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

02/25 23:13, 2年前 , 1F
不好意思 想請教一下最後一個方法指的是
02/25 23:13, 1F

02/25 23:14, 2年前 , 2F
MMIO嗎?但這種不會比DMA還要沒效率嗎?
02/25 23:14, 2F

02/25 23:18, 2年前 , 3F
非常感謝您的回覆!我一開始忽略了dma的類
02/25 23:18, 3F

02/25 23:20, 2年前 , 4F
型!目前在嘗試pci dma的範例!
02/25 23:20, 4F

02/27 18:32, 2年前 , 5F
因為FPGA一般都把資料處理好處理滿了,所以這樣比較快
02/27 18:32, 5F

02/28 01:04, 2年前 , 6F
了解!所以在這邊使用DMA不會因為節省
02/28 01:04, 6F

02/28 01:04, 2年前 , 7F
CPU的處理時間,而增加效率嗎?
02/28 01:04, 7F

02/28 01:13, 2年前 , 8F
其實取決於你fpga功力,一般人都拿來做運算,而 dma這些屬
02/28 01:13, 8F

02/28 01:13, 2年前 , 9F
於附加的應該不會寫多好
02/28 01:13, 9F

02/28 02:26, 2年前 , 10F
原來如此xDD 那我瞭解了!非常感謝您的幫助
02/28 02:26, 10F
文章代碼(AID): #1Y67D3oz (LinuxDev)
文章代碼(AID): #1Y67D3oz (LinuxDev)