如果禁用IOMMU(英特尔VT-D),PCI设备可以直接寻址CPU PA

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

我的理解是,如果PCI设备想要执行DMA RW,并且IOMMU已启用,则驱动程序应通过pci_map_page将CPU PA映射到DMA地址(对于非相干),然后PCI设备可以使用此DMA地址,IOMMU将翻译DMA地址进入CPU PA。

我的问题是:

  1. 驱动程序是否可以为给定设备禁用IOMMU?
  2. 如果有人通过BIOS禁用IOMMU,是否意味着任何CPU PA都可以直接DMA RW?
linux linux-kernel pci
1个回答
1
投票
  1. VT-d硬件允许为每个设备单独设置传递,但Linux目前不提供驱动程序API来执行此操作。
  2. 是的,来自PCI / PCIe设备的DMA在禁用IOMMU时使用系统物理地址,无论是在BIOS中还是在Linux命令行中使用intel_iommu = off。
© www.soinside.com 2019 - 2024. All rights reserved.