mav*_*989 3 linux-device-driver linux-kernel
我正在考虑为DMA事务分配缓冲区.我读到有两种方法可以做到这一点 - 连贯映射或流映射.
现在,我们需要缓存一致缓冲区.但是,我们没有进行任何分散/聚集,因此我们希望获得dma_map_single呼叫的好处.我们在bootargs中留出了一些连续的内存,因此我们总是有足够的连续内存可用.
所以我想知道,我们可以调用dma_alloc_coherent然后dma_map_single使用dma_alloc_coherent返回的虚拟地址吗?然后,将单个映射的返回物理地址设置为dma_alloc_coherent在其调用中返回的dma句柄.
这有意义吗?或者这样做是多余/不正确的?
你不能同时使用它们.但是你也试图解决一个不存在的问题.只需使用dma_alloc_coherent(),它为您提供具有虚拟和物理地址的连续DMA内存缓冲区.DMA到物理地址,用虚拟地址从CPU访问它.有什么问题?
| 归档时间: |
|
| 查看次数: |
4487 次 |
| 最近记录: |