【ARM AMBA AXI 入门 9 - AXI 总线 AxPROT 与安全之间的关系 】

news2024/11/27 5:27:45

文章目录

    • 介绍
      • ARM Trustzone的安全扩展简介
    • 1.1 AXI AxPROT 介绍
    • 1.1.1 AXI 对 Trustzone的支持

介绍

ARMv8 架构中的AXI(Advanced eXtensible Interface)总线与NS(Non-Secure)位密切相关。NS位是指在ARM TrustZone安全扩展中定义的一种状态,用于区分安全和非安全的处理器执行环境。AXI总线可以通过NS位来实现安全和非安全处理器之间的隔离和通信。具体来说,AXI总线上的每个事务都包括一个NS位,用于指示该事务所属的处理器执行环境。当一个非安全处理器向一个安全设备发起事务时,该事务的NS位应该设置为非安全。如果一个安全处理器向一个非安全设备发起事务,该事务的NS位也应该设置为非安全。通过这种方式,AXI总线可以实现安全和非安全处理器之间的数据传输和通信,确保系统的安全性和可靠性。
— 来自ChatGPT

ARM Trustzone的安全扩展简介

ARM Trustzone 不具体指一个硬件,也不是一个软件,而是一个技术架构,在支持ARM Trustzone的SOC中,需按照ARM Trustzone技术对各个子模块进行设计。如下便展示了一个SOC的Trustzone架构下的设计框图
在这里插入图片描述
其中:

  • AMBA-AXI 总线的扩展, 增加了标志 secure 读和写地址线:AWPROT[1]ARPROT[1]
  • Processor 的扩展(或者说master的扩展),在ARM Core内部增加了SCR.NS比特位,这样ARM Core发起的操作就可以被标记“是以secure身份发起的访问,还是以non-secure身份发起的访问”;
  • TZPC 扩展,在AXI-TO-APB端增加了 TZPC,用于配置 apb controller 的权限(或者叫secure controller),例如将efuse(OTP Fuse)配置成安全属性后,那么Processor 以 non-secure 发起的访问将会被拒绝,非法的访问将会返回给 AXI 总线一个错误;
  • TZASC扩展,在DDRC(DMC)之上增加一个memory filter,现在一般都是使用 TZC400,它的作用一般就是配置DDR的权限, 如果配置了DDR中某块 region 为安全属性,那么 Processor 以 non-secure 发起的访问将会被拒绝;
  • MMU/Cache对安全扩展的支持
    在软件架构的设计中,分为:
    • Non-secure EL0&1 Transslation Regime
    • Secure EL0&1 Transslation Regime,
      即normal world和secure world侧使用不同的Transslation Regime,其实就是使用不同的 TTBRx_ELn寄存器,使用不同得页表。
      注意:
      • 在armv7上,TTBRx_EL0、TTBRx_EL1是banked by Security State,也就是说在安全世界和非安全世界各有一组这样的寄存器,所以在linux和tee中可以各自维护一张自己的内存页表.
      • 在armv8/armv9上,TTBRx_EL0、TTBRx_EL1不再是banked了,但是world switch时会在ATF中switch cpu context, 所以从hypervisror或os的视角来看,依然还是两套不同的TTBRx_ELn寄存器,linux和tee各有各的页表。
      • 在TLB中,又为每一个entry增加了Non-secure属性位,即标记当前翻译出的物理地址是secure还是non-secure;
      • cache 的扩展:在 cache 的 entry 中的 TAG 中,有一个 NON-Secure Identifier 标记为,表示当前缓存数据的物理地址是属于non-secure还是secure。
  • GIC 对安全扩展的支持,在gicv2、gicv3的版本中,都增加了对安全扩展的支持. 以gicv3为例,将中断划分成了group0、secure group1和non-secure group1. 在软件的配置下,group0和secure group1的中断将不会target到REE(linux)中处理

1.1 AXI AxPROT 介绍

