我正在开发具有DSP和CPU的嵌入式系统。 DSP和CPU之间有一个共享内存区域。当数据准备就绪时,DSP处理数据和信号到CPU。我在CPU上运行Linux并从内核映射中排除了共享内存区域。
我有Linux内核驱动程序代码,可以映射DSP发送的物理地址。使用返回的虚拟地址,我可以检查数据并查看数据是否有效。我现在无法尝试映射数据,因此我可以将其从CPU中DMA到外围设备。我想避免将数据复制到dma_alloc_coherent区域以最小化延迟。
我相信这是因为内存和执行DMA的设备之间存在IOMMU。为了生成dma地址到物理地址映射,我需要做什么?