免费注册 查看新帖 |

Chinaunix

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

powerpc下linux内核的中断和实际外设中断是如何对应的? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-09-02 00:15 |只看该作者 |倒序浏览
这两天在写inux ppc下的驱动,现在关于中断号有个问题。我用的是amcc 的4xx系列的cpu,其中断由UICB0下级联三个UIC[0,1,2],类似于x86下的8259a级联,

uic0 ------+
              |
uci1-------+ ---->uicb0
              |
uic2-------+
其中每个uic[0,1,2]中各定义了32个中断源,如uic0中定义如下:

Interrupt PolaritySensitivity InterruptSource
0 HighLevel UART0
1 HighLevel UART1
2 HighLevel IIC 0
3 HighLevel IIC 1
4 HighLevelPCI Inbound Message
5 HighLevel PCI Command Write Register
6 HighLevel PCI Power Management
7 HighEdge PCI MSI Level 0
8 HighEdge PCI MSI Level 1
9 HighEdge PCI MSI Level 2
10 HighLevel MAL TX EOB
11 HighLevel MAL RX EOB
12 HighLevel DMA Channel 0
13 HighLevel DMA Channel 1
14 HighLevel DMA Channel 2

每个uci[0,1,2]分别有寄存器控制中断使能、高低电平触发、critical/noncritical中断等。

而uicb0总的中断定义是
.UICB0 Interrupt Assignments
Interrupt PolaritySensitivity InterruptSource
0 HighLevel  UIC0 Critical Interrupt
1 HighLevel UIC0 Non-Critical Interrupt
2 HighLevel UIC1 Critical Interrupt
3 HighLevel UIC1 Non-Critical Interrupt
4 HighLevel UIC2 Critical Interrupt
5 HighLevel UIC2 Non-Critical Interrupt

按照上述定义,若我在powerpc平台下做一个驱动处理uci0中的第7号中断PCI MSI Level0 ,并通过寄存器设置好使能、电平触发、critical等,则当PCI MSI Level0有效时,将触发uicb0的0号中断0 HighLevel  UIC0 Critical Interrupt,并发送给4xx cpu内核。现在问题是,当我写驱动是,在内核中,这应该是第几号中断?(在内核代码中,关于这部分中断处理的定义是在哪几个文件中?我现在还没找到,应该是和x86类似,x86下0-31保留为软件中断,而的8259a中0时钟中断对应到内核中中断0x20,8259a的1号中断键盘对应到内核 0x33)

uic.PNG (43.84 KB, 下载次数: 17)

uic.PNG

论坛徽章:
0
2 [报告]
发表于 2009-09-02 09:17 |只看该作者
我觉得ppc的中断向量表应该与8259不一样吧。

下面是8259的初始化过程
http://www.kerneltravel.net/kern ... %E5%88%B6/3.2.1.htm
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP