baron · 3月29日 · 四川

[trustzone]-TZC400学习总结

快速连接

👉👉👉【精选】ARMv8/ARMv9架构入门到精通-目录 👈👈👈


 title=

思考:
如果硬件是这种连接cpu-->tzc-->dmc-->ddr, 那么配置某块region对cpu的nsaid权限后,cpu再次读写该region范围的内存时,cache中已经缓存了该数据,那么这个数据流在cache中就完成了,不会经过TZC,那么是怎么保证安全的呢?

1、系统架构图

我们先看一张系统架构图,了解一下TZC400的作用或位置,其实就是下core和DDR(DMC)之间,添加了一个TAC, 其作用其实就是memory Filter。
在这里插入图片描述

2、tzc400的硬件框图

从图中可以看出

  • apb接口 : 用于cpu读写tzc-400的寄存器;
  • ACE-Lite接口 : TZC400的通过ACE-Lite接口接到Master和DDR中间,
    对Master访问DDR进行filter控制 : 一块TZC400支持0-x个filter,x一般是1、2、3
  • 也就是说,tzc400中,有一个control unit单元、x个filter unix单元;
  • 一个TZC400,支持9个region(包含region0)

在这里插入图片描述

那么最多支持4个Filter最多支持9个region, Filter和Region到底是什么关系呢?
什么关系都不是!!!
Filter就是Filter,Region就是Region,无论您是几个Filter,一个TZC最多只支持9个region。

因为有着不同类型的Master,都需要连接到TZC上,所以才需要的多个Filter。 如下图所示便有一个示例:

  • Core和GPC 通过ACE接口与Filter0相连
  • DMA/LCD 通过AXI接口与Filter1相连
    在这里插入图片描述

    3、FPIDs and NSAIDs

    对应每一个filter unit, TZC400提供了两种identity path :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
    在这里插入图片描述

region的overlap规则:

  • 不在Regionx(x=1-8)范围内的地址,属于region0
  • 在同一个Filter中,Regionx(x=1-8)不能有互相覆盖的情况,
    如果进行了overlap的配置,那么当访问该地址时,将产生一个中断,暗示 overlapping access
  • 不同Filter中的Regionx(x=1-8)可以相互overlap

secure access permissions的权限参见 region_attributes寄存器
在这里插入图片描述
nsaid权限访问的路由规则 : 先检查Master的身份,若是secure发起的访问,则去检查Secure access permissions, 如果是non-secure发起的访问,则取检查nsaid权限

5、NSAID

对于Non-Secure的访问,NSAID从何而来?
其实如果是Non-Secure发起的访问(NSAccess_Identifiers为True),那么AWNSAID 和 ARNSAID的接口就必需提供.

  • 如果Master支持nsaid,那么它会自动提供AWNSAID 或ARNSAID,
  • 如果Master不支持nsaid,那么可以在SOC设计的时候,在系统寄存器种增加NSAID标志位,该Master发起读写时,则自动传送相关NSAID value

如下是AMBA-AXI总线协议中nsaid相关的bit位
在这里插入图片描述

与之对应的TZC400接口,每个Filter都有NSAIDR0[3:0]、NSAIDW0[3:0]、NSAIDRx[3:0]、NSAIDWx[3:0]、


关注"Arm精选"公众号,备注进ARM交流讨论区。
图片1.png

推荐阅读
关注数
9438
内容数
191
以易懂、渐进、有序的方式,深入探讨ARMv8/ARMv9架构的核心概念。我们将从基础知识开始,逐步深入,覆盖最新的架构,不再纠缠于过时技术。本系列内容包含但不限于ARM基础、SOC芯片基础、Trustzone、gic、异常和中断、AMBA、Cache、MMU等内容,并将持续更新。
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息