标签 ARM 下的文章

TrustZone中Secure和Non-Secure模式的切换

ARMv8-M的TrustZone支持Secure和Non-Secure模式的直接切换。以下几个汇编指令是状态切换中要用到的比较重要的指令:指令描述SGSecure Gateway是状态切换的第一条指令BXNS用于安全模式切换到非安全模式BLXNS用于安全模式下的非安全函数调用一下是状态切换的一个框图:从非安全模式下调用安全模式函数也是允许的,不过entry point的第一条指令必须是SG...

继续阅读 »

TrustZone中的SAU模块寄存器

SAU内部的寄存器都是32位的,下表是SAU相关寄存器的一个列表:地址名称类型复位值处理器状态描述0xE000EDD0SAU_CTRLRW0x00000000SecureNon-SecureSAU控制寄存器RAZ/WI0xE000EDD4SAU_TYPERO0x0000000xSecureNon-SecureSAU类型寄存器,表征可用regions数目RAZ/WI0xE000EDD8SAU_...

继续阅读 »

TrustZone中的属性单元

上一节中我们提到,内存的划分是通过属性单元(Attribute Unit)实现的,它主要有两种:内部的Secure Attribute Unit(SAU)和外部Implementation Defined Attribution Unit(IDAU).处理器所支持的SAU区域数量在设计时候就定义好了,SAU模块上电的时候是禁用的。如果没有定义SAU区域,并且系统中也么有IDAU,那么整个处理...

继续阅读 »