Centos 8(内核4.18):dma分配的最大大小

Centos 8(内核4.18):dma分配的最大大小,centos,dma,Centos,Dma,在centos8.0.1905(内核4.18)中,我将内核配置修改为:CONFIG_CMA=y,CONFIG_DMA_CMA=y 在内核引导参数中,我添加了:cma=64M@512M 在我的设备驱动程序中,我必须为DMA分配一个64MB的物理连续缓冲区。 我试着打电话: dma_addr_t dma_句柄; void*p=dma_alloc_相干(pDev、BUF_大小和dma_句柄、GFP_内核) 但是我得到p的巴士的最大尺寸=0是0x400000(4MB)。 你能解释一下我做错了什么吗 提前

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

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

dma_addr_t dma_句柄; void*p=dma_alloc_相干(pDev、BUF_大小和dma_句柄、GFP_内核)

但是我得到p的巴士的最大尺寸=0是0x400000(4MB)。 你能解释一下我做错了什么吗

提前谢谢大家,,
Zvika

在重新编译内核时使用CONFIG\u CMA=y,CONFIG\u DMA\u CMA=y 并以cma=512M启动此内核

在设备驱动程序中,在调用dma\u alloc\u coherent之前,我调用了 rc=dma_集_掩码_和_相干(pPciDev,dma_位_掩码(64)); 并检查rc=0

谢谢,, 兹维卡