免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 10588 | 回复: 11

一个中断的panic [复制链接]

论坛徽章:
0
发表于 2010-01-19 18:32 |显示全部楼层
整个系统包括USB suspend 后, 通过信号唤醒系统, 但是到USB resume 的时候出现下面的PANIC是什么原因引起的?? 请帮看看,谢谢!

irq 76: nobody cared (try booting with the "irqpoll" option)
[  126.889007] [<c03d7ee8>] (dump_stack+0x0/0x14) from [<c00a3014>] (__report_bad_irq+0x38/0x94)
[  126.898712] [<c00a2fdc>] (__report_bad_irq+0x0/0x94) from [<c00a31c0>] (note_interrupt+0x150/0x1d8)
[  126.908905]  r5:0000004c r4:c05034c8
[  126.913085] [<c00a3070>] (note_interrupt+0x0/0x1d8) from [<c00a3c88>] (handle_level_irq+0xf8/0x170)
[  126.923309] [<c00a3b90>] (handle_level_irq+0x0/0x170) from [<c003c054>] (__exception_text_start+0x54/0x6c)
[  126.934143]  r7:00000103 r6:cec50000 r5:cec51e80 r4:0000004c
[  126.940826] [<c003c000>] (__exception_text_start+0x0/0x6c) from [<c003ca04>] (__irq_svc+0x44/0xa4)
[  126.950805] Exception stack(0xcec51dd8 to 0xcec51e20)
[  126.956359] 1dc0:                                                       00001000 00000001
[  126.966491] 1de0: cec51e20 00000102 00000000 00000002 cec50000 c0574960 00000000 00000000
[  126.976715] 1e00: 0000000a cec51e54 cec51e58 cec51e20 c00758f8 c00757fc 20000113 ffffffff
[  126.986938]  r5:d8200000 r4:ffffffff
[  126.991119] [<c00757b4>] (__do_softirq+0x0/0xf8) from [<c00758f8>] (irq_exit+0x4c/0xac)
[  127.000244] [<c00758ac>] (irq_exit+0x0/0xac) from [<c003c058>] (__exception_text_start+0x58/0x6c)
[  127.010253] [<c003c000>] (__exception_text_start+0x0/0x6c) from [<c003ca04>] (__irq_svc+0x44/0xa4)
[  127.020263] Exception stack(0xcec51e80 to 0xcec51ec8)
[  127.025817] 1e80: cdbf8e08 00000000 c0512888 c0512a6c 00000000 00000000 00000003 00000000
[  127.036071] 1ea0: c05017f0 00000000 c05017ec cec51ed4 cec51ed8 cec51ec8 c0099cb4 c0099a30
[  127.046173] 1ec0: 60000013 ffffffff                                                      
[  127.056427]  r5:d8200000 r4:ffffffff
[  127.060607] [<c0099a20>] (arch_suspend_enable_irqs+0x0/0x14) from [<c0099cb4>] (suspend_devices_and_enter+0xf0/0x16c)
[  127.072479] [<c0099bc4>] (suspend_devices_and_enter+0x0/0x16c) from [<c0099e6c>] (pm_suspend+0xd0/0x12c)
[  127.083129]  r7:00000000 r6:c05017c8 r5:00000003 r4:c057886c
[  127.089904] [<c0099d9c>] (pm_suspend+0x0/0x12c) from [<c009aa14>] (suspend+0x68/0x12c)
[  127.098815]  r5:c05017c8 r4:00000077
[  127.102996] [<c009a9ac>] (suspend+0x0/0x12c) from [<c0081904>] (run_workqueue+0xe0/0x19c)
[  127.112152]  r6:c009a9ac r5:cec50000 r4:cec01fa0
[  127.117706] [<c0081824>] (run_workqueue+0x0/0x19c) from [<c0082114>] (worker_thread+0x104/0x118)
[  127.127624] [<c0082010>] (worker_thread+0x0/0x118) from [<c0085db8>] (kthread+0x5c/0x98)
[  127.136718]  r7:00000000 r6:cec01fa0 r5:c0082010 r4:cec50000
[  127.143493] [<c0085d5c>] (kthread+0x0/0x98) from [<c00735e0>] (do_exit+0x0/0x784)
[  127.151947]  r7:00000000 r6:00000000 r5:00000000 r4:00000000
[  127.158721] handlers:
[  127.161254] [<c0269210>] (usb_hcd_irq+0x0/0x98)
[  127.166442] Disabling IRQ #76
[  127.297821] Clock usbhost_48m_fck didn't enable in 100000 tries
[  127.304290] Unhandled fault: external abort on non-linefetch (0x1028) at 0xd8064404
[  127.312622] Internal error: : 1028 [#1] PREEMPT
[  127.317504] Modules linked in:
[  127.321136] CPU: 0    Tainted: G        W   (2.6.29-omap1 #1)
[  127.327331] PC is at ohci_omap_resume+0x7c/0x18c
[  127.332427] LR is at release_console_sem+0x1b8/0x218
[  127.337799] pc : [<c027b92c>]    lr : [<c0070758>]    psr: 40000013
[  127.337799] sp : cec51e40  ip : cec51ce8  fp : cec51e5c
[  127.350250] r10: 00000003  r9 : cec51ea0  r8 : c04fa808
[  127.355865] r7 : c04fa830  r6 : cc7e8cd8  r5 : c0512a6c  r4 : cc7e8c00
[  127.362976] r3 : d8064400  r2 : 00000006  r1 : 60000093  r0 : 00000000
[  127.370086] Flags: nZcv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment kernel
[  127.377899] Control: 10c5387d  Table: 8df14019  DAC: 00000017

[[i] 本帖最后由 dreamice 于 2010-1-25 18:08 编辑 [/i]]

论坛徽章:
0
发表于 2010-01-20 09:58 |显示全部楼层
是不是这里的错误?
[  127.161254] [<c0269210>] usb_hcd_irq+0x0/0x9
[  127.166442] Disabling IRQ #76
[  127.297821] Clock usbhost_48m_fck didn't enable in 100000 tries
[  127.304290] Unhandled fault: external abort on non-linefetch (0x102 at 0xd8064404
[  127.312622] Internal error: : 1028 [#1] PREEMPT

论坛徽章:
0
发表于 2010-01-20 11:38 |显示全部楼层
这个内容是因为hid irq 收到无法识别的中断, 导致了DISABLE IRQ 的情况, 但是不知道为什么会导致48M时钟打不开的情况

论坛徽章:
0
发表于 2010-01-20 16:37 |显示全部楼层
[  127.166442] Disabling IRQ #76
[  127.297821] Clock usbhost_48m_fck didn't enable in 100000 tries
[  127.304290] Unhandled fault: external abort on non-linefetch (0x102 at 0xd8064404
[  127.312622] Internal error: : 1028 [#1] PREEMPT

这几句很可疑

论坛徽章:
0
发表于 2010-01-20 17:26 |显示全部楼层
是的, 这个是USB REMOTE WAKEUP 引起的PANIC, 我在SUSPEND 的时候关闭了这个中断,RESUME 的时候打开,采用别的方式唤醒,这个问题可以绕过, 但是还是有其它的PANIC, 关键是PANIC 的LOG 打印不出来,整个控制台的输出都关闭了, 一点信息都查不到。

论坛徽章:
0
发表于 2010-01-22 03:25 |显示全部楼层
原帖由 star316 于 2010-1-20 17:26 发表
是的, 这个是USB REMOTE WAKEUP 引起的PANIC, 我在SUSPEND 的时候关闭了这个中断,RESUME 的时候打开,采用别的方式唤醒,这个问题可以绕过, 但是还是有其它的PANIC, 关键是PANIC 的LOG 打印不出来,整个控 ...


一个疑问,你在suspend的时候,关闭了这个中断,是什么意思?是不是说系统对这个中断不响应了?那在resume的时候,系统如何判断这个中断呢?
这个resume是什么时候调用的?
我也是很疑惑suspend和resume的问题。

论坛徽章:
0
发表于 2010-01-22 09:19 |显示全部楼层
我用的是OMAP 的CPU,外部连接了个PHY ,SUSPEND 时候利用的是一个IODASIY 的方式唤醒系统,然后自己调用涵数唤醒USB 总线,所以可以关闭HCD 的中断

论坛徽章:
5
摩羯座
日期:2014-07-22 09:03:552015元宵节徽章
日期:2015-03-06 15:50:392015亚冠之大阪钢巴
日期:2015-06-12 16:01:352015年中国系统架构师大会
日期:2015-06-29 16:11:2815-16赛季CBA联赛之四川
日期:2018-12-17 14:10:21
发表于 2010-01-22 15:28 |显示全部楼层
[  127.321136] CPU: 0    Tainted: G        W   (2.6.29-omap1 #1)
[  127.327331] PC is at ohci_omap_resume+0x7c/0x18c
[  127.332427] LR is at release_console_sem+0x1b8/0x218
[  127.337799] pc : [<c027b92c>]    lr : [<c0070758>]    psr: 40000013
[  127.337799] sp : cec51e40  ip : cec51ce8  fp : cec51e5c
[  127.350250] r10: 00000003  r9 : cec51ea0  r8 : c04fa808
[  127.355865] r7 : c04fa830  r6 : cc7e8cd8  r5 : c0512a6c  r4 : cc7e8c00
[  127.362976] r3 : d8064400  r2 : 00000006  r1 : 60000093  r0 : 00000000
[  127.370086] Flags: nZcv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment kernel
[  127.377899] Control: 10c5387d  Table: 8df14019  DAC: 00000017
ohci_omap_resume  相对0x7c行
release_console_sem  相对1b8行
两个接口,反汇编一下,然后对应上,然后看看是不是和r0有关系

论坛徽章:
0
发表于 2010-01-22 16:15 |显示全部楼层

回复 #1 star316 的帖子

我用的也是OMAP,我有个3G模块通过USB口和OMAP相连,无法识别该USB设备。具体情况如下:
1 内核中没加入EHCI驱动时,

插入模块后,自动报错,如下:
[MiniBoard]# usb 1-1: reset high speed USB device using musb_hdrc and address 2
usb 1-1.3: new high speed USB device using musb_hdrc and address 6
usb 1-1.3: device not accepting address 6, error -71
usb 1-1.3: new high speed USB device using musb_hdrc and address 7
usb 1-1.3: device not accepting address 7, error -71
usb 1-1.3: new high speed USB device using musb_hdrc and address 8
hub 1-1:1.0: unable to enumerate USB device on port 3

[MiniBoard]# dmesg
usb usb1: usb resume
hub 1-0:1.0: hub_resume
hub 1-0:1.0: port 1: status 0503 change 0004
hub 1-0:1.0: state 7 ports 1 chg 0002 evt 0000
usb 1-1: usb wakeup-resume
usb 1-1: finish resume
usb 1-1: retry with reset-resume
usb 1-1: reset high speed USB device using musb_hdrc and address 2
hub 1-1:1.0: hub_reset_resume
hub 1-1:1.0: enabling power on all ports
hub 1-1:1.0: port 3: status 0101 change 0001
hub 1-0:1.0: resume on port 1, status 0
hub 1-0:1.0: port 1, status 0503, change 0004, 480 Mb/s
hub 1-0:1.0: state 7 ports 1 chg 0000 evt 0002
hub 1-0:1.0: port 1 enable change, status 00000503
hub 1-1:1.0: state 7 ports 4 chg 0008 evt 0000
hub 1-1:1.0: port 3, status 0101, change 0000, 12 Mb/s
usb 1-1.3: new high speed USB device using musb_hdrc and address 6
usb 1-1.3: device not accepting address 6, error -71
usb 1-1.3: new high speed USB device using musb_hdrc and address 7
usb 1-1.3: device not accepting address 7, error -71
usb 1-1.3: new high speed USB device using musb_hdrc and address 8
hub 1-1:1.0: unable to enumerate USB device on port 3
hub 1-1:1.0: state 7 ports 4 chg 0000 evt 0008
hub 1-1:1.0: port 3, status 0100, change 0001, 12 Mb/s
hub 1-1:1.0: debounce: port 3: total 100ms stable 100ms status 0x100
hub 1-1:1.0: hub_suspend
usb 1-1: usb auto-suspend
hub 1-0:1.0: hub_suspend
usb usb1: bus auto-suspend

[MiniBoard]# tail /var/log/messages
Jan 1 00:00:02 $HOSTNAME syslog.info syslogd started: BusyBox v1.12.2
Jan 1 00:08:21 $HOSTNAME syslog.info syslogd exiting
Jan 1 00:08:47 $HOSTNAME syslog.info syslogd started: BusyBox v1.12.2
Jan 1 00:00:01 $HOSTNAME syslog.info syslogd started: BusyBox v1.12.2
Jan 1 00:00:33 $HOSTNAME syslog.info syslogd exiting
Jan 1 00:00:59 $HOSTNAME syslog.info syslogd started: BusyBox v1.12.2
Jan 1 00:19:25 $HOSTNAME syslog.info syslogd exiting
Jan 1 00:19:48 $HOSTNAME syslog.info syslogd started: BusyBox v1.12.2
Jan 1 00:24:40 $HOSTNAME syslog.info syslogd started: BusyBox v1.12.2
Jan 1 00:00:02 $HOSTNAME syslog.info syslogd started: BusyBox v1.12.2



2 加入EHCI驱动后,都不会自动报错,查看dmesg都没有任何可显示的信息。
而且上次通过USB View查看到此设备是full speed,挂在UHCI下。

请问怎么回事??

论坛徽章:
0
发表于 2010-01-25 10:53 |显示全部楼层

回复 #9 angelawushuang 的帖子

如果是FULL SPEED 的设备的话,OMAP 用的是PORT3, 你需要自己做一些寄存器的初始化。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP