我有一个微处理器,它只能通过其数据缓存访问 DDR 中的 0xFFFFFF 字节。我可以给它一个偏移量,它可以开始读取这些 0xFFFFFF DDR
我想为其分配 dma 缓冲区。
我发现我可以提供一个掩码来限制这些 dma 缓冲区可以分配的位置。
我如何知道 dma_coherent_alloc 的分配将从哪里开始以设置微处理器的偏移量?
还有其他解决办法吗? 就像分配一个大缓冲区,然后在其中进行一些子分配(我不知道内核是否已经有一些设施)
提前致谢。
最佳答案
仅当您有多个处理器时才需要使用 dma_alloc_coherent。
如果是微处理器,您只需使用 kmalloc 并禁用缓存,然后使用 dma_map_sg() 获取 dma 句柄!
关于linux - 如何在 Linux 内核中的特定范围内分配 dma 缓冲区?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32767064/