我有一个带有两种RAM的ARM平台。有一些SDRAM和内部SRAM。平台上的USB控制器只需要驻留在内部SRAM上的DMA地址。目前,我正在使用通用驱动程序,通过调用dma_pool_alloc
来获取可用的DMA地址。
有没有办法告诉内核只给出内部SRAM而不是SDRAM上的USB驱动程序DMA地址?
答案 0 :(得分:0)
您必须使用单独的分配器。例如, IMX 设备使用iram_alloc.c从内部SRAM获取内存。您可能必须过度分配才能获得DMA控制器所需边界的内存。
如果内存进入通用内核池,则无法区分。通常,如果内存具有特殊属性,则平台将提供访问它的替代方法。