免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
123下一页
最近访问板块 发新帖
查看: 51271 | 回复: 27
打印 上一主题 下一主题

[中断] 请教linux3.x 中中断注册中硬件中断号和软件中断号的对应 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2014-06-26 15:36 |只看该作者 |倒序浏览
各位大侠,
在linux3.x 以后版本中引入了设备树,在设备树文件dts中每个外设中有一项标明中断号的条目。但其中的中断号不是硬件中断号,和硬件手册中的硬件中断号不对应。
请教一下这是软件中断号吗?
另外,在中断注册过程中软件中断号如何和硬件中断号对应?因为使用request_irq()函数时输入的是软件中断号,如何将硬件中断号告知内核呢?
使用的处理器是cortex A9系列。

麻烦各位大侠指点。
谢谢先

论坛徽章:
15
射手座
日期:2014-02-26 13:45:082015年迎新春徽章
日期:2015-03-04 09:54:452015年辞旧岁徽章
日期:2015-03-03 16:54:15羊年新春福章
日期:2015-02-26 08:47:552015年亚洲杯之卡塔尔
日期:2015-02-03 08:33:45射手座
日期:2014-12-31 08:36:51水瓶座
日期:2014-06-04 08:33:52天蝎座
日期:2014-05-14 14:30:41天秤座
日期:2014-04-21 08:37:08处女座
日期:2014-04-18 16:57:05戌狗
日期:2014-04-04 12:21:33技术图书徽章
日期:2014-03-25 09:00:29
2 [报告]
发表于 2014-06-26 15:41 |只看该作者
你说的中断向量跟硬中断号的关系吧?你的环境中是32的偏移么?

论坛徽章:
17
水瓶座
日期:2013-08-29 12:09:27白羊座
日期:2014-08-07 12:36:42丑牛
日期:2014-07-24 12:44:41寅虎
日期:2014-04-16 16:15:33寅虎
日期:2014-03-12 09:28:43摩羯座
日期:2014-03-06 13:22:04技术图书徽章
日期:2014-03-06 11:34:50天蝎座
日期:2014-01-09 11:31:44寅虎
日期:2013-12-27 17:01:44双子座
日期:2013-12-27 12:32:29双子座
日期:2013-12-25 09:03:33丑牛
日期:2013-12-24 16:18:44
3 [报告]
发表于 2014-06-26 15:45 |只看该作者
我倒是知道有个 GSI (Global System Interrupt),请教下是不是 interrupt controller把硬件中断映射为 GSI,然后向 CPU发出中断!

而内核中注册中断处理函数使用的应该是 GSI?

论坛徽章:
0
4 [报告]
发表于 2014-06-26 16:06 |只看该作者
humjb_1983 发表于 2014-06-26 15:41
你说的中断向量跟硬中断号的关系吧?你的环境中是32的偏移么?


谢谢先。
是中断向量和硬件中断号的对应关系。通常在request_irq中注册时,参数irq 不是硬件中断号,记得以前看资料是说是软件中断号,软硬件中断号有个对应关系,可以由内核函数进行转换。此处说的软中断号通常在内核中用作中断描述符表irq_desc的数组下标。
另外,您提到的32偏移是指什么?

论坛徽章:
0
5 [报告]
发表于 2014-06-26 16:08 |只看该作者
asuka2001 发表于 2014-06-26 15:45
我倒是知道有个 GSI (Global System Interrupt),请教下是不是 interrupt controller把硬件中断映射为 GSI, ...


您好,
在调用函数request_irq注册中断时,参数irq (之前看到资料叫它软件中断号),在内核中通常用作中断描述表irq_desc 的数组下标。
我倒是没有听说GSI。
谢谢

论坛徽章:
15
射手座
日期:2014-02-26 13:45:082015年迎新春徽章
日期:2015-03-04 09:54:452015年辞旧岁徽章
日期:2015-03-03 16:54:15羊年新春福章
日期:2015-02-26 08:47:552015年亚洲杯之卡塔尔
日期:2015-02-03 08:33:45射手座
日期:2014-12-31 08:36:51水瓶座
日期:2014-06-04 08:33:52天蝎座
日期:2014-05-14 14:30:41天秤座
日期:2014-04-21 08:37:08处女座
日期:2014-04-18 16:57:05戌狗
日期:2014-04-04 12:21:33技术图书徽章
日期:2014-03-25 09:00:29
6 [报告]
发表于 2014-06-26 16:13 |只看该作者
harvey_perfect 发表于 2014-06-26 16:06
谢谢先。
是中断向量和硬件中断号的对应关系。通常在request_irq中注册时,参数irq 不是硬件中断号,记 ...

通常情况,中断向量号跟硬件中断号的关系就是一个32的偏移。
即0号硬件中断对应的中断向量就是就是32,0-31中断向量保留给nmi和异常用。

论坛徽章:
17
水瓶座
日期:2013-08-29 12:09:27白羊座
日期:2014-08-07 12:36:42丑牛
日期:2014-07-24 12:44:41寅虎
日期:2014-04-16 16:15:33寅虎
日期:2014-03-12 09:28:43摩羯座
日期:2014-03-06 13:22:04技术图书徽章
日期:2014-03-06 11:34:50天蝎座
日期:2014-01-09 11:31:44寅虎
日期:2013-12-27 17:01:44双子座
日期:2013-12-27 12:32:29双子座
日期:2013-12-25 09:03:33丑牛
日期:2013-12-24 16:18:44
7 [报告]
发表于 2014-06-26 16:23 |只看该作者
回复 5# harvey_perfect

我的个人理解是中断控制器发给 CPU的向量号,比如多个中断控制器的情况下,就需要做一下统一,估计这个就是 GSI的由来!

论坛徽章:
0
8 [报告]
发表于 2014-06-26 16:33 |只看该作者
humjb_1983 发表于 2014-06-26 16:13
通常情况,中断向量号跟硬件中断号的关系就是一个32的偏移。
即0号硬件中断对应的中断向量就是就是32,0 ...


linux启动后,通过cat /proc/interrupt 看,软件中断号比硬件中断号大496.
另外,在dts中输入的中断号,好像没有体现到,不知是如何使用dts中的中断号的?

论坛徽章:
0
9 [报告]
发表于 2014-06-26 16:34 |只看该作者
asuka2001 发表于 2014-06-26 16:23
回复 5# harvey_perfect

我的个人理解是中断控制器发给 CPU的向量号,比如多个中断控制器的情况下,就需 ...


收到,谢谢

论坛徽章:
1
2015年迎新春徽章
日期:2015-03-04 09:58:11
10 [报告]
发表于 2014-06-26 16:59 |只看该作者
本帖最后由 arm-linux-gcc 于 2014-06-29 12:05 编辑

soc手册上的中断号,可能与a9核中的中断号不是同一个
a9核中的0-15是ipi(inter-processer interrupt,在arm手册中也叫做SGI),16-31是ppi(private peripheral interrupt),32及其以上的是spi(shared peripheral interrupt)

最终写到中断控制器(gic)里的中断号,是a9上的ID号
0-15号不是外设中断,你要查看你的soc手册上的中断号是从0开始的还是从16开始的

dts中要求ppi和spi都从0开始,因为irq-gic.c中的gic_irq_domain_xlate会根据type来加16(GIC_PPI)或32(GIC_SPI),加了16或32之后的数字就是对应于cortex-a9上的物理ID号
例如:interrupts = <0 43 4>;,第一个数字表示类型(GIC_PPI或GIC_SPI),第二个是中断号(这个中断号并不是物理中断号),第三个表示触发方式


写中断控制器的寄存器,在函数gic_unmask_irq中有例子


连接到最顶层gic的外设的那些中断,调用request_irq时的中断号就是物理中断号,因为gic_init_bases里面调用irq_create_mapping时的from是16,所以是跳过了ipi的

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP