【ARM64 ATF 系列 3 -- ARM64 warm reset 与 cold reset】

news2024/11/24 16:49:09

文章目录

    • ARM64 Reset
      • 1.1.1 reset 运行级别
      • 1.1.2 warm reset 寄存器
      • 1.1.3 PSCI Suspend/Resume

ARM64 Reset

在这里插入图片描述
ARMv8-A支持两种复位,冷复位热复位两者主要区别是冷复位会将debug 功能模块也一同复位,热复位在默认情况则不会复位 debug 功 能模块
处理器收到复位信号后,依据处理器的具体实现进入所支持的 最高EL(可能是EL3/EL2,甚至EL1),SP寄存器也使用的是对应 EL下的寄存器。
复位后程序起始执行地址是预先定义的,直接从这个预先定义的地址处开始执行。RVBAR_ELx 寄存器保存着这个预先定义的起始执行地址

1.1.1 reset 运行级别

Reset 时 PE 进入最高的异常级别,运行状态

  • Reset 后最高异常级别可以选用任何一种运行状态
  • cold reset 由输入信号配置, warm resetRMR_ELx.AA64 配置
  • 如果 reset 后最高异常级别选用 A64,则:
    • 选用 SP_ELx
    • Reset向量的执行地址由厂商定义,RVBAR 持有向量地址。

1.1.2 warm reset 寄存器

ARMv8 中只要配置 RMR_EL3 寄存器,系统就会进入warm reset,如下参考代码:

  ...
  ldr x1, =vector_table
  msr vbar_el3, x1
  ...

warm_reset:
    mov x0, xzr
    mov x0, #3
    msr rmr_el3, x0
    isb
    dsb sy
1:  wfi
    b 1b

  .balign 0x800
vector_table:
        b         .
        .balign 0x80
        b         .
        .balign 0x80
        b         .
        .balign 0x80
        b         .
        .balign 0x80
        b         .
        .balign 0x80
        b         .
        .balign 0x80
        b         .
        .balign 0x80
        b         .
        .balign 0x80
        bl   warm_reset
        b         .
        .balign 0x80
        b         .
        .balign 0x80
        b         .
        .balign 0x80
        b         .
        .balign 0x80
        b         .
        .balign 0x80
        b         .
        .balign 0x80
        b         .
        .balign 0x80
        b         .

AARCH32 状态下 RMRCP15协处理器的寄存器,通过以下指令访问

MRC P15, 0, <Rt>, C12, C0, 2; Read RMR into Rt
MCR P15, 0, <Rt>, C12, C0, 2; Write Rt to RMR

RMRRMR_EL3 在32模式下的映射,写此寄存器将触发热复位

系统在 cold reset 过程中,可以在 ATF 中配置 RVBAR_EL3 来指定 CPU 的 warm reset vector 的地址,warm reset 的时候 cpu 执行的函数地址就来自于这个寄存器。那么Reset vector base addr不再局限于 00000000 / FFFF0000了。在实现 ARMv8 SoC的时候:通过 RVBARADDR signal 指定任意地址。

1.1.3 PSCI Suspend/Resume

系统进入 suspend 之后,会通过 PSCI 接口进入 ARM lib 库文件,然后进入bl32,系统从 UDR 出来之后,走的应该也是 warm reset,因为系统在 cold reset 的时候已经配置好了 RVBAR 寄存器了。

如果系统走的是cold reset,那么BL1->BL2->bl31_entrypoint

系统从 UDR 模式出来的时候,一般是在 ATF 中跳转到 kernel,不会在走 uboot流程:

  • 一方面是因为 uboot 的主要功能是启动加载 kernel,在 cold reset 的过程中完成了使命。
  • 另外一方面是因为 UDR 出来之后系统走的是 bl32_warm_entrypoint,在这个函数流程中不会进入uboot

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

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

相关文章

手机便签中可以打勾的圆圈或小方块怎么弄?

在日常的生活和工作中&#xff0c;很多网友除了使用手机便签来记录灵感想法、读书笔记、各种琐事、工作事项外&#xff0c;还会用它来记录一些清单&#xff0c;例如待办事项清单、读书清单、购物清单、旅行必备物品清单等。 在按照记录的清单内容来执行的时候&#xff0c;为了…

