ATF问题二则:EL3可能没有实现吗? aarch32中的S-EL1是什么?

news2024/9/20 1:23:48

最近两个问题,戳到了我的知识盲点,当然我这个菜鸡ATF哪里都是盲点。

问题一:EL3可能没有实现吗?
问题二:bl2是aarch32, 那么bl2是S-EL1,bl31也是S-EL1?

1、EL3可能没有实现吗?

The Armv8-A architecture defines a set of Exception levels, EL0 to EL3, where:
+ If ELn is the Exception level, increased values of n indicate increased software execution privilege.
+ Execution at EL0 is called unprivileged execution.
+ EL2 provides support for virtualization.
+ EL3 provides support for switching between two Security states, Secure state and Non-secure state.
An implementation might not include all of the Exception levels.All implementations must include ELO and EL1.EL2 and EL3 are optional.

Armv8-A体系结构定义了一组异常级别,EL0到EL3,其中:

  • 1、如果ELn是异常级别,则增加的n值表示增加的软件执行权限。
  • 2、在EL0执行被称为无特权执行。
  • 3、EL2支持虚拟化。
  • 4、EL3支持在两种安全状态(安全状态和非安全状态)之间切换。

实现可能不包括所有异常级别。所有实施必须包括EL0和EL1EL2和EL3是可选的

2、bl2是aarch32,那么bl2是S-EL1,bl31也是S-EL1?

关于这个问题,我挺纳闷的,bl2怎么会是S-EL1,bl31也是S-EL1。

这句话的出处:
在这里插入图片描述
我脑子里一直都是基于arrch64,此时BL2和BL31都是位于EL3。但是关于arrch32的异常等级不是很了解,就这个问题展开瞅瞅。来看看arrch32的架构。

不过在这个之前我们需要回溯一些ARMv8的安全架构:
在这里插入图片描述
在这里插入图片描述
一般情况下,应用程序、操作系统内核、Hypervisor,占有一个单独的异常等级。但是有个例外,就是像KVM这样的在内核中的Hypervisor,会运行在EL1和2中。

1、怎么来的AArch64和AArch32?

在这个基础之上ARMv8架构是有两种运行状态,AArch64和AArch32:

1)AArch64

  • 运行64bit宽通用寄存器。

  • AArch64的特权等级,由异常等级决定。因此运行在ELn的特权等级就是PLn。

  • 在AArch64状态,处理器执行A64指令集。

在这里插入图片描述

2)AArch32

  • 运行32bit宽通用寄存器。

  • AArch32保留了ARMv7的特权等级。

  • 在AArch32状态,处理器执行A32或者T32(Thumb)指令集。
    在这里插入图片描述

为什么需要有个32呢,这个就是为了兼容性的考虑。Armv7之前都是32位的。那么要解决这个问题。我们就需要结合Armv7的安全等级来瞅瞅对应现在的EL0到EL3.

手续年看看ArmV7。

2、ARMv7

在这里插入图片描述

从图片中我们看到了这个特权等级不像是V8的EL开头,而是PL开头的。

在这里插入图片描述

所以回归问题的根因就是:bl2怎么会是S-EL1,bl31也是S-EL1。这个S-EL1是指的是Secure PL1。

这样这句话是不是就成立了。(就是因为在32位中没有EL这个说法,SE-PL1就是对应64的EL3。)

要学习的还要好多呀!!!

参考资料:
https://blog.csdn.net/sjwangjinbao/article/details/121758726

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

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

相关文章

基于MATLAB的一级倒立摆控制仿真,带GUI界面操作显示倒立摆动画,控制器控制输出

