ARM GIC(四) gicv3架构基础

这篇具有很好参考价值的文章主要介绍了ARM GIC(四) gicv3架构基础。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

GICv3架构是GICv2架构的升级版,增加了很多东西。变化在于以下:

使用属性层次(affinity hierarchies),来对core进行标识,使gic支持更多的core

将cpu interface独立出来,用户可以将其设计在core内部

增加redistributor组件,用来连接distributor和cpu interface

增加了LPI,使用ITS来解析

对于cpu interface的寄存器,增加系统寄存器访问方式
一、gicv3结构
包含了以下的组件:

distributor:SPI中断的管理,将中断发送给redistributor

redistributor:PPI,SGI,LPI中断的管理,将中断发送给cpu interface

cpu interface:传输中断给core

ITS:用来解析LPI中断

其中,cpu interface是实现在core内部的,distributor,redistributor,ITS是实现在gic内部的。

cpu interface和gic的redistributor通信,通过AXI-Stream协议,来实现通信。

二、中断分组
gicv3,将中断分成了2个大组,group0和group1。

group0:提供给EL3使用

group1:又分为2组,分别给安全中断和非安全中断使用

如下图所示:
ARM GIC(四) gicv3架构基础,gic,arm开发,架构
以下是IRQ,FIQ与组的对应关系。

ARM GIC(四) gicv3架构基础,gic,arm开发,架构
中断生命周期,如下图所示:
ARM GIC(四) gicv3架构基础,gic,arm开发,架构
generate:外设发起一个中断

distribute:distributor对收到的中断源进行仲裁,然后发送给对应的cpu interface

deliver:cpu interface将中断发送给core

activate:core通过读取 GICC_IAR 寄存器,来对中断进行认可

priority drop: core通过写 GICC_EOIR 寄存器,来实现优先级重置

deactivation:core通过写 GICC_DIR 寄存器,来无效该中断

这个中断生命周期,和gicv2的中断生命周期是一样的。文章来源地址https://www.toymoban.com/news/detail-774018.html

到了这里,关于ARM GIC(四) gicv3架构基础的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 基于IMX6ULLmini的Linux裸机开发系列五:通用中断控制器(GIC)

    目录 GIC结构 获取GIC中断控制器基地址 方法一:查询芯片数据手册 方法二:查询cp15协处理器 CBAR寄存器 SCTLR 寄存器 VBAR寄存器 GIC用于管理单核或多核芯片中的中断资源 ARM公司开发了4 个版本GIC规范 ,V1~V4 ARMv7-A内核搭配GIC-400使用 GIC结构 GIC官方手册:ARM® Generic Interrupt Contr

    2024年02月12日
    浏览(28)
  • linux-gic中断分析

    这里主要分析 linux kernel 中 GICv3 中断控制器的代码(drivers/irqchip/irq-gic-v3.c)。 先来看下中断控制器的设备树信息: 1. irq chip driver 的声明 定义 IRQCHIP_DECLARE 之后,相应的内容会保存到 __irqchip_of_table 里边: 这里展开后,会定义一个__of_table_gic_v3结构体,存放在 __irqchip_of_table段里面

    2024年02月07日
    浏览(26)
  • Linux 中断子系统中GIC 中断控制器基本分析

    GIC 是 ARM 公司给 Cortex-A/R 内核提供的一个中断控制器,类似 Cortex-M 内核(STM32)中的 NVIC。 GIC:Generic Interrupt Controller,通用中断控制器。 NVIC:Nested Vectored Interrupt Controller,嵌套中断向量控制器。 目前 GIC 有 4 个版本:V1~V4,V1 是最老的版本,已经被废弃了。V2~V4 目前正在大

    2024年02月07日
    浏览(37)
  • Qemu虚拟arm开发板驱动开发详解(一)——驱动基本架构

            此前在《WSL2下Ubuntu22.04使用Qemu搭建虚拟Vexpress-A9开发板》系列文章中,我们已建立好Linux最小系统的运行环境,并将其成功移植到了由Qemu模拟的arm32开发板上。接下来将介绍如何基于上述环境进行驱动开发。         本节主要带各位读者了解Linux内核驱动的基本架

    2024年02月05日
    浏览(35)
  • ARM开发---基础认识

    本文适合初次接触ARM的的初学者,主要以基础知识点和科普为主. 提起ARM,没有接触过的朋友可能第一反应是英语单词arm(手臂),事实上,ARM确实如同手臂对于人类一般,在我们生活中有着举足轻重的地位,本文会对ARM进行基础知识的讲解及科普,为大家介绍ARM。 学习arm重

    2024年02月04日
    浏览(29)
  • ARM开发基础知识

    概念:寄存器是处理器内部的存储器,没有地址 作用:一般用于暂时存储参与运算的数据和运算结果 分类: 通用寄存器、专用寄存器、 状态 寄存器 注意:有标签(带三角光标)的是独有的寄存器 总结: ARM7,9,11 有37个寄存器 30 个通用寄存器 1 个用作PC( program counter) 1个

    2024年02月02日
    浏览(28)
  • 【理解ARM架构】不同方式点灯 | ARM架构简介 | 常见汇编指令 | C与汇编

    🐱作者:一只大喵咪1201 🐱专栏:《理解ARM架构》 🔥格言: 你只管努力,剩下的交给时间! 在学习C语言的时候,我们会写个 Hello World 程序来入门,当我们写ARM程序,也该有一个简单的程序引领我们入门,这个程序就是点亮LED。 查看原理图,确定控制LED的引脚: 如上图是

    2024年02月05日
    浏览(32)
  • arm和x86架构服务器拉取arm64架构的docker镜像

    dockerhub提供的镜像部分支持arm64架构 Docker arm架构服务器拉取docker镜像,默认是arm架构  查看docker镜像的架构 x86平台拉取arm平台的docker镜像 对docker版本有限制 docker运行其他平台容器,需要使用--platform参数指定容器 docker19.03.9及以上版本才支持--platform参数 查看是否开启experi

    2024年01月20日
    浏览(54)
  • x86架构ubuntu 搭建arm64交叉编译环境及QT编译arm64架构工程

    背景:由于最近项目需要做国产系统适配,很多软件需要重新编译以适配不同架构CPU。 环境: 1、主机win10 64bit   vmware虚拟主机ubuntu1804 64bit 2、vmware虚拟主机已经安装了qt5.14.2及qt_create4.11.1 一、C/C++程序交叉编译 1、交叉编译环境搭建 ①选定编译工具aarch64-linux-gnu ②安装交叉

    2024年02月09日
    浏览(51)
  • ARM架构基本理论(1)

    ARM (Advanced RISC Machine)是一种基于 RISC(Reduced Instruction Set Computing) 架构的计算机处理器架构,由ARM Holdings(ARM公司)开发和授权给其他公司生产和销售。 ARM架构最初是为低功耗、高效能的嵌入式系统设计的,如智能手机、平板电脑、数字电视、路由器、音频设备、控制器

    2024年02月02日
    浏览(30)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包