最近使用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模式的。