IOMMU 如何通过 DMA 取消映射来自不同外围设备的 IOVA

问题描述 投票:0回答:0

我一直在努力获取这方面的信息,但仍然没有得到任何可靠的信息。所以,到目前为止,我了解到的是 IOMMU 将 DMA 提供的 IOVA 转换为物理地址,并从内存读取或写入内存。我的问题如下:

  1. IOMMU 是否为每个设备存储不同的内存映射?每个设备是否在其虚拟地址空间中看到从零开始的地址范围?

  2. 这些 IOMMU 内存映射存储在哪里?

  3. 如果每个设备都在其虚拟地址空间中看到从零开始的虚拟地址,IOMMU 如何知道请求来自哪个设备?

  4. 设备是否还传输某种设备特定 ID 或 IOMMU 识别并使用它来取消映射 IOVA 并保护该设备看到或写入的其他内存地址?

linux-kernel dma iommu
© www.soinside.com 2019 - 2024. All rights reserved.