dma_map_single 是否总是返回与 dma_alloc_coherent 相同的总线地址?

问题描述

我有一种情况,我需要分配多个 PCIE 设备可以 DMA 到/从的内存。通过一些实验,我注意到当我在一个设备上调用 dma_alloc_coherent 并在另一个设备上调用 dma_map_single 时,我最终得到了相同的总线地址。这很棒,可以大大简化我的代码,但我只是走运了还是保证总是如此?代码最终需要同时在 x86_64 和 PowerPC 上运行。无论是否有IOMMU硬件,它也需要工作。

这只是一些示例代码来说明我在说什么。假设 dma_alloc_coherent 和 dma_map_single 都成功了,我能保证得到“得到相同地址”的打印吗?或者至少我可以对我使用的当前 linux 内核 (5.11.12) 有这个保证吗?

cvs

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)