TI中文支持网
TI专业的中文技术问题搜集分享网站

omapl138的spi flash硬件平台上是不是不能跑SPI DMA只能跑SPI中断

最近使用m25p128作为omapl138的flash,内核版本是3.3的,在搭建最小系统和ubi文件系统时发现spi flash驱动使用spi中断时一切正常,但是把驱动程序改为DMA方式时就就会出现Oop的打印,就是内存地址错误,加了一些打印发现内核中直接通过vzmalloc出来的地址直接传递给了spi的rx_buf作为DMA的首地址,DMA需要的是实地址,不能是虚拟内核地址也不能是逻辑内核地址,请问是不是linux3.3内核就是不支持spi使用DMA的模式?

PS:之前调试omapl138的LCDC的时候也是使用DMA形式,只是这个DMA不是用的EDMA的控制器,但是这部分代码是在linux3.3中可以跑起来的,说明linux3.3支持显示控制器采用DMA模式的。

Denny%20Yang99373:

你可以自己先把虚拟地址转成物理地址传给EDMA控制器试试。

建议看看其他接口比如MMC/NAND/看看它们的EDMA这块是怎么处理的。

赞(0)
未经允许不得转载:TI中文支持网 » omapl138的spi flash硬件平台上是不是不能跑SPI DMA只能跑SPI中断
分享到: 更多 (0)