处理器中的TrustZone之安全状态
在这篇博客中,我们将讨论处理器内对TrustZone的支持。其他部分则涵盖了在内存系统中的支持,以及建立在处理器和内存系统支持基础上的软件情况。
3.1 安全状态
在Arm架构中,有两个安全状态:安全状态和非安全状态。这些安全状态映射到我们在“什么是TrustZone?”中提到的受信任世界和普通世界。
【注意】:在Armv9-A中,如果实现了Realm Management Extension(RME),那么就会有两个额外的安全状态。本指南不涵盖RME引入的更改,有关RME的更多信息,请参阅Realm Management Extension指南。
在EL0、EL1和EL2,处理器可以处于安全状态或非安全状态,由SCR_EL3.NS位控制。通常表示为:
- NS.EL1:非安全状态,异常级别1
- S.EL1:安全状态,异常级别1
EL3始终处于安全状态,不考虑SCR_EL3.NS位的值。安全状态和异常级别的如下图所示:
【注意】:对于Secure EL2的支持首次出现在Armv8.4-A中,并且在Armv8-A中支持仍然是可选的。