irq domain 分析 GICV3
文章目录
- GICV3 irq-domain
- irq domain 的左膀与右臂是怎么创建的
- irq_domain_ops 创建时机
- irq_domain_ops 的实现
- irq_chip 的 绑定时机,在alloc实现中
- irq_chip 的实现
GICV3 irq-domain
irq domain 的左膀与右臂是怎么创建的
- 左膀:irq_chip
- 右臂:irq_domain_ops
irq_domain_ops 创建时机
gic_of_initgic_init_basesgic_data.domain = irq_domain_create_tree(handle, &gic_irq_domain_ops, &gic_data); // 此时创建的__irq_domain_addset_handle_irq(gic_handle_irq);
irq_domain_ops 的实现
1537 static const struct irq_domain_ops gic_irq_domain_ops = {
1538 .translate = gic_irq_domain_translate,
1539 .alloc = gic_irq_domain_alloc,
1540 .free = gic_irq_domain_free,
1541 .select = gic_irq_domain_select,
1542 };
irq_chip 的 绑定时机,在alloc实现中
// irq_data->chip = chip 这个时候绑定的
gic_irq_domain_allocgic_irq_domain_translate// get hwirqirq_domain_set_info irq_domain_set_hwirq_and_chipirq_data->hwirq = hwirq;irq_data->chip = chip ? chip : &no_irq_chip; // gic_chipirq_data->chip_data = chip_data;__irq_set_handlerirq_set_handler_data
irq_chip 的实现
1328 static struct irq_chip gic_chip = {
1329 .name = "GICv3",
1330 .irq_mask = gic_mask_irq,
1331 .irq_unmask = gic_unmask_irq,
1332 .irq_eoi = gic_eoi_irq,
1333 .irq_set_type = gic_set_type,
1334 .irq_set_affinity = gic_set_affinity,
1335 .irq_retrigger = gic_retrigger,
1336 .irq_get_irqchip_state = gic_irq_get_irqchip_state,
1337 .irq_set_irqchip_state = gic_irq_set_irqchip_state,
1338 .irq_nmi_setup = gic_irq_nmi_setup,
1339 .irq_nmi_teardown = gic_irq_nmi_teardown,
1340 .ipi_send_mask = gic_ipi_send_mask,
1341 .flags = IRQCHIP_SET_TYPE_MASKED |
1342 IRQCHIP_SKIP_SET_WAKE |
1343 IRQCHIP_MASK_ON_SUSPEND,
1344 };
irq domain 分析 GICV3相关推荐
- linux IRQ Management(四)- IRQ Domain
了解IRQ Domain(中断控制器) 1.如何理解中断号? 每个IRQ同时有"irq"和"hwirq"两个编号. "hwirq"是硬件 ...
- Linux kernel的中断子系统之(二):IRQ Domain介绍
一.概述 在linux kernel中,我们使用下面两个ID来标识一个来自外设的中断: 1.IRQ number.CPU需要为每一个外设中断编号,我们称之IRQ Number.这个IRQ number ...
- irq domain介绍和代码导读
补充IRQ Domain介绍 在linux kernel中,我们使用下面两个ID来标识一个来自外设的中断: 1.IRQ number.CPU需要为每一个外设中断编号,我们称之IRQ Number.这个 ...
- linux 电源管理源码分析,Linux 3.8.1 电源管理之OMAP Voltage Domain分析
本系列文章将分析Linux对于OMAP的电源管理功能,以AM33XX作为实例(目前的硬件平台先主要关注AM335xStarterKit开发板),在必要时穿插其他相关内容. 在linux-3.8.1/a ...
- 设备树学习(十五、番外篇-中断子系统之IRQ Domain介绍)
之前的文章分析过没使用设备树时,中断是如何初始化的 https://blog.csdn.net/qq_16777851/article/details/82556519 用一句话总结就是,启动过程,通 ...
- kernel power domain分析
power domain 最近工作上接触到了kernel power domain framework,kernel文档对这块的解释不多,网上的参考资料也很少,不过还是得感谢wowo大神几年前的文章, ...
- Linux下的内核线程threaded irq机制分析与应用
⭐Linux发烧友
- GIC/ITS代码分析(2)GICv3驱动初始化
这里我们介绍GICv3驱动的基础框架,后续再介绍GICv4的支持.GICv3驱动在文件drivers/irqchip/irq-gic-v3.c中.同时仅介绍ACPI方式下GICv3驱动. 该驱动由宏I ...
- ARM GICv3 GIC代码分析
前言 在前一篇博文(ARM GICv3中断控制器)中, 介绍了GIC的一些基本概念,本文主要分析了linux kernel中GIC v3中断控制器的代码(drivers/irqchip/irq-gic ...
最新文章
- Win8 Metro(C#)数字图像处理--2.52图像K均值聚类
- 前沿科技山雨欲来,四大领域存创新机会
- javascript高级程序设计之引用类型
- 解决eclipse中java项目导出成jar包后读写UTF-8文件中文乱码问题
- 腐烂国度2巨霸版计算机学知识,《腐烂国度2巨霸版》新手攻略 新手入门玩法技巧大全...
- 又到中元节 应用宝教你如何打败各种鬼
- 浙江省2021年英语高考成绩查询,浙江高考成绩查询、志愿填报时间公布!
- Quartz2D知识点聚合案例
- .rpt文件内容读取java_Java 中读取文件内容的 n 中方式
- linux如何卸载telnet命令,linux安装telnet命令
- jsoup获取图片并下载
- WINCE下ActiveSync连接故障修复办法
- python删除文本框内容_js清除文本框内容
- 详解 JavaScript 的发展史
- Python画四张子图-导入数据
- 计算机专业新生创新思维研究,计算机基础与计算思维探究论文
- springboot框架下利用websocket实现即时通讯
- 程序员必备的11个Github优质项目
- 川土微电子8通道隔离式数字输入接收器
- 【网络安全】如何限制内网网速