2016-07-29 48 views
2

我在寫一個以太網驅動程序。我想這樣做在2個步驟:以太網驅動程序 - 不使用DMA?

  1. 寫它沒有DMA(簡單的memcpy)使用DMA
  2. 改寫它。

我想問一下,如果不使用DMA(或者內核以太網框架堅持驅動程序應該使用DMA),是否有可能先執行它?

回答

3

內核不會阻止你做任何事情。但具體而言,我看不到它阻止你寫skbuffs,也沒有映射設備內存。

老實說,如果您想查找不使用DMA的網絡驅動程序代碼示例,您可能會遇到最大困難。如果我理解正確,即使是Linux netpoll(用於通過網絡進行崩潰記錄)也不會避免驅動程序中的DMA。

我不知道memcpy()會的工作,雖然...

您需要閱讀您的文檔(e.g.specifically)。看起來你需要在IO內存上使用memcpy_fromio()memcpy_toio()