2016-07-29 43 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()