【ARMv8/v9 GIC 系列 5 -- GIC GICD_CTRL 使用详细介绍】

文章目录

  • GICD_CTRL
    • GICD_CTLR 寄存器结构
      • RWP(Register Write Pending)
      • E1NWF(Enable 1 of N Wakeup Functionality)
      • DS(Disable Security)
    • 亲和性路由(Affinity Routing)
      • ARE_NS
      • ARE_S
    • 中断组使能
      • EnableGrp1S
      • EnableGrp1NS)
      • EnableGrp0

GICD_CTRL

GICv3(通用中断控制器版本3)是ARM架构下用于管理和处理中断的关键组件之一。它包含了多个寄存器,用于配置和控制中断的行为。其中,GICD_CTLR(Distributor Control Register)是一个非常重要的寄存器,它用于启用中断和亲和性路由设置。
在这里插入图片描述

下面是对GICD_CTLR寄存器中一些关键位的详细介绍:

GICD_CTLR 寄存器结构

GICD_CTLR的格式取决于访问的安全状态以及系统支持的安全状态数量,这由GICD_CTLR.DS指定。当访问为安全状态,在支持两种安全状态的系统中,其结构如下:

RWP(Register Write Pending)

仅读。指示是否有寄存器写入操作正在进行。

  • 0b0:没有寄存器写入操作正在进行。之前对受影响寄存器字段的写入操作的效果对GIC架构的所有逻辑组件(包括CPU接口)都是可见的。
  • 0b1:寄存器写入操作正在进行。之前对受影响寄存器字段的写入操作的效果不能保证对所有GIC架构的逻辑组件(包括CPU接口)都是可见的,因为更改的效果仍在传播中。

RWP字段跟踪以下内容的写操作:

  • GICD_CTLR[2:0](组启用位,仅限从10的转变)
  • GICD_CTLR[7:4]ARE位,E1NWF位和DS位)
  • GICD_ICENABLER<n>

E1NWF(Enable 1 of N Wakeup Functionality)

如果硬件实现该bit,它将有以下行为:

  • 0b0:处于睡眠状态的PE(处理元素)不能被选为 1 of N中断。
  • 0b1:处于睡眠状态的PE可以根据实现定义的控制被选为 1 of N中断。

DS(Disable Security)

禁用安全性。

  • 0b0:不允许非安全访问访问和修改控制组0中断的寄存器。
  • 0b1:允许非安全访问访问和修改控制组0中断的寄存器。


如果当GICD_CTLR.ARE_S == 1时将DS从0写为1,则对于单一安全状态的GICD_CTLR.ARE是RAO/WI。
如果分配器只支持单一安全状态,此位是RAO/WI。
如果分配器支持两种安全状态,此位是否可编程或实现为RAZ/WI是由实现定义的。设置此字段为1时,所有对GICD_CTLR的访问都访问单一安全状态视图,且所有位都是可访问的。

设置为1后,只能通过硬件重置清除此字段。

如果在以下任何情况为真时将此位从0写为1,则行为是不可预测的:

  • GICD_CTLR.ENABLEGRP0==1
  • GICD_CTLR.ENABLEGRP1S==1
  • GICD_CTLR.ENABLEGRP1NS==1
  • 一个或多个INTID处于激活或激活和挂起状态。

亲和性路由(Affinity Routing)

亲和性路由(Affinity Routing)允许中断被路由到特定的处理器上,从而提高系统的性能和效率。ARE_NSARE_S位分别控制非安全和安全状态下的亲和性路由功能。在修改这些设置之前,需要确保系统处于正确的状态,否则可能会导致不可预测的行为。

以下是对这两个位的详细介绍:

ARE_NS

  • 0b0:非安全状态下禁用亲和性路由。
  • 0b1:非安全状态下启用亲和性路由。

安全状态下的亲和性路由被启用时,这个字段是只读/写入忽略(RAO/WI)。从0变为1的ARE_NS设置变化是不可预测的,除非GICD_CTLR.ENABLEGRP1_NON-SECURE == 0。从1变为0的ARE_NS设置变化也是不可预测的。如果没有实现针对非安全状态的GICv2向后兼容性,那么这个字段是只读/写入忽略(RAO/WI)。

ARE_S

  • 0b0:安全状态下禁用亲和性路由。
  • 0b1:安全状态下启用亲和性路由。

从0变为1的ARE_S设置变化是不可预测的,除非全部满足以下条件:

  • GICD_CTLR.ENABLEGRP0 == 0
  • GICD_CTLR.ENABLEGRP1S == 0
  • GICD_CTLR.ENABLEGRP1NS == 0