AXI(Advanced eXtensible Interface)总线中的AxPROT是一种保护机制,用于控制总线上的访问权限。具体来说,AxPROT可以用于指示一个事务的访问类型和访问权限,包括读/写访问、特权/非特权访问、安全/非安全访问等。为了阻止恶意程序越权访问的关键外设,AXI 协议设计了访问控制信号 AxPROT,配合其他安全机制,限定不同应用的访问权限。

需要注意的是,AxPROT的具体功能和配置可能会因芯片型号和厂商而有所不同,具体细节需要参考相应的处理器手册和AXI规格书。

此外,协议规定 AxLOCK、AxPROT 信号是不可改变的。

1.1.1 AXI 对 Trustzone的支持

读写事务的 AxPROT 信号位宽均为 3 比特,
ARPROT[2:0]AWPROT[2:0] 分别是读通道和写通道中的关于权限的信号,例如它们中的 BIT[1] 则分别表示正是进行secure身份的读或secure身份的写操作。
在这里插入图片描述

推荐阅读
https://blog.csdn.net/weixin_42135087/article/details/109272384

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

LeetCode 1254. Number of Closed Islands【DFS,BFS,并查集】中等

本文属于「征服LeetCode」系列文章之一,这一系列正式开始于2021/08/12。由于LeetCode上部分题目有锁,本系列将至少持续到刷完所有无锁题之日为止;由于LeetCode还在不断地创建新题,本系列的终止日期可能是永远。在这一系列刷题文章…

单片机MCU如何实现让部分代码运行在RAM中

随着单片机硬件的发展,其中的RAM和flash越做越大。MCU在实际的使用中,通常程序都是运行在flash上的,RAM的高速空间并没有得到充分的利用,如果我们的程序需要运行的更快,系统有更好的实时性,我们可以考虑将这…

CSS查缺补漏之《常用长度单位(px、em、rem、%、vw/vh、vmin/vmax)》

此文内容较少,轻轻松松掌握,莫要有压力~ 正如现实生活中长度具有mm、dm、cm、m等,在css中,也具备多种长度单位,本文对常用的几种单位进行详细举例介绍~ px:像素单位 初学css时,px单位经常被使用…

【Leetcode60天带刷】day08字符串——344.反转字符串, 541. 反转字符串II,剑指Offer 05.替换空格,151.翻转字符串里的单词

题目: 344. 反转字符串 编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 s 的形式给出。 不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。 示例 1: 输入&…

基于SpringBoot+Vue的“漫画之家”系统设计与实现

博主介绍: 大家好,我是一名在Java圈混迹十余年的程序员,精通Java编程语言,同时也熟练掌握微信小程序、Python和Android等技术,能够为大家提供全方位的技术支持和交流。 我擅长在JavaWeb、SSH、SSM、SpringBoot等框架下…

新电脑机环境安装笔记

「Navicat_15.0.25_64bit_Setup.exe」 下载https://www.aliyundrive.com/s/b9xUw2JpuJb Navicat Keygen Patch v5.6.0 下载 https://www.aliyundrive.com/s/YYyE5BQMMuN 全程断网操作 patch 将安装目录选中 提示 check 64 mysql安装: https://baijiahao.baidu…

因子分析——SPSS实例分析

【续上篇主成分分析】 因子分析常用于通过可观测变量推断出其背后的公共因子(也称为隐变量),样本在公共因子上的取值变化影响其在可观测变量上的取值,因为一般公共因子的个数小于可观测变量的数目,所以因子分析也可以…

渠道归因(一)传统渠道归因

渠道归因(一)传统渠道归因 小P:小H,我又来了。。。最近在做ROI数据,但是有个问题。。。 小H:什么问题,不就是收入/成本吗? 小P:是的,每个渠道的成本很容易计算…

基于html+css的图展示134

准备项目 项目开发工具 Visual Studio Code 1.44.2 版本: 1.44.2 提交: ff915844119ce9485abfe8aa9076ec76b5300ddd 日期: 2020-04-16T16:36:23.138Z Electron: 7.1.11 Chrome: 78.0.3904.130 Node.js: 12.8.1 V8: 7.8.279.23-electron.0 OS: Windows_NT x64 10.0.19044 项目…

