news 2025/12/27 6:17:24

【Armv8-A】复位

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【Armv8-A】复位

Armv8-A架构支持两种复位模式:

  • Cold Reset(冷复位):复位处理器执行所依赖的所有逻辑
  • Warm Reset(热复位):复位处理器执行所依赖的部分逻辑

所有在热复位(Warm reset)中会被复位的逻辑,在冷复位(Cold reset)中也同样会被复位

RMR_ELx寄存器(复位管理寄存器):

  • RMR_ELx.RR位:写1去请求一个Warm Reset
  • RMR_ELx.AA64位:EL1处于AArch32状态,且发生Warm Rest时,PE跳转到哪个执行状态
    • 0b0:跳转到AArch32
    • 0b1:跳转到AArch64

这些复位(指冷复位和热复位)的触发机制(除RMR_ELx.RR之外)由具体实现定义。以下方面也由具体实现定义:

  • 是否能够独立触发外部调试复位与冷复位
  • 除使用RMR_ELx.RR之外,是否能够触发热复位(而不是触发冷复位)
重点发生复位(Cold/Warm)时,处理器(PE)会进入已实现的最高异常等级
如果PE的最高可进入的异常等级能使用任一执行状态(AArch64或AArch32),则:
  • 该PE必须包含一个复位管理寄存器(RMR)。如果仅有一个RMR。则该RMR是与最高异常级别相关联的那个RMR
  • 发生冷复位时,进入的执行状态由配置输入信号决定
  • 发生热复位时,进入的执行状态由RMR_ELx.AA64位决定

如果PE的最高可进入的异常等级被配置为使用AArch64状态,则在复位时:

  • PE会进入以实现的最高异常等级,因此使用的SP也是对应最高异常等级的SP_ELx寄存器
  • 从最高实现异常级别关联的复位向量基地址寄存器(RVBAR_EL1、RVBAR_EL2或RVBAR_EL3)中保存的地址的物理地址开始重新执行

复位之后的第一时刻,处理器(PE)的大部分状态是未知的。然而,部分处理器状态是有定义的。如果处理器通过冷复位或热复位进入AArch64状态,则有定义的处理器状态如下:

  • 每个PSTATE.{D, A, I, F}中断掩码位都被设置为1
  • 软件步进控制位PSTATE.SS被设置为0
  • IL进程状态位PSTATE.IL被设置为0
  • 所有通用寄存器、SIMD和浮点寄存器的状态是未知的
  • 每个异常等级的ELR(异常链接寄存器)和SPSR(保存的程序状态寄存器)是未知的
  • 每个异常等级的栈指针寄存器的状态是未知的
  • 处理器的全局互斥监视器和本地互斥监视器的状态是未知的
  • TLB(转址旁路缓存)和高速缓存处于实现定义的状态。这意味着在启用内存管理系统或允许对可缓存(Cacheable)的普通内存进行访问之前,可能需要使用实现定义的无效化序列来对TLB、高速缓存或两者进行无效化操作
  • 在最高实现异常等级的SCTLR_ELx寄存器中:
    • 每个{M, C, I}位都被设置为0
    • EE位被设置为一个实现定义的值,通常由配置输入信号决定
  • 如果实现了RMR(复位管理寄存器),则最高实现的异常等级的RMR_ELx.RR位被设置为0
  • 计数器事件流的使能位被设置为0。这意味着以下位被设置为0:
    • CNTKCTL_EL1.EVNTEN位
    • 如果实现中包含EL2,则CNTHCTL_EL2.EVNTEN位也被设置为0
  • PMCR_EL0.E位被设置为0
  • OSDLR_EL1.DLK位被设置为0
  • MDCCINT_EL1.{TX, RX}的每一位都被设置为0
  • EDPRCR.CWRR被设置为0
  • EDPRSR.SR被设置为1
  • 如果实现中包含EL3,则MDCR_EL3.{EPMAD, EDAD, SPME}的每一位都被设置为0
  • 如果实现中包含EL2,则MDCR_EL2.HPMN被设置为PMCR_EL0.N的值
  • EDESR.OSUC被设置为0
  • 如果未实现ARMv8.3-DoPD功能,则EDESR.SS被设置为EDECR.SS的值
  • 如果实现了ARMv8.3-DoPD功能,则EDESR.RC被设置为CTIDEVCTL.RCE的值;否则,EDESR.RC被设置为EDECR.RCE的值
  • 除非在本小节中明确定义,否则每个异常等级下的每个系统寄存器都处于架构定义的未知状态

