★★★ 个人博客导读首页—点击此处 ★★★

文章目录

  • 1、系统架构图
  • 2、tzc400的硬件框图
  • 3、FPIDs and NSAIDs
  • 4、region setup
    • 5、NSAID

思考:
如果硬件是这种连接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]、

[trustzone]-TZC400学习总结相关推荐

  1. ARM Trustzone介绍-视频学习

    ARM Cache介绍 ARM Trustzone介绍 ARM-GIC中断控制器介绍

  2. Arm TrustZone 学习 - 0.3 向 OPTEE 添加用户自己的 TA/CA

    感谢 帅峰云 博主的教程,书已购买讲的很细致:https://blog.csdn.net/shuaifengyun/article/details/71499619 感谢 技术宅阿棍儿 up主的视频, ...

  3. Arm TrustZone 学习 - 0.2 Qemu - OPTEE 虚拟运行环境搭建

    感谢 帅峰云 博主的教程,书已购买讲的很细致:https://blog.csdn.net/shuaifengyun/article/details/71499619 感谢 技术宅阿棍儿 up主的视频, ...

  4. SMMU学习这一篇就够了

    引流关键词: SMMU,mmu500,mmu600,mmu700,system mmu,Non-cacheable,Cacheable, non-shareable,inner-shareable,o ...

  5. [architecture]-ARM SMMU学习概念总结一篇就够了

    引流关键词: SMMU,mmu500,mmu600,mmu700,system mmu,Non-cacheable,Cacheable, non-shareable,inner-shareable,o ...

  6. ARM Cortex-A 编程手册学习笔记

    闲话 从前都在X86上分析内核,做开发.trouble shooting,对于其他架构了解较少,对于新架构的学习,甚至还有些抵触,这次趁分析问题的机会,顺便学习了一下ARM架构的基础知识,权当笔记. ...

  7. 百度安全 TrustZone SDK 正式成为 OP-TEE 官方推荐 Rust 开发环境

    百度安全与 OP-TEE 社区共同合作,推进 Teacalve TrustZone SDK 正式成为 OP-TEE 官方推荐的 Rust 开发环境.OP-TEE 是当今广泛使用的开源 ARM Trus ...

  8. 片上总线协议学习(1)——SiFive的TileLink与ARM系列总线的概述与对比

    link 片上总线协议学习(1)--SiFive的TileLink与ARM系列总线的概述与对比 finally 27 人赞同了该文章 一.背景介绍 随着超大规模集成电路的迅速发展,半导体工业进入深亚微 ...

  9. 嵌入式之uboot源码分析-启动第一阶段学习笔记

    注: 以下的内容来自朱老师物联网大讲堂uboot部分课件 Uboot启动第一阶段start.S执行步骤 1.头文件包含 <config.h>(x210的各种宏定义) <version ...

最新文章

  1. 解决kindeditor在线编辑器 过滤dl、dd、dt的两种方法
  2. 图像融合(五)-- 梯度金字塔
  3. 「leetcode」700. 二叉搜索树中的搜索:【递归法】【迭代法】详解
  4. mysql 1205 解决_mysql 1205 ,自动重启数据库
  5. route 不同路由器 windows_如何检查路由器WiFi信号的好坏?
  6. AI 智能写情诗、藏头诗
  7. 使用Python将Word表格转Excel
  8. [人工智能-深度学习-61]:生成对抗网络GAN - 图像融合的基本原理与案例
  9. CSS:颜色、背景和剪切
  10. K-Means(K均值) 算法
  11. Spring Security(15)——权限鉴定结构
  12. 要不要借钱给朋友和投资股票的共性
  13. 全球与中国植物培养箱市场现状及未来发展趋势(2022)
  14. 【MD5】MD5校验文件的正确性
  15. H3CTE-OSPF的掌握指标
  16. Kaggle 2022 年鉴发布!涵盖竞赛趋势 57场比赛方案汇总!
  17. Exception iterating responses: unhashable type: ‘list‘
  18. 【openVR】从零开始运行起第一个openVR界面项目
  19. 软件开发走软件外包平台的几大理由
  20. 镜子的Spring之旅 之 Spring MVC

热门文章

  1. mysql mysqlhotcopy_MySQL备份工具之mysqlhotcopy
  2. 成功解决raise ValueError(‘No model found in config file.‘) ValueError: No model found in config file.
  3. CNN之性能指标:卷积神经网络中常用的性能指标(IOU/AP/mAP、混淆矩阵)简介、使用方法之详细攻略
  4. HighNewTech:支付宝全球首发5G手机,四大逆天功能(防骗三折叠气味识别自由飞)!
  5. ML之DT:基于简单回归问题训练决策树(DIY数据集+七种{1~7}深度的决策树{依次进行10交叉验证})
  6. Algorithm之RS:RS常用的一些库
  7. Py之Queue:python库之Queue的简介、安装、使用方法之详细攻略
  8. Py之seaborn:seaborn库的简介、安装、使用方法之详细攻略
  9. Py之pygame:有趣好玩—利用pygame库实现鱼儿自动实时目标跟踪(附完整代码)
  10. Spring Framework Reference Documentation手册官网下载地址