gpt4 book ai didi

linux-kernel - DMA缓存连贯连续分配

转载 作者:行者123 更新时间:2023-12-01 09:59:43 28 4
gpt4 key购买 nike

我正在考虑为 DMA 事务分配缓冲区。我读到有两种方法可以做到这一点 - 相干映射或流映射。

现在,我们需要缓存一致的缓冲区。但是,我们没有进行任何分散/聚集,因此我们想要 dma_map_single 调用的好处。我们在 bootargs 中预留了一些连续内存,因此我们始终有足够的连续内存可用。

所以我想知道,我们能否调用 dma_alloc_coherent,然后使用 dma_alloc_coherent 返回的虚拟地址调用 dma_map_single?返回的单个映射的物理地址将被设置为 dma_alloc_coherent 在其调用中返回的 dma 句柄。

这有意义吗?还是这样做是多余的/不正确的?

最佳答案

您不能同时使用两者。但是你也在试图解决一个不存在的问题。只需使用 dma_alloc_coherent(),它会为您提供一个包含虚拟地址和物理地址的连续 DMA 内存缓冲区。 DMA到物理地址,从CPU用虚拟地址访问它。有什么问题?

关于linux-kernel - DMA缓存连贯连续分配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18014971/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com