Linux kernel 控制DMA_pool_alloc提供何种DMA地址

Linux kernel 控制DMA_pool_alloc提供何种DMA地址,linux-kernel,arm,dma,Linux Kernel,Arm,Dma,我有一个带两种闸板的臂式平台。有一些SDRAM和内部SRAM。平台上的USB控制器只需要驻留在内部SRAM上的DMA地址。目前,我正在使用一个通用驱动程序,它通过调用DMA\u pool\u alloc获取可用的DMA地址 有没有办法告诉内核只提供内部SRAM而不是SDRAM上的USB驱动程序DMA地址?您必须使用单独的分配器。例如,IMX设备使用它从内部SRAM获取内存。您可能需要过度分配以获得DMA控制器所需边界上的内存 如果内存进入通用内核池,则无法区分。通常,如果内存具有特殊属性,平台将

我有一个带两种闸板的臂式平台。有一些SDRAM和内部SRAM。平台上的USB控制器只需要驻留在内部SRAM上的DMA地址。目前,我正在使用一个通用驱动程序,它通过调用
DMA\u pool\u alloc
获取可用的DMA地址


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

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

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

并且可能对其他正在查看的人有所帮助。