SMMU架构已经扩展以支持颗粒保护检查。在本指南的本节中,我们描述了在启用RME的系统中如何使用SMMU以及对SMMU架构的主要更改。
RME启用的系统中的SMMU
一个系统包括几个可以独立访问内存的设备,例如DMA控制器或GPU。下面的简化系统示意图显示了这一点:
任何可以访问内存的设备(因此是请求者)都必须遵守TrustZone和RME的物理地址空间隔离保证。
对于依赖于completer-side filtering的区域,这种隔离保证是通过内存系统实现的。请求方指定其要访问的PA和PAS空间。内存系统或目标外设确定是否允许访问。这个过程与TrustZone没有变化。
RME提供了对将内存页面动态分配给不同PAS的支持。所有设备对可分配位置的访问都必须根据GPT进行检查。对于CPU,此访问由MMU处理。对于其他设备,访问由SMMU处理。
下图显示了使用SMMU提供颗粒保护检查的示例系统:
在显示了RME之前的简化示例系统的图中,GPU和DMA使用SMMU提供翻译。在启用RME的系统中,SMMU还提供颗粒保护检查。
然而,GIC是一个以前不会通过SMMU连接的设备的例子。GIC可以访问内存并需要颗粒保护检查。在启用RME的示例系统中,GIC通过SMMU连接,但SMMU仅提供颗粒保护检查。
对RME的SMMU架构的更改
-
客户设备和SEC_S