我有一个ARM平台,有两种RAM。有一些SDRAM和内部SRAM。平台上的USB控制器只需要驻留在内部SRAM上的DMA地址。目前,我使用的是一个通用的驱动程序,它通过调用dma_pool_alloc来获取可用的DMA地址。
有没有办法告诉内核只给USB驱动程序提供内部SRAM而不是SDRAM上的DMA地址?
发布于 2013-05-11 06:00:48
您必须使用单独的分配器。例如,IMX设备使用iram_alloc.c从内部静态随机存取存储器中获取内存。您可能必须过度分配才能获得DMA控制器所需的边界上的内存。
如果内存进入通用内核池,就无法区分。通常,如果内存有特殊属性,平台将提供访问它的替代方法。
https://stackoverflow.com/questions/13083039
复制相似问题