当分配大小超过 4MB 时,dma_alloc_coherent() 返回错误

当分配大小超过 4MB 时,dma_alloc_coherent() 返回错误

我已经尝试过了

virt_addr = dma_alloc_coherent(dma_dev、 alloc_size、 &phys_addr、 GFP_KERNEL );

并且 mypool = dma_pool_create("mypool", dma_dev, alloc_size, pool_align, 0); virt_addr = dma_pool_alloc(mypool, GFP_ATOMIC , &phys_addr);

如果 alloc_size 超过 4MB,则两者都会失败。

我还发现 CONFIG_CMA 没有设置。(内核版本 5.19.0-32-generic)如何分配大小为 512M 的 DMA 缓冲区?

谢谢你,dxyz_tiger

相关内容