【ARM CoreLink 系列 7 -- TZC-400控制器简介】

文章目录

    • 背景介绍
    • 1.1 TZC-400 简介
    • 1.2 TZC-400 使用示例
    • 1.3 TZC-400 interfaces
      • 1.3.1 FPID
      • 1.3.2 NSAID
    • Region
      • region 检查规则
    • 1.4 Features
    • 1.5 Register summary
    • 1.6 TZC-400和TZPC和TZASC区别

背景介绍

为了确保内存能够正确识别总线的信号控制位,新增一个TrustZone地址空间控制器(TrustZone Address Space Controller,TZASC)组件来实现对内存地址的安全扩展,将内存区域划分为安全内存区域和非安全内存区域,安全世界可以访问安全内存和非安全内存,而普通世界只能访问非安全内存,如下图所示:
在这里插入图片描述
内存区域的划分是在系统启动时通过配置TZASC组件(TZC-400/TZC-380)来实现的。

1.1 TZC-400 简介

TZC-400由 Control unitFilter unit 构成,其中Control unit 用于对每一个区域的安全设置进行编程,具体包括:

  • 使能情况;
  • 安全访问权限;
  • Base地址;
  • Top 地址;
  • Non-secure ID filtering(基于NSAID信号)。

在Control unit的配置下,始终存在 1 个全地址区域 Region 0,并且可以扩展 8 个分离的区域 Region 1 - Region 8。Region 1-Region 8 的区域互不交叉,如下图所示。
在这里插入图片描述
而 Filter unit 用于对访问进行安全检查,根据NSAID信号决定是否允许访问该地址。

1.2 TZC-400 使用示例

不同的 Master 会连接到不同的 filter unit。TZC-400通过ACE-Lite响应通道或中断上报检查错误。
在这里插入图片描述

TZC-400 在SoC 系统层面的使用:
在这里插入图片描述

1.3 TZC-400 interfaces

提供接口如下图所示:
在这里插入图片描述

  • clock 和 reset 信号,TZC-400 使用了下面clock domain:
    • PCLK domian: 给带APB接口的控制单元使用;
    • ACE-Lite clock domain,给每个 filter unit 使用,名字是ACLKx。
  • TZC-400 为每个clock 提供了一个异步复位信号。

其它的信号,这里不在做过多介绍,可以查看对应的SPCE 文档。接下来主要介绍下认证输入信号:

  • Fast Path IDentity inputs;
  • Non-Secure Access IDentity inputs。在这里插入图片描述

1.3.1 FPID

Fast Path IDentity (FPID)决定 filter unit 的读操作是使用低延时快速路径还是普通路径。每个filter unit有单独1 根 FPID 输入。fast path 依赖 speculative access,因此必须开启 master 和 slave 的 speculative access 功能。如果在读操作的过程中接入 ACE-Lite 上的 FPID 信号线拉高,那么filter uint 将会把访问路由到快速通道上,如果推测执行功能没有打开,那么会将访问路由到普通通道上。

1.3.2 NSAID

Non-secure Access IDentity (NSAID) 标识发起访问的 master。如上图所示,每个filter unit 有两组 NSAID 信号,每组4个bit,NSAIDR[3:0]用于标识读地址,NSAIDW[3:0]标识写地址。

Region

Region是一个连续的地址空间定义了start和end。

region有单独的安全级别配置。

TZC-400有9个regions:region0 是 default,部分编程,region1-8是完全编程。

通过control unit设置每个region的安全和地址空间。

region 检查规则

  • region必须使能,filter unit才能用来检查访问合法性
  • region0始终是使能的,只能修改安全访问属性。
    f- ilter unit如果在其他region找不到访问地址匹配,会使用region0的配置
  • Filter unit使用的region1-8空间不能有overlap memory,但是region1-8可以与region0有overlap memory,而且region1-8的规则会覆盖region0。
    在这里插入图片描述

1.4 Features

  • 可以在地址映射中最多定义8个region(完全编程)。
  • 一个默认的基本区域覆盖所有剩余的地址映射部分,即region0。
  • 通过APB4总线编程每个region的访问权限,包括region0。
  • 只有当ACE-Lite事务的安全状态/ID和映射region的安全设置匹配时,filter unit才允许在ACE-lite master和slave之间传输数据。
  • 所有filter units共享公共区域配置寄存器的设置,保证一致性。
  • filter unit支持相互独立的异步时钟,而且也和control unit的APB时钟是异步的。
  • 支持双读访问通道,即快速路径和正常路径。快速路径具有低延迟,但outstanding数量
    有限。正常路径可以支持更多数量的outstanding,正常路径支持256个待处理事务,但延迟不低于快速路径的延迟。
  • 非安全访问是基于ID进行事务过滤的。
    状态和中断信号可以通过软件编程进行配置,从而管理失败的权限检查。
  • 每个时钟域都有AXI低功耗接口。
  • Gate keeper用于控制每个filter unit的访问状态,使能或禁用。

