控制dma_pool_alloc给出的DMA地址类型

时间:2012-10-26 07:59:32

标签: linux-kernel arm dma

我有一个带有两种RAM的ARM平台。有一些SDRAM和内部SRAM。平台上的USB控制器只需要驻留在内部SRAM上的DMA地址。目前,我正在使用通用驱动程序,通过调用dma_pool_alloc来获取可用的DMA地址。

有没有办法告诉内核只给出内部SRAM而不是SDRAM上的USB驱动程序DMA地址?

1 个答案:

答案 0 :(得分:0)

您必须使用单独的分配器。例如, IMX 设备使用iram_alloc.c从内部SRAM获取内存。您可能必须过度分配才能获得DMA控制器所需边界的内存。

如果内存进入通用内核池,则无法区分。通常,如果内存具有特殊属性,则平台将提供访问它的替代方法。