创建好的VMware虚拟机如何连接上外网?MobaX和XShell如何连接虚拟机

配置虚拟机网卡 首先点击VMware菜单栏&#xff0c;编辑-虚拟网络编辑器-更改设置 选择VMnet8-NAT设置&#xff0c;并记住子网IP之后有用 记住网关IP 修改实际创建的虚拟机网卡 修改设置&#xff0c;vi /etc/sysconfig/network-scripts/ifcfg-ens32 修改前&#xff1a; 修…

预测地震引发的洪水

当断层陡坡像水坝一样发挥作用时&#xff0c;地表破裂地震可能会突然改变河流的路线。研究人员现已成功模拟发生在新西兰的此类事件。 当断层位移突然改变地貌时&#xff0c;地表破裂地震可能会改变河流的路线&#xff0c;例如新西兰的怀奥托阿/克拉伦斯河&#xff0c;如图所示…

SpringBoot 的自动装配特性

1. Spring Boot 的自动装配特性 Spring Boot 的自动装配&#xff08;Auto-Configuration&#xff09;是一种特性&#xff0c;它允许您在应用程序中使用默认配置来自动配置 Spring Framework 的各种功能和组件&#xff0c;从而减少了繁琐的配置工作。通过自动装配&#xff0c;您…

算法40:移动零

一、需求 给定一个数组 nums&#xff0c;编写一个函数将所有 0 移动到数组的末尾&#xff0c;同时保持非零元素的相对顺序。 请注意 &#xff0c;必须在不复制数组的情况下原地对数组进行操作。 示例 1: 输入: nums [0,1,0,3,12] 输出: [1,3,12,0,0]示例 2: 输入: nums …

opencv 基础54-利用形状场景算法比较轮廓-cv2.createShapeContextDistanceExtractor()

注意&#xff1a;新版本的opencv 4 已经没有这个函数 cv2.createShapeContextDistanceExtractor() 形状场景算法是一种用于比较轮廓或形状的方法。这种算法通常用于计算两个形状之间的相似性或差异性&#xff0c;以及找到最佳的匹配方式。 下面是一种基本的比较轮廓的流程&…

B2B2C多商户电子商务网站开发--海外商城系统搭建

一、明确目标与需求 在开始搭建海外商城系统之前&#xff0c;企业需要明确自己的目标和需求。例如&#xff0c;要面向哪些国家和地区、主要销售哪些产品、需要提供哪些语言和货币支持等。这些目标和需求将有助于企业制定合理的开发计划和方案。 二、选择合适的开发平台和工具…

【安装部署】Mysql下载及其安装的详细步骤

1.下载压缩包 官网地址&#xff1a;www.mysql.com 2.环境配置 1.先解压压缩包 2.配置环境变量 添加环境变量&#xff1a;我的电脑--->属性-->高级-->环境变量-->系统变量-->path 3.在mysql安装目录下新建my.ini文件并&#xff0c;编辑my.ini文件 编辑内容如…

Linux常规操作命令

日升时奋斗&#xff0c;日落时自省 目录 1、vim 1.1、工作模式 1.2、末行模式操作相关命令 1.2.1、保存退出操作 1.2.2、查找替换 1.3、输入模式操作相关命令 1.3.1、移动相关命令 1.3.2、删除和剪切命令 1.3.3、复制操作 1.3.4、撤销 2、head 3、tail 4、ps 5、…

HTTP代理与HTTPS代理请求的方式揭秘

今天&#xff0c;我们要一起来揭秘HTTP代理与HTTPS代理请求的方式&#xff0c;帮助大家更好地理解和使用这两种代理。我们将分析它们的不同之处&#xff0c;并提供一些实际的例子和操作经验&#xff0c;让你轻松玩转网络请求&#xff01; HTTP代理请求方式&#xff1a; HTTP代…

IBM Spectrum LSF 分布式系统(作业调度系统),提高高性能计算(HPC)的价值

