Arm CCA平台通过硬件添加和固件组件的混合方式实现,例如在处理元素(PEs)中的RME以及特定的固件组件,特别是监视器和领域管理监视器。本节介绍Arm CCA平台的软件堆栈。
软件堆栈概述
领域VM的执行旨在与Normal world(正常世界)隔离,领域VM由Normal world Host(正常世界主机)启动和控制。为了允许领域VM的隔离执行,引入了一个名为领域管理监视器(RMM)的新组件,它在R_EL2级别执行。
RMM负责管理通信和上下文切换。RMM不做策略决策,比如决定运行哪个领域或将内存分配给领域,这些决策仍由主机虚拟机监视器(Host Hypervisor)决定。
RMM通过领域世界中的阶段2页表将领域与彼此隔离。RMM直接与监视器接口,监视器也与安全世界和正常世界接口。监视器在异常级别3中运行,具有必须服务系统的所有受信任功能的特定于平台的代码。RMM响应特定接口,并具有完全定义的功能来处理来自主机和领域的请求。由于这个接口将是明确定义的,因此RMM可以是适用于所有Arm CCA系统的通用代码。
以下图表显示了在领域世界中运行机密领域VM的完整Arm CCA平台:
RMM是领域世界中的控制软件,它对来自正常世界虚拟机监视器的请求作出响应,以允许管理领域VM的执行。RMM通过Root world中的监视器进行通信,以控制领域内存管理功能,实现在非安全PAS和领域PAS之间的内存过渡。
SMC指令允许RMM、虚拟机监视器和SPM将控制返回给监视