Trustzone
Trustzone架构图
SCR 寄存器, 0 表示 安全,1表示非安全
AXI总线, AWPROT [1] , ARPROT[1] , 0 表示安全,1表示非安全
ARMv8
el3 一定是secure
NS=0 , EL0、EL1、EL2 是sercure
NS=1 , EL0、EL1、EL2 是non-sercure
ARMv9
00 secure
01 non-secure
el3 root, 只有el3能操作SCR寄存器
安全非安全切换
调用 switch cpu_contex
- 保存 non-secure cpu contex
- 加载 sercure cpu contex
AMBA 总线的安全模式和非安全模式
TZC IP
- 配置内存权限
- 过滤权限,决定对内存的访问是否成功,如果访问失败,TZC触发一个硬件中断,arm-core 收到中断之后读TZC然后做后续处理。
MMU
一个core 有一个物理的mmu
软件视角,mmu可以分为9类
下图 Translation Regime 就是指MMU 的地址翻译引擎
arm规定,虚拟地址位于低地址空间使用TTBR0, 高地址空间使用TTBR1
secure的 translation engine 永远只能访问非安全的内存地址,不检查NS
tlb cache 用来加快MMU命中,只有安全配置相同才会命中
cache
也区分安全和非安全
中断
根据中断类型分为3个group
cpu 产生一个本系统跑的中断,上报IRQ
cpu 产生一个后台系统的中断,上报FIQ(forward irq),由FIQ vector处理
timer
一个core 有一个物理timer
软件视角来看,由多个timer