如何解决总线主控需要哪些内核标志和PCIe设置
我无法让内核为5.3.0-68-generic
的Ubuntu中的设备驱动程序上使用总线主控DMA。
- 我已使用
pci_set_master
启用了总线主控(使用lspci -v
时,PCIe设备将具有bus_master标志),并且我正在使用dma_alloc_coherent
分配DMA缓冲区。 - 我将dma分配返回的
dma_addr_t
传递给设备,然后使用带有chrdev mmap驱动程序的内核虚拟地址将地址映射到用户空间(使用remap_pfn_range
),其中用户空间驱动程序可以填充DMA内存区域。
似乎没有PCIe设备可以看到DMA区域中的内存更新,也许我需要启用一些dma,iommu或pci设置以允许PCIe设备读回系统内存,例如公交车长?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。