文章目录
思考:
如果硬件是这种连接cpu–>tzc–>ddrc–>ddr, 那么配置某块region对cpu的nsaid权限后,cpu再次读写该region范围的内存时,cache中已经缓存了该数据,那么是不是就控制不了cpu访问该内存的权限了呢?
我们先看一张框图,了解下TZC400的功能
1、tzc400的硬件框图
从图中可以看出
- apb接口 : 用于cpu读写tzc-400的寄存器;
- ACE-Lite接口 : TZC400的通过ACE-Lite接口接到Master和DDR中间,
对Master访问DDR就行filter控制 Filter : 一块TZC400支持0-x个filter,x一般是8、16 - 也就是说,tzc400中,有一个control unit单元、x个filter
unix单元;tzc400提供apb接口和ace-lite接口。
2、TZC-400 example system
3、FPIDs and NSAIDs
对应每一个filter unit, TZC400提供了两个identity inputs :FPIDs和NSAIDs
Fast Path IDentity — 这个没有使用过,暂时先不介绍了
Non-secure Access IDentity
4、region setup
Region 0 永远是enable的,整块DDR中为设置region的区域,都属于region 0.
建立一块region,需要配置:Top address、Base address、Region enables、Secure access permissions、Non-secure ID filtering
secure access permissions的权限参见 region_attributes寄存器
nsaid权限访问的路由规则 : 先检查Master的身份,若是secure发起的访问,则去检查Secure access permissions, 如果是non-secure发起的访问,则取检查nsaid权限
5、AMBA-AXI总线协议中nsaid相关的bit位
如果NSAccess_Identifiers为True,那么AWNSAID and ARNSAID的接口就必需提供.