这个指南的前几节展示了领域提供的执行环境,它与正常世界的Rich OS、Hypervisor和TrustZone完全隔离。领域可以在初始化时完全通过认证,以确保其初始内容,并确保它在基于RME的平台上运行。
在大多数操作情况下,任何领域软件执行都需要访问系统中可用的设备。默认情况下,系统中的所有设备都被阻止访问所有领域的内容。如果领域需要使用设备,它必须首先对设备进行认证,然后向RMM提供访问授权的同意。
这个设备分配过程维护了机密计算架构提供的安全保证。使用标准的RME功能,可以保证对于不支持DMA并且具有固定地址范围的SoC外设的隔离。这可以通过使用RMM页表和GPT或者completer-side PAS过滤器来实现,以允许或拒绝对该内存区域的访问。
然而,一些设备系统,如Root Port,通过单个内存区域控制和访问多个设备。这意味着仅仅通过内存访问控制是不够的。此外,设备可能还具有需要管理的自己的缓存。
设备分配
设备分配(DA)是一种方法,它允许将设备唯一分配给个别领域,并允许领域在授予其对领域内容的访问权限之前对设备进行认证。DA防止领域不信任的代理(包括其他领域和虚拟机监视器)访问或控制分配的设备。这包括对设备MMIO接口和设备缓存的保护。DA提供了一种标准机制,用于认证所有设备类型,而RMM对于被认证的设备没有任何特殊的了解,无论是静态内存映射还是在PCIe Root Port后面。PCI SR-IOV是最普遍的设备分配架构。
硬件设备通常支持可以分配给个别虚拟机的多个接口。主机虚拟机监视器控制分配过程,从而产生一个硬件接口,该接口可以由特定虚拟机直接管理。设备分配架构的典型特性如下: