0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

GIC驱动设备信息添加

麦辣鸡腿堡 来源:LoyenWang 作者:LoyenWang 2023-09-28 15:03 次阅读

设备信息添加

ARM平台的设备信息,都是通过Device Tree设备树来添加,设备树信息放置在arch/arm64/boot/dts/下

下图就是一个中断控制器的设备树信息:

图片

compatible字段:用于与具体的驱动来进行匹配,比如图片中arm, gic-400,可以根据这个名字去匹配对应的驱动程序;

interrupt-cells字段:用于指定编码一个中断源所需要的单元个数,这个值为3。比如在外设在设备树中添加中断信号时,通常能看到类似interrupts= 《0 234》;的信息,第一个单元0,表示的是中断类型(1:PPI,0:SPI),第二个单元23表示的是中断号,第三个单元4表示的是中断触发的类型;

reg字段:描述中断控制器的地址信息以及地址范围,比如图片中分别制定了GIC Distributor(GICD)和GIC CPUInterface(GICC)的地址信息;

interrupt-controller字段:表示该设备是一个中断控制器,外设可以连接在该中断控制器上;

关于设备数的各个字段含义,详细可以参考Documentation/devicetree/bindings下的对应信息;

设备树的信息,是怎么添加到系统中的呢?DeviceTree最终会编译成dtb文件,并通过Uboot传递给内核,在内核启动后会将dtb文件解析成device_node结构。关于设备树的相关知识,本文先不展开,后续再找机会补充。来一张图,先简要介绍下关键路径:

图片

设备树的节点信息,最终会变成device_node结构,在内存中维持一个树状结构;

设备与驱动,会根据compatible字段进行匹配;

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 嵌入式
    +关注

    关注

    5068

    文章

    19008

    浏览量

    302986
  • 驱动
    +关注

    关注

    12

    文章

    1824

    浏览量

    85169
  • Linux
    +关注

    关注

    87

    文章

    11219

    浏览量

    208873
  • 设备
    +关注

    关注

    2

    文章

    4469

    浏览量

    70524
收藏 人收藏

    评论

    相关推荐

    linux查看设备信息驱动安装信息 精选资料分享

    lspci是列出所有的硬件信息,包括已经安装了驱动还是没有安装驱动的硬件设备,因为根据pci规范,只要改设备在pci总线上挂着,就可以读到起
    发表于 07-23 07:25

    设备树中GIC中断控制器节点

    文章目录一、回顾二、设备树中GIC中断控制器节点三、外设中断控制器节点三、其他设备使用中断节点1、中断类型四、常用函数1、request_irq()函数(1
    发表于 01-10 07:37

    ARM GIC(二)之中断术语的定义

    同一个中断号。2、寄存器banking对于同一个gic寄存器地址,在不同的情况下,访问的是不同的寄存器。例如在secure和non-secure状态下,访问同一个gic寄存器,其实是访问的不同的gic的寄存器。具体,更多的
    发表于 04-06 10:15

    如何添加NandFlash驱动

    这个文档简单介绍了如何在 H-FLASHER 中添加NAND FLASH 驱动。基于这个文档,用户可以根据 自己的实际需求修改已有的NAND FLASH 驱动程序,或添加新的NAND
    发表于 04-01 10:21 0次下载

    uclinux添加设备驱动的完整过程

    下面以添加一个字符设备为例,说明添加设备驱动的过程.块设备与网络设备可以比照处理. 0.原文件放
    发表于 10-13 15:29 67次下载

    ARM-Linux-IIC设备添加驱动实现

    本文分析了ARM-Linux下IIC总线及其设备驱动的层次结构,指出了IIC设备添加驱动实现的途径,详细阐述了如何采用通用i2c-dev.
    发表于 06-13 14:37 57次下载
    ARM-Linux-IIC<b class='flag-5'>设备</b>的<b class='flag-5'>添加</b>与<b class='flag-5'>驱动</b>实现

    基于GIC的物联网的应用方案

    本文档内容介绍了基于GIC的物联网的应用方案,供参阅。
    发表于 09-18 15:46 0次下载
    基于<b class='flag-5'>GIC</b>的物联网的应用方案

    小电阻器对治理电网GIC的效果分析

    地磁感应电流(geomagnetically induced currents,GIC)引起变压器半波饱和对电力系统的安全运行产生不利影响,甚至引发大面积停电事故。为了有效治理GIC对大规模电力系统
    发表于 01-04 17:03 7次下载
    小电阻器对治理电网<b class='flag-5'>GIC</b>的效果分析

    GIC是什么意思 GIC硬件原理

    GIC硬件原理 ARM公司提供了一个通用的中断控制器 GIC(Generic Interrupt Controller) , GIC 的版本包括 V1 ~ V4 ,由于本人使用的SoC中的中断控制器
    的头像 发表于 09-28 14:58 1846次阅读
    <b class='flag-5'>GIC</b>是什么意思 <b class='flag-5'>GIC</b>硬件原理

    GIC驱动的执行流程是什么

    匹配设备; 在GIC驱动程序中,使用 IRQCHIP_DECLARE 宏来声明结构信息,包括 compatible 字段和回调函数,该宏会将这个结构放置到 __irqchip_of_t
    的头像 发表于 09-28 15:09 498次阅读
    <b class='flag-5'>GIC</b><b class='flag-5'>驱动</b>的执行流程是什么

    Linux GIC驱动数据结构分析

    数据结构分析 先来张图: GIC驱动中,使用 struct gic_chip_data 结构体来描述GIC控制器的信息,整个
    的头像 发表于 09-28 15:18 534次阅读
    Linux <b class='flag-5'>GIC</b><b class='flag-5'>驱动</b>数据结构分析

    ARM-Linux-IIC设备添加驱动实现

    电子发烧友网站提供《ARM-Linux-IIC设备添加驱动实现.pdf》资料免费下载
    发表于 10-24 09:55 0次下载
    ARM-Linux-IIC<b class='flag-5'>设备</b>的<b class='flag-5'>添加</b>与<b class='flag-5'>驱动</b>实现

    GIC-600的组件是如何连接的

    为了适应大规模的SoC设计,GIC-600被设计成分布式IP。 所谓分布式,GIC-600由几种组件构成,每个组件可以跟其它相关模块在物理设计上摆放在一起,并与其拥有共同的电源域;组件之间通过片上网
    的头像 发表于 11-07 17:19 664次阅读
    <b class='flag-5'>GIC</b>-600的组件是如何连接的

    gic和ARM Core的连接

    。用于gic的IRI组件,和cpu interface之间,传输信息。 • ◾distributor,redistributor和ITS,统称为IRI组件(interrupt routing infrastructure)。 • ◾gi
    的头像 发表于 11-07 18:07 589次阅读
    <b class='flag-5'>gic</b>和ARM Core的连接

    labview怎么添加设备驱动

    添加设备驱动是使用LabVIEW进行设备控制和数据采集的关键步骤之一。本文将向您介绍如何在LabVIEW中添加设备驱动程序。 在开始之前,您
    的头像 发表于 01-02 16:10 2183次阅读