[X]关闭

linux DMAdriver使用alloc failed

文档创建者:shyley
浏览次数:5444
最后更新:2019-11-21
板子型号:ZYNQ-MZ7100FB,debian系统参考帖子:https://blog.csdn.net/long_fly/article/details/80482248(linux下运行DMA)
                https://blog.csdn.net/long_fly/article/details/79702222(fpga工程搭建)
参考以上帖子,使用DMA驱动,但是应用程序的时候一直显示unable to allocate contigous DMA of size 4096,根据网上搜索,是DMA大小不够,于是更改了kernel/arch/arm/mm/dma.mapping.c中的DEFAULT_DMA_COHERENT_POOL_SIZE S_16M(最大可以分配16M,超过就无法分配,报错),在设备树bootargs中和uEnv.txt增加了cma=16M的约束,但是开机启动的时候显示错误

fpga工程:https://pan.baidu.com/s/1DwjZIOgMYx6JebdfL2r2gA
boot文件:链接:https://pan.baidu.com/s/1gcdCY6SWTXf6YnmzAiT4pA
提取码:t9j3





DMA-16M.PNG
dma-pl330.PNG
alloc-failed.PNG
cma-alloc.PNG

xilinx_mz7x_defconfig.zip

1.82 KB, 下载次数: 672

dma-mapping.zip

13.84 KB, 下载次数: 651

dts.zip

7.14 KB, 下载次数: 649

发表评论已发布 2

shyley

发表于 2019-11-19 13:37:44 | 显示全部楼层

其实,应该就是如何增大DMA大小和cma大小

菲尼克兔

发表于 2019-11-21 13:34:51 | 显示全部楼层

我记得我跑米联的buildroot的时候,启动的log里面在0x3f00_0000的地方设置了16M的CMA......
所以你是想要更大的CMA?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则