目录 1.算法描述 2.仿真效果预览 3.MATLAB核心程序 4.完整MATLAB 1.算法描述 一个可以活动的小车上立着一根不稳定随时会倒下的杆。小车的轮子由电机控制,可以控制小车电机的转动力矩M。同时,也可以获取小车轮子转动的圈数N(可以精确到小…

java计算机毕业设计ssm实验室设备管理系统5k648(附源码、数据库)

java计算机毕业设计ssm实验室设备管理系统5k648(附源码、数据库) 项目运行 环境配置: Jdk1.8 Tomcat8.5 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xf…

162.基于Django-rest_framework的身份验证和权限

1. 概述 到目前为止,程序的API对任何人都可以编辑或删除,没有任何限制。我们希望有一些更高级的行为,进行身份验证和权限分配,以确保: 数据始终与创建者相关联只有经过身份验证的用户才能创建数据只有数据的创建者可…

嵌入式Linux上ifpulgd的使用配置与qemu模拟验证

问题引入 最近在项目开发中收到了一个非常简单的需求,我们的嵌入式Linux板卡需要在检测到网口插拔后重新配置网络,这在pc环境中非常常见。但是在这个项目的默认SDK中并没有相关配置,稍微查询了一下,在一般pc上通常使用Ifpulgd,并…

[附源码]Python计算机毕业设计Django企业售后服务管理系统

项目运行 环境配置: Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术: django python Vue 等等组成,B/S模式 pychram管理等等。 环境需要 1.运行环境:最好是python3.7.7,…

【数据结构】树的概念与堆的实现

树的概念与堆的实现1、什么是树1.1 树的概念1.2 树的相关概念1.3 树的表示2、二叉树概念及结构2.1 概念2.2 特殊的二叉树2.3 二叉树的性质2.4 二叉树的存储结构3、二叉树的顺序结构及实现3.1 二叉树的顺序结构3.2 堆的概念及结构3.3 堆的实现3.3.1 创建一个堆3.3.2 初始化堆3.3…

【计算机毕业设计】基于JSP的网上购物系统的设计与实现

分类号:TP315 U D C:D10621-408-(2007)5883-0 密 级:公 开 编 号:2003214012 学位论文 基于JSP的网上购物系统的设计与实现 基于JSP的网上购物系统的设计与实现 摘 要 近年来,随着Internet的迅速崛起&#xff0c…

内存 分页、交换空间

目录 1. 分页 1.1 地址转换 1.2 页表存在哪里 1.3 列表中究竟有什么 1.4 分页的优缺点 2. 快速地址转换(TLB) 2.1 TLB 的基本算法 2.2 谁来处理 TLB 未命中 2.2.1 硬件处理 2.2.2 软件(操作系统)处理 2.3 TLB 的内容 …

[附源码]Python计算机毕业设计SSM精准扶贫系统(程序+LW)

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

(免费分享)基于springboot,vue公司财务系统

该系统是一个简单的公司财务管理系统,包含用户基本信息管理(员工管理,管理员管理),工资管理(员工工资管理,管理员工资管理),业务管理(员工业务管理&#xff0…

Windows server 2012搭建用户隔离FTP站点

Windows server 2012搭建用户隔离FTP站点 系统添加FTP功能创建FTP登陆账户和其使用的文件夹D盘根目录下创建FTP站点主目录ftp文件夹ftp下创建用户主目录localuser(名称不可更改,实现用户隔离必要步骤)Localuser文件夹下创建对应用户的文件夹…

opencv入门笔记(二)

目录图像运算位运算位与运算位或运算取反运算异或运算位运算特点示例:位运算示例加法运算示例:查看三种加法运算的区别滤波器均值滤波中值滤波高斯滤波双边滤波示例:查看多种滤波器的处理效果视频处理示例:打开笔记本电脑内置摄像…

轻量化神经网络(移动设备上的神经网络)的整体框架

提示:不断更新中 文章目录一、为什么要引入轻量化神经网络二、模型压缩(Model Compression)参数修建低秩因子分解参数量化知识蒸馏人工神经架构设计三、自动压缩和神经架构搜索(Automated Compression and Neural Architecture Search)自动模型压缩(Automated Model…

【软件工程】白盒测试:基本路径测试

基本路径测试是在程序控制流图的基础上,通过分析控制构造的环路复杂性,导出基本可执行的路径集合,从而设计测试用例的方法。 步骤(以一段代码为例): (1)画出控制流图 void sort(int num,int t) 1. { 2. i…

MySQL数据库的SQL语句

MySQL数据库的SQL语句MySQL的常用数据类型MySQL数据类型及含义char与varchar的区别MySQL的基本命令登录数据库查看MySQL数据库版本查看当前服务器中的数据库查看MySQL库中的表查看表的结构(字段)SQL语句SQL简介及分类创建新的数据库创建新的表添加表中各…

卡尔曼滤波之基本概念和状态观测器

图裂参考原文:https://www.cnblogs.com/odesey/p/16937124.html 1. 为什么使用 Kalman Filters? 1.1 什么是 Kalman Filters? Kalman Filters 是一种优化估计算法。下面使用使用两个例子说明 Kalman Filters 的用处。 例子1: …

电子学会2021年3月青少年软件编程(图形化)等级考试试卷(二级)答案解析

目录 一、单选题(共25题,每题2分,共50分) 二、判断题(共10题,每题2分,共20分) 三、编程题(共2题,共30分) 青少年软件编程(图形化&a…

Java#32(异常, File)

目录 一.异常 异常: 代表程序出现问题 二.File 1.File的三种构造方法 2.File的常见的成员方法 一.异常 异常: 代表程序出现问题 图解: 从Java文件------>字节码文件的过程就是编译(在这期间的异常就是编译时异常) 从字节码文件------->运行结果的过程就是运行(在这期…

Linux系统调用与API

系统调用是应用程序与操作系统内核之间的接口,它决定了应用程序是如何与内核打交道的。无论程序是直接进行系统调用,还是通过运行库,最终还是会达到系统调用这个层面。 系统调用介绍 1、什么是系统调用 在现代的操作系统里,程序运…

CEC2015:动态多目标野狗优化算法求解CEC2015(提供完整MATLAB代码,含GD、IGD、HV和SP评价指标)

一、动态多目标优化问题简介 现实世界中,许多优化问题不仅具有多属性,而且与时间相关,即随着时间的变化,优化问题本身也发生改变,这类问题称为动态多目标优化问题(dynamic multi-objective optimization p…