免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3562 | 回复: 1
打印 上一主题 下一主题

pxa270摄像头驱动DMA内存分配求助 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-01-06 20:25 |只看该作者 |倒序浏览
背景

内核版本是2.6.9
硬件用的是优龙的开发板arm9 pxa270,里面有个摄像头ov9655的驱动,不过只支持640x480象素,我想改成1280x1024.
其实其它都不用变,只是改一下驱动的wildth 与 height.以及摄像头的配置寄存器。
摄像头的数据是通过dma传输的:摄象头通过cpu片上的camera interface接入,dma到指定的地址。

但遇到一个问题,为dma分配内存出错。
用 dma_alloc_writecombine() 函数分配内存时出错
error:   coherent allocation too big (requested 0x280000 mask 0xffffffff)          //   1280x1027=0x140000

通过查看dam_alloc_writecombine()代码发现,
#define CONSISTENT_BASE        (0xffc00000)  // original
#define CONSISTENT_END        (0xffe00000)  // original
显然支持DMA consistent 的这个地址空间为2M,即dma分配内存函数支持的最大空间为2M,小于我所需要的2.6M。

我改上述定义的地址范围,使其有4M的地址空间,重新编译内核下载,运行,但出现panic,是内部的内在分配函数
__dma_alloc(struct device *dev, size_t size, dma_addr_t *handle, int gfp pgprot_t prot)   出错,没有成功的分配到内存页。

想求助一下怎么 扩大能够为dma分配的内存大小, 我想2M的也实在太小了吧. 现在动不动就几M的buffer

论坛徽章:
0
2 [报告]
发表于 2010-01-07 13:11 |只看该作者
scatter gather?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP