ARM trustzone
参见:Learn the architecture - TrustZone for AArch64
总线属性和安全态可以不一致,
Completers: peripherals, and memories
TZASC:
DEN0021F_Trusted_Base_System_Architecture_A_Beta0
方式 1: interconnect适配
是否可以使用将RNF/RND发出的NS固定放在地址高位,即49bit地址,同时将secure固定搞成非安全,在SNF出口,用bit48替换NS
内存空间:假设总共64GB内存,这样CMN基于全部49bit地址做hash和cache,在HNF/SLC没有问题,在SNF下,可以将可配置的安全空间大小,比如4GB,放到整体ddr空间的最后4GB,即60GB非安全+4GB安全,需要两个SCG? power of 2 和non-power2 hash的hash算法需要通过ESL遍历,保证可行性和完备性。
外设空间:HNI/HND下,即使忽略NS,HNI也有问题,不能暴露两个地址给CPU,否则non-hash空间过多,整体上需要修改CMN逻辑来区分device和DDR,仅适配ddr空间,外设空间维持不变,
方式2: target侧适配
严格遵守“同一地址不能由不同安全属性访问”,其他无需特殊处理
ARMV8M之类的约束