GICv3-4零散的寄存器解读(1)
ICC_SRE_EL3:控制EL3下选择系统寄存器接口,或内存映射接口,作为GIC CPU接口;(非正规表述就是对ICC_*/ICH*寄存器的访问是通过寄存器接口还是内存映射接口,如果使用内存映射接口,则访问寄存器会发生异常,并被本异常等级捕获)
bit3 Enable:使能低异常等级对ICC_SRE_EL1/2的访问;
0-将Secure/non-Secure EL1(ICC_SRE_EL3的SRE==1即使用系统寄存器接口)对ICC_SRE_EL1的访问、EL2对ICC_SRE_EL1/2的访问捕获到EL3;
1-不捕获;
bit2 DIB:禁用IRQ bypass;
0-使能IRQ bypass;
1-禁用IRQ bypass;
bit1 DFB:禁用FIQ bypass,同DIB;
bit0 SRE:使能系统寄存器;
0-必须使用内存映射接口,EL3访问任意ICH_*或ICC_*寄存器(除了ICC_SRE_EL1/2/3)都会捕获到EL3;
1-系统寄存器接口到ICH_*寄存器和EL1/2/3的ICC_*寄存器在EL3中使能;
ICC_SRE_EL2:控制EL2下选择系统寄存器接口或内存映射接口作为GIC CPU接口;
bit3 Enable:使能低异常等级对ICC_SRE_EL1的访问;
0-Non-secure EL1对ICC_SRE_EL1的访问会被捕获到EL2
1-Non-secure EL1对ICC_SRE_EL1的访问不会被捕获到EL2
bit2 DIB:禁用IRQ bypass
bit1 DFB:禁用FIQ bypass
bit0 SRE:使能系统寄存器;
0-必须使用内存映射接口,EL2访问任意ICH_*或ICC_*寄存器(除了ICC_SRE_EL1、ICC_SRE_EL2)都会被捕获到EL2;
1-在EL2中使用系统寄存器接口对ICH_*以及EL1/2的ICC_*寄存器访问;
ICC_SRE_EL1:控制EL1下选择系统寄存器接口或内存映射接口作为GIC CPU接口;
bit2 DIB,bit1 DFB;不比赘述;
bit0 SRE:同EL3/2
0-必须使用内存映射接口,从EL1访问任意ICC*系统寄存器(除了ICC_SRE_EL1)都会被捕获到EL1;
1-当前异常状态使用系统寄存器接口;
msr SCR_EL3, xzr // 开机处于EL3,NS位置零,于是访问ICC_SRE_EL1其实处理的是ICC_SRE_EL1的安全域接口;
mov x0, #15
msr ICC_SRE_EL3, x0
isb
即设置EL3不捕获对ICC_SRE_EL1/2的访问;IRQ、FIQ的bypass禁用;使用系统寄存器接口。
msr ICC_SRE_EL1, x0
设置ICC_SRE_EL1的安全域接口
mov x3, #(SCR_EL3_RW | \
SCR_EL3_SMD | \
SCR_EL3_HCE | /*add hce, enable el2*/ \
SCR_EL3_NS)
msr SCR_EL3, x3
isb
在EL3中切换低异常等级到Non-secure域,这样访问ICC_SRE_EL1就是处理其Non-secure域接口,同样,仅有Non-secure接口的ICC_SRE_EL2也可以处理。
mov x0, #15
msr ICC_SRE_EL2, x0
isb
msr ICC_SRE_EL1, x0
EL3/2/1 Secure/Non-secure域的ICC_SRE_ELx都设置完成;
GICv3-4零散的寄存器解读(1)相关推荐
- 电量模块MODBUS RTU寄存器解读
---恢复内容开始--- 最近在写一个关于电量模块的arduino lib,需要了解电量模块的寄存器读写,涉及到硬件底层知识. 先复习一下计算机原理中有关位.字节和字的关系(来自google book ...
- 模块DIY——基于DDS直接数字频率合成技术自制的可编程任意波形发生器模块(DDS原理、寄存器解读、原理图设计、驱动程序-适用于AD9833/AD9834/AD9838)
[系列专栏]:博主结合工作实践输出的,解决实际问题的专栏,朋友们看过来! <QT开发实战> <嵌入式通用开发实战> <从0到1学习嵌入式Linux开发>
- 【转】ARM GIC中断系列(三):gicv3架构基础
GICv3架构是GICv2架构的升级版,增加了很多东西.变化在于以下: 使用属性层次(affinity hierarchies),来对core进行标识,使gic支持更多的core 将cpu inter ...
- GICv3/v4-软件概述
目录内容 2 介绍→主要介绍GIC架构历史 3 GICv3基础→概念理解,尤其是编程模型的理解 4 GIC配置→如何配置GIC的各种寄存器,使其正常工作 5 处理中断→讲解中断的处理流程 6 LPI配 ...
- GICv3软件overview手册之GICv3基本功能(5)
GICv3中断控制器的寄存器接口分为三组: (1)Distributor接口: (2)edistributor接口: (3)CPU接口: Distributor(GICD_*) Distributor ...
- 06-GICv3_v4_overview
目录 1 简介 2 gic的版本号 3 gic模型 4 gic的基础知识 4.1. 中断类型 4.1.1 外设给gic的中断信号 4.2. 中断的状态 4.2.1 点评中断 4.2.2 边沿中断 4. ...
- MSI_MSI-X中断之体验与使用
MSI_MSI-X中断之体验与使用 文章目录 MSI_MSI-X中断之体验与使用 1. 怎么发出MSI/MSI-X中断 1.1 在RK3399上体验 1.1.1 安装工具 1.1.2 查看设备MSI- ...
- 五、c++学习(加餐1:汇编基础学习)
经过前面几节课的学习,我们在一些地方都会使用汇编来分析,我们学习汇编,只是学习一些基础,主要是在我们需要深入分析语法的时候,使用汇编分析,这样会让我们更熟悉c++编译器和语法. 从这节课开始,会持续加 ...
- 从零开始自制一个OS
目录 本文讨论内容 第一节 自制RTOS快速体验 第二节 CM3架构解读 如何实现多线程/多任务 寄存器解读 MSP和PSP寄存器 第三节 任务调度的实现 O ...
最新文章
- 大话设计模式之简单工厂模式
- html 滚动条_数十种自定义多彩多样滚动条样式
- springboot mysql时区设置_java/springboot/mysql时区问题解决方案
- loadrunner解决在项目中的难点解决
- WebService基础学习
- g120xa变频器调试参数_西门子G120XA变频器如何进行快速调试
- NPM 简单实用说明
- 《从零开始学Swift》学习笔记(Day 13)——数据类型之整型和浮点型
- VS C# 获取文件夹下的所有文件
- javascript前端导出Excel简单写法
- 电脑断网情况下,自动连接wifi
- 计算机休眠唤醒原理,电脑休眠和睡眠区别以及怎么唤醒
- 软件测试---UI界面测试点
- processson的文件数量已达到上限如何删除老文件新建新的文件创建流程图
- 大学实验室面试总结(机器学习)
- 【Rust精彩blog】Rust 中几个智能指针的异同与使用场景
- 考研380分什么水平计算机,考研380分属于什么水平 算高分吗
- 业务流程监控的几点建议
- iQQ 学习笔记1 :登录、验证码、收消息
- 一文弄懂区块链技术原理
热门文章
- u大侠pe系统桌面计算机,如何使用U大侠PE系统修复引导文件
- 阿里云ECS最新的实例规格族有哪些
- 脱离文档流和恢复文档流的方法
- PASCAL VOC2012类型的数据集生成train.txt\val.txt等文件
- 三人易行PLC编程培训怎么样?
- TTL与非门多余的输入端处置办法及其优缺点
- Windows.h 常用API函数【转】
- FTP文件传输协议与部署,包括Linux系统、Windows系统和H3C路由交换设备部署
- 关于1Byte 1K 1M 1G(换算)
- 《如师通语言学习软件(罗塞塔石碑)》(Rosetta Stone) v3.4.5 英语/日语/法语/德语/韩语/俄语/西班牙语/意大利语/阿拉伯语/葡萄牙语/汉语 [云端免安装版]