1.5 Register summary

offsetnametypedescription
0x0BUILD_CONFIGRO当前IP实现了几个region,实现了几个filter
在这里插入图片描述
0x4ACTIONRW当访问检查失败时,中断和bus返回如何处理
在这里插入图片描述
0x8GATE_KEEPERRW控制每个filter unit的使能和去使能,低bit对应每个filter unit控制,高bit代表状态在这里插入图片描述
0xcSPECULATION_CTRLRW控制读写随机访问在这里插入图片描述
0x10INT_STATUSRO每个filter unit的中断状态
在这里插入图片描述
0x14INT_CLEARWO每个filter unit的中断状态清除
在这里插入图片描述
0x100+(0x20*n)REGION_TOP_LOWRWregionX的低地址
0x108+(0x20*n)REGION_TOP_HIGHRWregionX的高地址
0x110+(0x20*n)REGION_ATTRIBUTESRW控制每个region的属性:安全读写属性、是否使能对应filter unit
在这里插入图片描述
0x114+(0x20*n)REGION_ID_ACCESSRW高bit控制写,低bit控制读每bit对应NSAID的使能情况
在这里插入图片描述

1.6 TZC-400和TZPC和TZASC区别

物理内存和外设的隔离保护通过TZASC和TZPC的设置来达到目的。TZASC可以把物理内存分成多个区域,每个区域的访问权限可以灵活配置为安全区域或是非安全区域,甚至可以配置成只有普通世界可以访问。TZPC则是配置不同的外设属于哪个世界。当然了TZASC和TZPC的配置只能在安全世界下进行。

TZPC只能控制某个外设的安全属性,它不能细粒度的控制地址空间。

TZC400是TZASC的具体实现的IP。

推荐阅读:
https://www.modb.pro/db/622259

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/157457.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2、TCP协议基础

TCP协议基础 1、3次握手建立连接 SYN表示建立连接的标志位,ACK为应答标志位 #mermaid-svg-v9bU5HHw4lMWPKc7 {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-v9bU5HHw4lMWPKc7 .error-icon{fill:#55222…

计算机竞赛python区块链实现 - proof of work工作量证明共识算法

文章目录 0 前言1 区块链基础1.1 比特币内部结构1.2 实现的区块链数据结构1.3 注意点1.4 区块链的核心-工作量证明算法1.4.1 拜占庭将军问题1.4.2 解决办法1.4.3 代码实现 2 快速实现一个区块链2.1 什么是区块链2.2 一个完整的快包含什么2.3 什么是挖矿2.4 工作量证明算法&…

Java 基于SpringBoot的某家乡美食系统

1 简介 《Java 基于SpringBoot的某家乡美食系统》该项目含有源码、文档等资料、配套开发软件、软件安装教程等。系统功能完整,适合作为毕业设计、课程设计、数据库大作业学习使用。 功能介绍 这个项目是基于 SpringBoot和 Vue 开发的地方美食系统,包括…

竞赛选题 深度学习 机器视觉 人脸识别系统 - opencv python

文章目录 0 前言1 机器学习-人脸识别过程人脸检测人脸对其人脸特征向量化人脸识别 2 深度学习-人脸识别过程人脸检测人脸识别Metric Larning 3 最后 0 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 深度学习 机器视觉 人脸识别系统 该项目…

小谈设计模式(25)—职责链模式

小谈设计模式(25)—职责链模式 专栏介绍专栏地址专栏介绍 职责链模式分析角色分析抽象处理者(Handler)具体处理者(ConcreteHandler)客户端(Client) 优缺点分析优点123 缺点12 应用场…

当下测试行业中UI自动化面临的难点及如何解决

经常有人会问,什么样的项目才适合进行UI自动化测试呢?UI自动化测试相当于模拟手工测试,通过程序去操作页面上的控件。而在实际测试过程中,经常会遇到无法找到控件,或者因控件定义变更而带来的维护成本等问题。 哪些场…

深度学习基础知识 给模型的不同层 设置不同学习率

