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字段进行匹配;

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

    关注

    4983

    文章

    18295

    浏览量

    288582
  • 驱动
    +关注

    关注

    11

    文章

    1718

    浏览量

    84353
  • Linux
    +关注

    关注

    87

    文章

    10992

    浏览量

    206744
  • 设备
    +关注

    关注

    2

    文章

    4172

    浏览量

    69293
收藏 人收藏

    评论

    相关推荐

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

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

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

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

    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>的物联网的应用方案

    全面解读Linux 中断子系统的驱动

    GIC 驱动 这里主要分析 linux kernel 中 GIC v3 中断控制器的代码(drivers/irqchip/irq-gic-v3.c)。
    的头像 发表于 09-23 09:25 2768次阅读
    全面解读Linux 中断子系统的<b class='flag-5'>驱动</b>

    中断控制器的驱动解析(上)

    这里主要分析 linux kernel 中 GIC v3 中断控制器的代码(drivers/irqchip/irq-gic-v3.c)。设备树先来看下一个中断控制器的设备
    发表于 12-04 16:36 10次下载
    中断控制器的<b class='flag-5'>驱动</b>解析(上)

    扒一扒GIC-600的相关知识

    为了适应大规模的SoC设计,GIC-600被设计成分布式IP。所谓分布式,GIC-600由几种组件构成,每个组件可以跟其它相关模块在物理设计上摆放在一起,并与其拥有共同的电源域
    发表于 02-06 11:36 2168次阅读

    GIC是什么意思 GIC硬件原理

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

    GIC驱动的执行流程是什么

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

    Linux GIC驱动数据结构分析

    数据结构分析 先来张图: GIC驱动中,使用 struct gic_chip_data 结构体来描述GIC控制器的信息,整个
    的头像 发表于 09-28 15:18 322次阅读
    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 296次阅读
    <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 306次阅读
    <b class='flag-5'>gic</b>和ARM Core的连接

    labview怎么添加设备驱动

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