从1变为0的ARE_S设置变化也是不可预测的。

中断组使能

GICD_CTLR(Distributor Control Register)寄存器中,有几个位专门用来控制不同安全状态下的中断组的使能状态。这些位包括EnableGrp1SEnableGrp1NSEnableGrp0,它们分别控制安全组1非安全组1组0中断的使能状态。

以下是这些控制位的详细介绍:

EnableGrp1S

Enable Secure Group 1 Interrupts

  • 0b0:安全组1中断被禁用。
  • 0b1:安全组1中断被启用。

这个位允许控制器启用或禁用安全组1的中断。
当设置为1时,安全组1中的中断可以被发送到处理器;
当设置为0时,这些中断被阻止。

EnableGrp1NS)

Enable Non-Secure Group 1 Interrupts

  • 0b0:非安全组1中断被禁用。
  • 0b1:非安全组1中断被启用。

这个位的功能与EnableGrp1S相似,但它专门控制非安全状态下的组1中断。启用这些中断允许非安全环境的中断传递给处理器。

EnableGrp0

Enable Group 0 Interrupts

  • 0b0:组0中断被禁用。
  • 0b1:组0中断被启用。

组0中断通常被用于处理安全相关的中断。通过设置这个位,可以控制这类中断是否能够被分发和处理。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

华侨大学24计算机考研数据速览,专硕22408复试线290分,学硕11408接收调剂!

华侨大学计算机专业创建于1980年&#xff0c;是福建省最早设立计算机专业的高校之一。1982年成立计算机系&#xff0c;2008年成立计算机科学与技术学院。根据“华侨大学计算机科学与技术学院网站”资料&#xff0c;该院有计算机科学与技术、软件工程、网络工程3个本科专业&…

Mysql-基础-DDL操作

1、数据库操作 查询 查询所有数据库 show databases; 创建 创建数据库 create database [if not exists] 数据库名 使用及查询 use 数据库名 select database() 查询当前所处数据库 删除 drop database [if not exists] 数据库名 2、表操作 查询当前库中的所…

使用Python绘制彩虹效果:动态彩虹动画

文章目录 引言准备工作前置条件 代码实现与解析导入必要的库初始化Pygame定义绘制彩虹函数定义颜色列表主循环 完整代码 引言 彩虹是自然界中最美丽的现象之一。通过编程&#xff0c;我们可以将这一奇妙的景象带到屏幕上。在这篇博客中&#xff0c;我们将使用Python来创建一个…

如何优化网站SEO排名?

选择那些容易排名的关键词。使用工具找到那些竞争少但有流量的词语。其次&#xff0c;内部链接非常重要。通过合理的内部链接&#xff0c;可以提升各个页面的权重。 增加FAQ部分能帮助你捕捉更多的长尾关键词流量。争取出现在精选摘要的位置&#xff0c;可以直接提升你的曝光率…

django 逆向生成对应数据库表的models模型类 —— python

一&#xff0c;在setting.py中配置好连接数据库的参数 在setting中的DATABASESZ中配置默认参数&#xff0c;并在INSTALLED_APPS中导入模块名。 DATABASES {default:{ENGINE: django.db.backends.mysql, # 数据库引擎NAME: jljupcs, # 数据库名称HOST: 127.0.0.1, # 数据库…

【设计模式】策略模式(定义 | 特点 | Demo入门讲解)

文章目录 定义策略模式的结构 QuickStart | DemoStep1 | 策略接口Step2 | 策略实现Step3 | 上下文服务类Step4 | 客户端 策略模式的特点优点缺点 定义 策略模式Strategy是一种行为模式&#xff0c;它能定义一系列算法&#xff0c;并将每种算法分别放入到独立的类中&#xff0c…

解决pip安装时的“SyntaxError: invalid syntax”错误

项目场景&#xff1a; 项目中有新的成员加入时&#xff0c;第一步就是安装开发环境&#xff0c;然而往往同样的机器、同样的配置&#xff0c;我们却总能遇到各种各样不同的问题。 今天分享一个简单的操作问题。 问题描述 项目用到pandas&#xff0c;安装pandas时遇到Syntax…

代码随想录-Day46

121. 买卖股票的最佳时机 给定一个数组 prices &#xff0c;它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。 你只能选择 某一天 买入这只股票&#xff0c;并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。 返回你可以从…

CAN学习笔记

学习链接&#xff1a;CAN学习笔记&#xff08;1&#xff09;_can sjw-CSDN博客 内容全部取自链接&#xff0c;非原创。用于自己学习和记录&#xff0c;如有错误请指正。如果侵权了&#xff0c;请联系我删掉。 CAN主要有两种物理层&#xff0c;1.闭环的ISO11898 2.开环的ISO1…

MSI安装包安装的Mysql8,配置文件my.ini在哪儿?

版本 我安装的版本是8.0.36&#xff0c;server根目录下没有配置文件。 文件位置 首先找到对应的windows服务 右击属性&#xff0c;可以看到启动参数&#xff0c;启动参数中有配置文件的路径 比如我的配置文件在"C:\ProgramData\MySQL\MySQL Server 8.0\my.ini"

XHS xs逆向分析

已经把所有的侵权地方删除&#xff0c;望批准 前言 1.本文单纯学习jsvmp和交流&#xff0c;无任何其他意图 2.学习jsvmp&#xff0c;通过插桩和算法还原。 问&#xff1a;什么是vmp&#xff1f; JSVMP&#xff08;JavaScript Virtual Machine Protocol&#xff09;是一种…

严蔚敏数据结构(C语言版)吴伟民宁编著清华大学计算机系列教材+题集+配套题库+笔记+习题PDF电子版

今天分享的是 严蔚敏数据结构&#xff08;C语言版&#xff09;题集配套题库笔记习题PDF电子版 注&#xff1a;本资源搜集于网络&#xff0c;仅供学习交流&#xff0c;严禁用于商业用途 内容简介&#xff1a; “数据结构”是计算机程序设计的重要理论技术基础&#xff0c;它…

002 使用kibana操作ElasticSearch7.x

文章目录 4.使用kibana操作es4.1.文档操作1.put方式发送数据2.post方式发送数据3.查看索引文档 GET4.更新文档 POST5.删除文档&索引 DELETE6.批量添加数据_bulk 4.2.Query DLS(查询领域对象语言)1.url 检索数据语法2.查询所有数据3.查询全部数据并排序4.查询全部数据排序并…

蓝蜂网关接入雄安新区物联网统一开放平台应用案例

蓝蜂网关接入雄安新区物联网统一开放平台案例 一、应用背景 为响应国家《河北雄安新区规划纲要》&#xff0c;由中国雄安集团数字城市科技有限公司牵头&#xff0c;以中移物联网有限公司为牵头单位的联合体&#xff0c;构建了雄安新区物联网统一开放平台&#xff08;简称雄安…

2024英语专业大学排名一览表

英语专业排名前10名的大学是&#xff1a;北京大学、北京外国语大学、上海外国语大学、黑龙江大学、上海交通大学、南京大学、浙江大学、广东外语外贸大学、清华大学、北京航空航天大学&#xff0c;以下是查大学网&#xff08;www.chadaxue.com&#xff09;整理的2024英语专业大…

AI与大模型工程师证书研修班报名啦!

人工智能大模型是指拥有超大规模参数&#xff08;通常在十亿个以上&#xff09;、超强计算资源的机器学习模型&#xff0c;能够处理海量数据&#xff0c;完成各种复杂任务&#xff0c;如自然语言处理、图像识别等。计算机硬件性能不断提升&#xff0c;深度学习算法快速优化&…

js替换对象里面的对象名称

data为数组&#xff0c;val为修改前的名称&#xff0c;name为修改后的名称 JSON.parse(JSON.stringify(data).replace(/val/g, name)) &#xff1b; 1.替换data里面的对象tenantInfoRespVO名称替换成tenantInfoUpdateReqVO 2.替换语句&#xff1a; 代码可复制 let tenantInf…

安装windows服务,细节

1、选中服务代码&#xff0c;右键添加安装程序。 2、安装程序的权限一定改为local,否则安装时会提示null错误。 3、安装服务 InstallUtil D:\vs2022work\testFW\testFW\bin\Debug\testFW.exe p:InstallUtil 需要新建环境变量才能直接使用&#xff08;找到InstallUtil 工具所在…

Softing助力工业4.0 | 通过OPC UA和MQTT访问SINUMERIK 840D CNC控制器数据

Softing uaGate 840D是用于采集西门子SINUMERIK 840D SL/PL CNC控制器数据的物联网网关&#xff0c;支持OPC UA服务器和MQTT发布功能。该网关提供对SINUMERIK 840D CNC控制器机床数据的访问&#xff0c;支持读取、处理重要的主轴和从轴数据&#xff0c;例如扭矩和功耗&#xff…

235、二叉搜索树的最近公共祖先

给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为&#xff1a;“对于有根树 T 的两个结点 p、q&#xff0c;最近公共祖先表示为一个结点 x&#xff0c;满足 x 是 p、q 的祖先且 x 的深度尽可能大&#xff08;一个节点也可以是它自…