首页 文章

以太网驱动程序 - 不使用DMA?

提问于
浏览
2

我正在写一个以太网驱动程序 . 我想分2步完成:

  • 不用DMA写它(简单的memcpy)

  • 使用DMA重写它 .

我想问一下是否可以在不使用DMA的情况下首先执行此操作(或者内核以太网框架是否坚持驱动程序应使用DMA)?

1 回答

  • 3

    内核并没有阻止你做任何事情 . 但具体来说,我看不到它阻止你编写skbuff,也不会映射设备内存 .

    老实说,如果你想找到不使用DMA的网络驱动程序代码的例子,你可能会遇到最大困难 . 如果我理解正确,即使Linux netpoll(用于通过网络进行崩溃记录)也不会避免驱动程序中的DMA .

    我不确定 memcpy() 会不会工作......

    你需要阅读你的文档(e.g.specifically) . 看起来你需要在IO内存上使用 memcpy_fromio()memcpy_toio() .

相关问题