我有一個關於在PCIe上使用突發讀寫的問題。我有一個通過PCIe連接到CPU的fpga。我有一個簡單的驅動程序,只是爲了測試。驅動程序向fpga寫入和讀取數據。 fpga包含一個寫入和讀取數據的sram核心。讀取和寫入工作正常,但如果我從設備讀取,則不會發生突發事件。如果我將數據寫入fpga,如果我用ioremap_wc()映射BAR,爆發效果會很好。但是,如果我從fpga中讀取,那麼cpu只會使單個訪問無突發。我發現我必須將內存標記爲回寫以便能夠在讀取寫入傳輸時緩存數據,但是如果我使用/ proc/mtrr標記我的地址回寫,則在讀取和寫入時不會發生突發事件。 PCI標頭中的BAR被標記爲可預取。你們有沒有人知道如何在pci總線上實現突發讀寫?我希望有人能幫助我。Linux驅動程序PCI突發傳輸
0
A
回答
0
在PICe總線上獲得突發傳輸的最佳方式是使用DMA控制器而不是處理器I/O。如果您的FPGA是PCIe總線主設備,您可以對其進行編程以傳輸數據。否則,大多數平臺內置DMA控制器。
我希望寫入組合來執行讀取與未緩存相同。但即使使用ioremap_cache(),您的平臺也可能不會爆發PIO讀取。它可以取決於您的處理器,執行讀取和系統邏輯的指令。
相關問題
- 1. Linux PCI驅動程序 - pci_enable_device失敗
- 2. Linux用戶空間PCI驅動程序
- 3. Linux PCI驅動程序,mmap預取
- 4. Linux驅動程序開發:PCI和PCIe驅動程序之間的區別?
- 5. Linux如何與PCI驅動程序通信
- 6. Pci驅動程序如何在Linux中工作
- 7. 將虛擬PCI設備與linux設備驅動程序接口
- 8. Linux驅動程序:我如何訪問PCI聲卡ADC和DAC
- 9. 2.6內核中的Linux PCI驅動程序
- 10. 如何調試PCI設備和Linux驅動程序
- 11. 卸載PCI設備驅動程序
- 12. 驅動程序中的PCI Express中斷
- 13. VxWorks PCI驅動程序 - 編譯錯誤
- 14. PCI驅動程序(request_mem_region失敗)
- 15. 驅動程序拒絕訪問PCI卡
- 16. Windows驅動程序編程或Linux驅動程序編程?
- 17. Linux設備驅動程序:將標誌傳遞給驅動程序
- 18. I2C linux驅動程序
- 19. 學習linux驅動程序
- 20. Linux驅動程序phys_mem_access_prot undefined
- 21. Linux驅動程序和device.h
- 22. Linux設備驅動程序
- 23. Linux TTY和驅動程序
- 24. 訪問Linux驅動程序
- 25. Linux SPI驅動程序crasj
- 26. 嵌入式Linux的Linux驅動程序
- 27. 使用驅動程序內部的驅動程序的Linux
- 28. 使用兩個不同的PCI驅動程序共享PCI設備
- 29. xorg輸入驅動程序
- 30. 自定義PCI驅動程序無法探測設備