在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
芯片精品文章合集(500篇!) 创芯人才网--重磅上线啦!
查看: 3893|回复: 1

[求助] 请教PCIE device的中断问题

[复制链接]
发表于 2010-9-23 13:13:48 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
hi, 大家好。

    最近小弟遇到一个问题,请多指教:
        
        将一个device插入到一块Freescale P1020RDB开发板的PCIE slot中,PPC kernel 2.6.32,在该device的kernel module读进kernel的过程中,用request_irq()注册ISR后,就马上提示note_interrupt(), 也就是说,短时间内产生10000个interrupt(__因为kernel看到有ISR注册,所以将该IRQ line给enable了),但该ISR并不认为是该device产生的,因为ISR看到该device的interrupt status register中没有bit被设置(__实际上,该device的interrupt enable registers,从dump出来的结果,也是设置不正常,全0),所以kernel又将该IRQ line给disable掉了。

       于是写了一个测试用的kernel module, 假的ISR,直接返回IRQ_NONE,注册到IRQ line上,也是一调用request_irq()后,就马上出现同样的情况。


       而这个device, PCI core是可以正常访问的,可以看到其出现在:
                         /proc/bus/pci/devices
       中, vendor ID什么的都正确。


       很明显,这些interrupt一定是由该device产生的。

      
       很困惑的地方在于, 为什么? 怎样解决? 请各位大哥给一下思路。


谢谢
发表于 2010-9-29 10:58:12 | 显示全部楼层
检查一下内核是否启动了轮询方式的中断,这种方式一旦启用,内核会以定时器的频率来遍历所有注册的中断程序而不管是否真正有中断发生的。 查看一下启动命令行中是否带有 irqpoll之类的信息?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /1 下一条


小黑屋| 手机版| 关于我们| 联系我们| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2025-1-2 08:09 , Processed in 0.018510 second(s), 11 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表