首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Centos 8(内核4.18):最大dma_alloc_coherent的大小

Centos 8(内核4.18):最大dma_alloc_coherent的大小
EN

Stack Overflow用户
提问于 2019-10-14 17:54:03
回答 1查看 167关注 0票数 0

在centos8.0.1905 (内核4.18)中,我将内核配置修改为: CONFIG_CMA=y,在内核引导参数中添加了: CONFIG_DMA_CMA=y : cma=64M@512M

在我的设备驱动程序中,我必须为DMA分配一个64MB的物理连续缓冲区。我试着打电话:

dma_addr_t dma_handle;dma_addr_t *p = dma_alloc_coherent(pDev,BUF_SIZE,&dma_handle,GFP_KERNEL)

但是最大限度的。我得到p!=0的BUS_SIZE大小是0x400000 (4MB)。你能解释一下我做错了什么吗?

先谢谢你,兹维卡

EN

回答 1

Stack Overflow用户

发布于 2019-10-22 23:34:55

在使用CONFIG_CMA=y重新编译内核时,使用CONFIG_DMA_CMA=y并使用cma=512M引导此内核

在设备驱动程序中,在调用dma_alloc_coherent之前,我调用了rc=dma_set_mask_and_coherent (pPciDev,DMA_BIT_MASK(64));并检查了该rc=0。

谢谢你,兹维卡

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58374273

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档