IBM Spectrum LSF Suites 凭借更快的处理和更轻松的处理&#xff0c;提高高性能计算的价值 要点 通过隐藏工作负载密集型计算环境的复杂性&#xff0c;提高用户生产效率简化计算集群管理并划分工作负载优先级&#xff0c;以快速满足竞争激烈的行业瞬息万变的需求通过优化系统…

LLM - CUDA out of memory. 到底怎么事

目录 一.引言 二.报错日志 1.日志数据 2.日志提示 ◆ max_split_size_mb ◆ See documentation ◆ 更多解决方案 三.日志扩展 1.Reserved Memory 是什么&#xff1f; 2.Tired to allocate 小于 free MiB 就会报 OOM 嘛? 3.already allocated 是当前任务占用内存&a…

【高危】 Microsoft Teams 远程代码执行漏洞

漏洞描述 Microsoft Teams 是微软推出的一款团队协作平台&#xff0c;提供了聊天、通话、在线会议、文件共享等功能。 Microsoft Teams 受影响版本中&#xff0c;当用户加入攻击者设置的恶意 Microsoft Teams 会议时&#xff0c;攻击者可远程执行任意代码。 漏洞名称Microso…

游戏类APP的如何设置广告场景最大化用户价值?提升变现收益?

最近几年&#xff0c;游戏类市场的不断增长激发了广告主预算的不断投入&#xff0c;越来越多的游戏类APP通过广告变现的方式增收&#xff0c;并且获得持续上涨的eCPM。 具有潜力的游戏品类参考 根据游戏品类的增长数据和广告收益规模&#xff0c;休闲/模拟/街机均为收益正向的…

Echarts 让饼图中间文字居中并自适应图表

背景&#xff1a; 产品提出需求在饼图中间放两行文字且居中 “简单&#xff0c;劈劈啪啪写完了” 产品再提出你这个没有自适应啊&#xff0c;屏幕放大、缩小你这个就没有居中了&#xff0c;甚至会和饼图重叠 “emmmmm…" UI图如下&#xff1a; 方案一&#xff1a;使用ti…

数据结构和算法——哈希查找冲突处理方法(开放地址法-线性探测、平方探测、双散列探测、再散列,分离链接法)

目录 开放地址法&#xff08;Open Addressing&#xff09; 线性探测&#xff08;Linear Probing&#xff09; 散列表查找性能分析 平方探测&#xff08;Quadratic Probing&#xff09; 定理 平方探测法的查找与插入 双散列探测法&#xff08;Double Hashing&#xff09…

【C语言】经典题目(四)

HI&#xff0c;大家好~&#x1f61d;&#x1f61d;这是一篇C语言经典题目的博客。 更多C语言经典题目及刷题篇&#xff0c;可以参考&#xff1a; &#x1f338; 【C语言】经典题目(一) &#x1f338; 【C语言】经典题目(二) &#x1f338; 【C语言】经典题目(三) &#x1f338;…

生信分析pandas数据处理 Python简明教程 | 视频17

开源生信 Python教程 生信专用简明 Python 文字和视频教程 源码在&#xff1a;https://github.com/Tong-Chen/Bioinfo_course_python 目录 背景介绍 编程开篇为什么学习Python如何安装Python如何运行Python命令和脚本使用什么编辑器写Python脚本Python程序事例Python基本语法 数…

ant design pro 中ModalForm的参数open无法控制的问题

根据antd自己的说明&#xff0c;visible这个参数在下个版本会被替换成open&#xff0c;所以今天我试着用open。 但是用了open之后发现这个model弹不出来&#xff0c;用visible是正常的。 那么问题在哪呢&#xff1f;又是在import的位置不对 open可以使用的是&#xff1a; imp…

在2023年及以后可以改善企业业务的五种软件

在当今互通互联的世界&#xff0c;依赖人工流程和传统方法的日子早已过去。目前&#xff0c;各种各样的软件解决方案有助于推动企业走向成功。这些解决方案是重塑客户关系、优化项目工作流程、革新财务管理实践以及通过沉浸式的培训体验增强员工能力的关键。 采用软件解决方案…