如何打造创意百变的虚拟直播场景?

场景对于直播来说是直接呈现给观众的,也是直播带货的“直接”的视觉冲击的价值核心,所以场景的设计十分重要。今天,我们就一起来看看如何低成本搭建一个网红同款直播间吧! 直播间类型 直播间大体可以分为三种类型:虚拟…

CUDA共享内存详解

为什么需要共享内存? 共享内存的访问速度比访问全局速度快的多,因此对于多次访问全局内存的程序,特别是需要多次将全局内存的运算结果缓存到全局内存的运算,先将临时结果缓存到共享内存再做计算,会提高运算速度。 1、…

C语言使用Wininet库网络编程跳坑记 —— cookies篇

笔者尝试C语言使用Wininet库进行网络编程时,我尝试使用 InternetSetCookieA() 或 HttpAddRequestHeadersA() 设置 cookie。 HttpAddRequestHeadersA(Request, headers, header_len, HTTP_ADDREQ_FLAG_ADD | HTTP_ADDREQ_FLAG_REPLACE); InternetSetCookieA(url, NU…

基于SpringBoot+Vue的电影分享平台

✌全网粉丝20W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取项目下载方式🍅 一、项目背景介绍: 当代社会,…

Linux(环境准备)VMware与CentOS及XShell的安装

目录 第 1 章 VMware 1.1 VMware 安装 1.1.1 VMware Workstation Pro 15.5 安装包 ​1.2.2 欢迎界面 1.2.3 同意许可证 1.2.4 选择安装路径 1.2.5 用户体检计划 1.2.6 快捷方式 1.2.7 开始安装 1.2.8 等待安装完成 1.2.9 安装完成 1.2.10 输入许可证 1.2.11 VM…

工欲善其事,必先利其器--Vscode嵌入式Linux开发远程开发设置(适用于多平台)

点击上方“嵌入式应用研究院”,选择“置顶/星标公众号” 干货福利,第一时间送达! 来源 | 嵌入式应用研究院 整理&排版 | 嵌入式应用研究院 最近搭了一台Ubuntu18.04版本的桌面PC,不得不说比起Window搭虚拟机搞起来爽多了&…

python文件首行

类似于一切脚本文件一样,首行可用于指定解释器用于执行文件; 常见的是linux系统下的各个解释器。比如: #!/bin/sh– 使用Bourne shell或兼容的 shell执行文件,假定位于 /bin 目录中#!/bin/bash– 使用Bash shell执行文件#!/usr/…

会声会影如何抠图换背景 会声会影抠图后人物变透明

抠图换背景,大家可能会在图片编辑上应用得比较多。实际上,视频也能通过抠图的方式换背景,其困难程度与背景类型有关。纯色背景会比较简单,非纯色背景会比较难,接下来,一起来看看会声会影如何抠图换背景&…

Cocos Creator3D:制作可任意拉伸的 UI 图像

推荐:将 NSDT场景编辑器 加入你的3D工具链 3D工具集: NSDT简石数字孪生 制作可任意拉伸的 UI 图像 UI 系统核心的设计原则是能够自动适应各种不同的设备屏幕尺寸,因此我们在制作 UI 时需要正确设置每个控件元素的尺寸(size&#…

java项目之病人跟踪治疗信息管理系统(ssm+vue)

风定落花生,歌声逐流水,大家好我是风歌,混迹在java圈的辛苦码农。今天要和大家聊的是一款基于ssm的病人跟踪治疗信息管理系统。项目源码以及部署相关请联系风歌,文末附上联系信息 。 💕💕作者:风…

【C语言复习】第五篇、关于C语言变量,常量,字符串,转义字符的知识

目录 第一部分、关于变量 1、什么是变量?变量的分类? 2、变量的作用域?变量的生命周期? 第二部分、关于常量 1、什么是常量? 2、如何定义常量? 第三部分、关于字符串 1、什么是字符串? …