相当于x86下面的IOMMU,是不同架构的不同实现。统一在linux中的IOMMU框架内部,都由结构体 iommu_device 管理。
SMMU的作用是将设备的DMA请求地址翻译成可用的物理地址,当不开启SMMU时也可以直接使用DMA来搬运内存。SMMU是为了安全考虑中间加了一道。
结构体关系如下图,smmu domian和 iommu的domain的关系,以及iommu group的作用
x86下通过intel_iommu=on 来开启
arm下通过 iommu.passthrough=1 来关闭
ref: