IOMMU的选项功能
IOMMU的所有实现都提供一组基本功能,这些功能在技术上是种选项,大多数IOMMU的实现在其设计时已包括了所有已定义的功能。从架构上来看,软体必须确定对每个功能的支援,并在使用之前启用每个功能。这些选项功能包括:
- 客户机虚拟地址到客户机物理地址的转译功能
- AMD64长模式页表兼容性
- 支援PCI ATS
- 支援PCI-SIG PRI和PASID TLP前缀ECN
- 支援客户机虚拟APIC(例如AVIC)
- 增强的性能和错误记录功能
- 客户机页表用户/监管员访问权限检查
- 客户机页表全球监管员访问保护
- 客户机页表不可执行页面保护
- 设备表的分段
- 具有可选自动交换功能的PPR和事件日志双缓冲区
- 具有始终开启功能的PPR自动响应
- PPR日志早期溢位警告
- 设备特定功能报告寄存器
- 对MSI设置和映射配置空间字段的MMIO访问
- 内存访问路由和控制(MARC)
- 自动阻塞StopMark消息处理
- 客户机I/O保护
- x2APIC
- 硬体加速虚拟IOMMU(vIOMMU)
- 安全ATS
- 安全嵌套分页
如果EFRSup位被设置,则支援IOMMU扩展功能寄存器(MMIO偏移0030h)。通过读取EFR,软体可以确定该系统中的IOMMU实现支援哪些选项功能。在大多数情况下,对功能的支援由EFR相应字段中的非零值表示。
参考来源