AMD IOMMU 介绍

主要功能

  • I/O DMA 访问权限检查和地址翻译
  • 可选:支持用户VM的地址翻译
  • 一个Device Table可以允许 I/O设备被分配给以个指定的domain并且包含一个指针指向Device Page Table
  • 中断重映射并提供权限检查
  • 可选:支持AMD64 vAPIC
  • 基于内存的命令和状态交互在处理器和iommu设备之间
  • 可选:支持 Peripheral Page request (PPR) Log
  • 可以减轻PPR 和 Event Log Overflow
  • 可选:基于硬件的允许特权I/O设备访问预定义的系统内存

系统拓扑图

使用模型

  • 替换GART(Graphic Access Remote Table)
  • 替换DEV (Device Exclusion Vector)
  • 对32bit设备访问64bit控制提供支持
  • 用户态设备的直接访问
  • 虚拟机访问设备支持
  • 虚拟的IOMMU (vIOMMU)
  • 虚拟化的用户态设备访问支持

IOMMU可选功能支持

  • Guest virtual to guest physical address translation capability
  • AMD64 long mode page table compatibility
  • Support for PCI ATS
  • Support for PCI-SIG PRI and PASID TLP prefix ECN
  • Support for a guest virtual APIC (e.g., AVIC)
  • Enhanced performance and error logging features
  • Guest page table User/Supervisor access privilege checking
  • Guest page table Global Supervisor-level access protection
  • Guest page table non-executable page protection
  • Segmentation of the Device Table
  • PPR and Event Log dual buffers with optional autoswap
  • PPR Auto Response with Always-on feature
  • PPR Log early overflow warning
  • Device-specific feature reporting registers
  • MMIO access to MSI setup and mapping configuration space fields
  • Memory Access Routing and Control (MARC)
  • Automatic Block StopMark Message Handling
  • Guest I/O Protection
  • x2APIC
  • Hardware Accelerated Virtualized IOMMU (vIOMMU)
  • Secure ATS
  • Secure Nested Paging