使用omapl138中的spi 接口读取spi flash,使用中断方式读取的时候,内核可以正常的跑,但是在板级配置里面改为dma方式的时候就会在dma-mapping.h里面出现BUG_ON(!virt_addr_valid(cpu_addr)),CPU地址不是合理的地址,把这个地址打印出来为0xc8开头的,我的内存最大只能到0xc7f000000,说明分配的内存空间已经越界了,但是一开始读取几十个字节的数据时是没问题的,后续文件系统上层调用了读取132K字节数据时就出现这个问题了,是不是连续空间不够用还是怎么回事?内核版本是Linux3.3的,我看内核代码里面是支持使用DMA方式的SPI的。
Denny%20Yang99373:
这个DMA代码是你自己写的还是本来就有的?