此外,对于进入AArch64状态的冷复位

  • 如果实现了RMR(复位管理寄存器),则最高实现的异常等级的RMR_ELx.AA64位被设置为1
  • MDCCSR_EL0.{TXfull, RXfull}的每一位都被设置为0
  • 如果未实现ARMv8.3-DoPD功能,则DBGPRCR_EL1.CORENPRDRQ被设置为EDPRCR.COREPURQ的值
  • 调试CLAIM位被复位为0
  • EDSCR.{RXO, TXU, INTdis, TDA, MA, HDE, ERR, RXfull, TXfull}的每一位都被设置为0
  • EDECCR.{NSE, SE}的每一位都被设置为0
  • 如果实现了ARMv8.3-DoPD功能,则EDECR.SS被设置为0
  • OSLSR_EL1.OSLK位被设置为1
  • 在EDPRSR寄存器中:
    • SPMAD和SDAD字段被设置为0
    • SPD字段被设置为1
  • AMCNTENCLR0_EL0、AMCNTENCLR1_EL0、AMCNTENSET0_EL0和AMCNTENSET1_EL0的每个字段都被设置为0
  • 每个已实现的架构化活动监控计数器AMEVCNTR0<n>_EL0和每个已实现的辅助活动监控计数器AMEVCNTR1<n>_EL0都被设置为0
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2025/12/24 1:04:40

基于VUE的人事员工考勤管理系统[VUE]-计算机毕业设计源码+LW文档

摘要&#xff1a;随着企业规模的扩大和管理的复杂化&#xff0c;高效的人事员工考勤管理系统成为企业提升管理效率的关键。本文介绍了基于VUE框架开发的人事员工考勤管理系统&#xff0c;阐述了系统的开发背景、需求分析、技术选型、系统设计以及实现过程。该系统实现了员工信息…

作者头像 李华
网站建设 2025/12/24 5:14:23

基于VUE的商品售后服务预约系统[VUE]-计算机毕业设计源码+LW文档

摘要&#xff1a;随着电子商务的蓬勃发展&#xff0c;商品售后服务的质量和效率成为影响消费者满意度和企业竞争力的关键因素。本文设计并实现了一个基于VUE的商品售后服务预约系统&#xff0c;旨在优化售后服务流程&#xff0c;提高服务响应速度和客户体验。通过需求分析明确系…

作者头像 李华
网站建设 2025/12/23 20:08:35

基于VUE的社区疫情管理系统 [VUE]-计算机毕业设计源码+LW文档

摘要&#xff1a;社区作为疫情防控的重要阵地&#xff0c;其管理的信息化水平直接关系到疫情防控的效率和效果。本文旨在设计并实现基于VUE的社区疫情管理系统&#xff0c;通过整合现代信息技术&#xff0c;提升社区疫情管理的精准性和及时性。论文详细阐述了系统的需求分析、技…

作者头像 李华
网站建设 2025/12/23 11:19:51

2025鱼骨图与因果分析技巧:轻松提升分析效率

在实际工作中&#xff0c;时间往往是最宝贵的资源。虽然鱼骨图是一个强大的分析工具&#xff0c;但如果方法不当&#xff0c;可能会花费大量时间却效果不佳。掌握一些实用的技巧&#xff0c;能够让你的鱼骨图分析事半功倍&#xff0c;大幅提升效率。今天就来分享一些经过实践验…

作者头像 李华
网站建设 2025/12/24 5:51:42

Dify企业级实战深度解析 (9)

一、学习目标作为 Dify 企业级实战系列的插件开发专项篇&#xff0c;本集聚焦 “翻译工具插件” 这一高频通用需求&#xff0c;核心目标是掌握Dify 插件开发的标准化流程、翻译 API 联动、工作流集成与企业级适配&#xff1a;从插件需求拆解到开发调试&#xff0c;从翻译核心功…

作者头像 李华
网站建设 2025/12/22 17:15:59

IT高管钓鱼点击行为与组织响应机制研究

摘要尽管高级IT管理者通常被视为网络安全防线的核心&#xff0c;但近期由Arctic Wolf开展的调研揭示了一个令人警觉的现象&#xff1a;近三分之二&#xff08;65%&#xff09;的IT高管承认曾点击过钓鱼链接&#xff0c;其中17%未向上级或安全团队报告&#xff0c;约10%甚至多次…

作者头像 李华