Linux iommu和vfio概念空间解构
近和一些硬件和相关驱动设计的同学讨论SMMU的设计需求,双方讨论的空间不太一致,我写一个文档澄清一下这些概念。 (不熟悉SMMU的同学可以跳过这一段,后面我会单独解释概念的)我们首先得厘清两个概念,当我们说SMMU的时候,硬件设计同学心中是那个进行设备地址翻译,做DMA操作的那个硬件。软件驱动同学心中是那个控制SMMU硬件的那个软件。你们之间的接口是:中断,配置空间和内存,没有其他了。所以,当我们讨论这个问题的时候,一定首先分清楚对方在说的是哪个概念空间的概念,因为两者是不一样的。硬件的同学说“设备发出的VA”,包括Substream ID和软件指配给它VA地址,这个地址远远比64位长。
下载地址
用户评论