trustzone_mmu_ns_bit

2012/07 ~ 04/2014期间的工作内容。
只是用来回顾。

MMU:

安全世界和普通世界都有自己的虚拟MMU,实际上只是两个世界都有一份TTBR0、TTBR1、TTBCR,也就是会有两个MMU表。但TLB是共享的,在TLB里面会对安全世界的TLB项打上tag,所以实际上一个TLB也是逻辑上被划分了两个,不同世界各管各的

MMU表里的描述符里也会有一个NS位,对于普通世界,处理器做地址转换的时候无视这个位,对于安全世界,处理器做地址转换的时候按照描述符里的NS位来确定地址转换的物理地址空间,NS=0的时候是按照安全世界的物理空间来做地址转换的,

trustzone对于cache的要求:

cache的一致性,多核之间的普通世界和安全世界之间的状态管理和同步都需要精心设计。 如果使用的场景不复杂,最好就配置安全世界只在一个核上运行,所有其他核上的请求都经过这个核最终产生请求,这样简可以简化软件设计,增加系统的可靠性和稳定性。

Tags: trustzone