深度学习基础知识 给模型的不同层 设置不同学习率 1、使用预训练模型时,可能需要将2、学习率设置方式: 1、使用预训练模型时,可能需要将 (1)预训练好的 backbone 的 参数学习率设置为较小值, (2…

Fastjson历史版本记录

1.2.24 TemplatesImpl,利用条件苛刻,需要开启Feature.SupportNonPublicField {"type": "com.sun.org.apache.xalan.internal.xsltc.trax.TemplatesImpl","_bytecodes": ["yv66vgAAADQA...CJAAk"],"_name…

LeetCode刷题总结 - LeetCode 热题 100 - 持续更新

LeetCode 热题 100 其他系列哈希1. 两数之和49. 字母异位词分组128. 最长连续序列 双指针27. 移除元素283. 移动零11. 盛最多水的容器剑指 Offer II 007. 数组中和为 0 的三个数42. 接雨水 滑动窗口438. 找到字符串中所有字母异位词3. 无重复字符的最长子串 字串560. 和为 K 的…

PerformanceRunner国产化性能测试工具

国产化性能测试工具PerformanceRunner(简称PR)通过模拟海量用户并发测试整个系统的承受能力,实现压力测试、性能测试、配置测试、峰值测试等。大限度地缩短测试时间,优化性能和加速应用系统的发布周期。 泽众PR性能测试工具是国内…

基于Linux上MySQL8.*版本的安装-参考官网

本地hadoop环境安装好,并安装好mysql mysql下载地址及选择包 MySQL :: Download MyS的QL Community Server (Archived Versions) mysql安装步骤 下载与上传解压给权限 #mysql安装包上传到/opt下 cd /usr/local/ #解压到此目录 tar -xvf /opt/mysql-8.0.33-linux-glibc2.12-…

C# 使用 RSA 加密算法生成证书签名产生“The system cannot find the file specified”异常

使用 C# 中 RSA(System.Security.Cryptography.RSA) 加密算法生成证书签名进行身份验证,在 VS2022 开发工具本地运行应用程序一切正常。 但将应用程序部署到远程服务器(如:Azure App Services)&#xff0c…

基于PLC的机械手控制系统设计

目录 摘 要......................................................................................................................... 1 第一章 绪论.............................................................................................................…

计算机毕业设计选什么题目好?springboot 高校就业管理系统

✍✍计算机编程指导师 ⭐⭐个人介绍:自己非常喜欢研究技术问题!专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目:有源码或者技术上的问题欢迎在评论区一起讨论交流! ⚡⚡ Java实战 |…

git的基础操作

https://blog.csdn.net/a18307096730/article/details/124586216?spm1001.2014.3001.5502 1:使用场景 SVN,如果服务器里面的东西坏掉了,那么就全线崩盘了。 1:基本配置 git config --global user.name “luka” (自己的名字就行) git co…

opencv dnn模块 示例(18) 目标检测 object_detection 之 pp-yolo、pp-yolov2和pp-yolo tiny

文章目录 1、PP-YOLO1.1、网络架构1.1.1、BackBone骨干网络1.1.2、DetectionNeck1.1.3、DetectionHead 1.2、Tricks的选择1.2.1、更大的batchsize1.2.2、滑动平均1.2.3、DropBlock1.2.4、IOU Loss1.2.5、IOU Aware1.2.6、GRID Sensitive1.2.7、Matrix NMS1.2.8、CoordConv1.2.9…

基于Labview的噪声采集分析系

目录 摘 要......................................................................................................................... 3 第一章 绪论.............................................................................................................…

iPhone手机上使用的定时提醒APP是哪个

在日常喧闹的生活和工作中,琐碎的任务会像喷泉一样突涌而至,如不及时规划,我们将陷入手足无措的境地。而想要让各项工作任务按时完成,我们可以借助一些比较好用的时间提醒软件来督促各项任务。 就拿常用的iPhone手机来讲&#xf…

CCF CSP认证 历年题目自练Day29

题目一 试题编号: 202112-1 试题名称: 序列查询 时间限制: 300ms 内存限制: 512.0MB 样例1输入 3 10 2 5 8 样例1输出 15 样例2输入 9 10 1 2 3 4 5 6 7 8 9 样例2输出 45 题目分析(个人理解) 还是…

解读提示工程(Prompt Engineering)

提示工程(Prompt Engineering),也称为上下文提示,是一种通过不更新模型的权重/参数来引导LLM行为朝着特定结果的方法。这是与AI有效交流所需结果的过程。提示工程可以用于各种任务,从回答问题到算术推理乃至各种应用领…