USB2.0 Host Debug SOP¶
REVISION HISTORY¶
| Revision No. | Description |
Date |
|---|---|---|
| 1.0 | 03/04/2024 |
USB2.0 Host问题处理流程¶

说明:该文档中出现的需要跟的code ,如有需要,可以联系FAE获取
Host识别问题¶
| 现象分类 | 问题描述 | Debug方法和思路 |
|---|---|---|
| 硬件电路导致无法识别 | usb host插上device没有反应 | 1.可以通过接鼠标看是否亮灯,检查vbus是否正常供电,供电电压是否满足5v 2.检查看ehci driver(ehci-hcd.ko)是否加载正常 3.有些chip的P0口是host和device共用的,检查是否同时加载了udc-msb250.ko,导致host无法正常工作 4.在linux 5.10以后的版本,除了ehci driver之外,还需要检查phy-sstar-u2phy.ko(Souffle之后chip已经更名为usb2-phy.ko)是否正常加载 |
| 握手协商失败 | high speed识别成full speed情况 | 1.确认otp trim是否正常设置 2.联系FAE,确认chirpk level调整相关 3.如果以上都不行,再找CAE帮忙量握手协商波形,并且和正常波形对比 |
| 获取不到描述符 | 获取描述符超时,log显示:device descriptor read/64, error -110 | 1.握手已经成功,但是无法获取描述符,考虑是device的兼容问题,可以检查是否与device上电之前就接上有关系,上电之后再接上是否有问题 2.联系FAE,reset之后加延时,看看device能否识别 3.如果还是不行,请找CAE抓取异常波形与正常情况分析对比 |
| 握手失败,获取不到描述符 | log显示:device descriptor read/64, error -71,握手看到是full speed | 1.这种考虑是握手信号问题,示波器用D+上拉触发抓波形,通常是chirp k信号问题 2.联系FAE,测试看看是否解决问题 3.如果没有解决问题,请用catc抓取握手枚举过程,或者抓握手波形 |
热插拔问题¶
| 现象分类 | 问题描述 | Debug方法和思路 |
|---|---|---|
| 插拔导致panic(见示例1) | 插拔device或者device有断开导致出现panic问题 | 1.考虑是插拔断开时,host的qh访问指针没有回到head,导致再插上产生访问异常地址,从而panic,联系FAE 2.如果不是该问题,请确认是否有reset mac和phy,联系FAE 3.如果都不是以上问题,请用catc抓包分析插拔过程 |
| 插拔是否导致死锁、XIU timeout或者panic(见示例2) | 插拔是否导致死锁、XIU timeout或者panic | 1.确认插拔的时候是否reset phy 2.如果有reset phy,可能是reset phy导致mac的clock被关闭,导致出现XIU timeout或者panic,可以加上这两笔测试:联系FAE |
| 插拔导致无法识别到(见示例3) | 插拔导致刷log或者出现无法正常识别的情况 | 1.考虑这种情况需要reset mac和phy,联系FAE 2.需要RD或FAE分析,P0口请dump bank 1421-1424寄存器,P1口dump bank 1429-1432寄存器 |
| 压力测试device上下电,概率出现无法识别 | device无法识别,且log出现:disabled by hub (EMI?), re-enabling... | 1.考虑这种情况需要reset mac和phy,联系FAE 2.如果不行,请CAE协助抓波形分析 3.需要RD或FAE分析,P0口请dump bank 1421-1424寄存器,P1口dump bank 1429-1432寄存器 |
示例1:插拔导致panic出现MDrv_MIU_Protect_interrupt
[16:20:12]PC is at MDrv_MIU_Protect_interrupt+0x2e/0x50
[16:20:12]LR is at HAL_MIU_GetHitProtectInfo+0x2b1/0x2e2
[16:20:12]pc : [<c0386e66>] lr : [<c0384c17>] psr: 600c01b3
[16:20:12]sp : c0e1fb00 ip : 00000000 fp : c0625483
[16:20:12]r10: c088d811 r9 : 00000028 r8 : 00000000
[16:20:12]r7 : c0e1fb50 r6 : c0bc9800 r5 : c0bc9800 r4 : 00000000
[16:20:12]r3 : 00000001 r2 : 00000000 r1 : 00000000 r0 : 00000001
[16:20:12]Flags: nZCv IRQs off FIQs on Mode SVC_32 ISA Thumb Segment user
[16:20:12]Control: 70c5383d Table: 01af7700 DAC: 55555555
[16:20:12]Process kworker/0:1 (pid: 37, stack limit = 0x1198d270)
[16:20:12]Stack: (0xc0e1fb00 to 0xc0e20000)
[16:20:12]fb00: 200b0001 00000000 ffffffe0 00000000 c2828a40 e9c86683 c1197440 c00426e3
[16:20:12]fb20: c0bc9800 c0e1fb50 00010101 c0bc9800 c0bc9800 c0bc986c c0bc986c c0828d40
[16:20:12]fb40: c0e1e000 c06514bb 00000000 c0042771 00000000 e9c86683 00010101 c0bc9800
[16:20:12]fb60: c0880f34 c00427cf c0bc9800 c0880f34 c0bc9818 c00453b3 c004534f 00000000
[16:20:12]fb80: c0bc9800 c0e1fc80 00000001 c00422fb c0e1fbb0 00000071 200c0133 ffffffff
[16:20:12]fba0: c0e1fbe4 c02786c9 c00095aa c0008e53 00000000 c06514bb c08223ac 2f762000
[16:20:12]fbc0: c0e1e000 c0a29600 00000280 c0e1fc00 c0828d40 c0e1e000 c06514bb 00000000
[16:20:12]fbe0: 00000000 c0e1fc00 c00095a1 c00095aa 200c0133 ffffffff c0828d40 bf000000
[16:20:12]fc00: eff8eb00 c06286c6 76c9e700 0420c060 0000000a 0000005a 00002297 c08223ac
[16:20:12]fc20: 00000001 0000005a 00000001 00000000 c0a29600 00000000 00000001 00000000
[16:20:12]fc40: c0e1e000 c114ab5c 00000000 c001c41b 0000001b c001c59f 0000001b c00422ff
[16:20:12]fc60: c0e1fc80 0000001b 000c0033 ffffffff c0e1fcb4 c02786c9 c04725b4 c0008e53
[16:20:12]fc80: c114ab5c 400c0013 00000000 00000000 400c0013 c114a800 c2cf3180 c114aa98
[16:20:12]fca0: 00000000 400c0013 c114ab5c 00000000 c2d55000 c0e1fcd0 c04725b1 c04725b4
[16:20:12]fcc0: 000c0033 ffffffff c04725b4 00000000 c2d2d000 c0333ac3 c1dc9860 00000000
[16:20:12]fce0: c068b417 00000040 c404d900 00000000 02cbd200 00000000 00000002 00000c00
[16:20:12]fd00: c114b000 00000080 c114a800 c031f241 c404d7c0 c404d340 00000040 c2d2d000
[16:20:12]fd20: 00000000 e9c86683 00000000 c2d2d00c c2d2d000 c114a800 00000000 00000c00
[16:20:12]fd40: c114b000 00000080 c114a800 c032040d 000f0013 c004092b c0e1fe14 00000006
[16:20:12]fd60: c0e1fd94 c1dc9878 c067611e 00000000 00000006 c065ca59 c0e1fe14 00000000
[16:20:12]fd80: c114a800 c046a789 c0e1fe14 800f0013 00000001 00627375 00000000 00000000
[16:20:12]fda0: 00000000 6273752b 312d333a 00000000 00000000 00000000 00000000 00000000
[16:20:12]fdc0: 00000001 e9c86683 00000000 00000000 c2d2d000 c0e1fe30 00001388 c0e1fdf4
[16:20:12]fde0: c2cbd200 00000080 c114a800 c0321a83 00000c00 00000000 00000000 dead4ead
[16:20:12]fe00: ffffffff ffffffff c0e1fe08 c0e1fe08 c1dc9800 e9c86683 c2cbd300 80000080
[16:20:12]fe20: c1dc9800 00000006 00000040 c0321b59 c1dc9800 e9c86683 c1dc9800 c2cbd200
[16:20:12]fe40: c0bea800 00000001 c114b000 00000002 00000009 c031c5bf 00000100 00000000
[16:20:12]fe60: c2cbd200 00000040 00001388 fffffc18 00000081 0000003c 00000001 c0678860
[16:20:12]fe80: 00000000 00000003 00000001 00000001 c0bea800 c1dc9800 c0beac00 c114b000
[16:20:12]fea0: c0beaea8 c114a858 c0bea9c8 c031e2a7 c114b1b8 60070093 00000000 c114a800
[16:20:12]fec0: c114b000 00000000 c114a820 c0bea8e9 c0bea420 c0bea400 c114b0e0 c0beaea8
[16:20:12]fee0: c0beaea8 00000064 c0beac08 00000009 00020001 fffffff0 00000002 eff8f300
[16:20:12]ff00: 00000000 00000000 c114b19c c00393d3 00000000 e9c86683 00000000 c0a6ee00
[16:20:12]ff20: c0bea9c8 eff8ad80 eff8fd00 00000000 00000000 c0bea9cc c088ed74 c002762f
[16:20:12]ff40: c0a6ee00 c0bea9c8 c0a6ee00 c0a6ee14 eff8ad80 c0e1e000 eff8ada4 c0830900
[16:20:12]ff60: c0aa5eb8 c002781f 00000000 c0a71280 c0e1e000 c00276b5 c0a6ee00 c0a712b0
[16:20:12]ff80: c0bd3400 c0aa5eb8 00000000 c002adcd c0bd3400 c002ace5 00000000 00000000
[16:20:12]ffa0: 00000000 00000000 00000000 c0008491 00000000 00000000 00000000 00000000
[16:20:12]ffc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[16:20:12]ffe0: 00000000 00000000 00000000 00000000 00000013 00000000 00000000 00000000
[16:20:12][<c0386e66>] (MDrv_MIU_Protect_interrupt) from [<c00426e3>] (__handle_irq_event_percpu+0x2d/0xa2)
[16:20:12][<c00426e3>] (__handle_irq_event_percpu) from [<c0042771>] (handle_irq_event_percpu+0x19/0x50)
[16:20:12][<c0042771>] (handle_irq_event_percpu) from [<c00427cf>] (handle_irq_event+0x27/0x3c)
[16:20:12][<c00427cf>] (handle_irq_event) from [<c00453b3>] (handle_fasteoi_irq+0x65/0xa8)
[16:20:12][<c00453b3>] (handle_fasteoi_irq) from [<c00422fb>] (__handle_domain_irq+0x6b/0x7c)
[16:20:12][<c00422fb>] (__handle_domain_irq) from [<c02786c9>] (gic_handle_irq+0x2d/0x74)
[16:20:12][<c02786c9>] (gic_handle_irq) from [<c0008e53>] (__irq_svc+0x53/0x94)
[16:20:12]Exception stack(0xc0e1fbb0 to 0xc0e1fbf8)
[16:20:12]fba0: 00000000 c06514bb c08223ac 2f762000
[16:20:12]fbc0: c0e1e000 c0a29600 00000280 c0e1fc00 c0828d40 c0e1e000 c06514bb 00000000
[16:20:12]fbe0: 00000000 c0e1fc00 c00095a1 c00095aa 200c0133 ffffffff
[16:20:12][<c0008e53>] (__irq_svc) from [<c00095aa>] (__do_softirq+0x6a/0x1d0)
[16:20:12][<c00095aa>] (__do_softirq) from [<c001c41b>] (__irq_exit_rcu+0x3b/0x78)
[16:20:12][<c001c41b>] (__irq_exit_rcu) from [<c001c59f>] (irq_exit+0x7/0xe)
[16:20:12][<c001c59f>] (irq_exit) from [<c00422ff>] (__handle_domain_irq+0x6f/0x7c)
[16:20:12][<c00422ff>] (__handle_domain_irq) from [<c02786c9>] (gic_handle_irq+0x2d/0x74)
[16:20:12][<c02786c9>] (gic_handle_irq) from [<c0008e53>] (__irq_svc+0x53/0x94)
[16:20:12]Exception stack(0xc0e1fc80 to 0xc0e1fcc8)
[16:20:12]fc80: c114ab5c 400c0013 00000000 00000000 400c0013 c114a800 c2cf3180 c114aa98
[16:20:12]fca0: 00000000 400c0013 c114ab5c 00000000 c2d55000 c0e1fcd0 c04725b1 c04725b4
[16:20:12]fcc0: 000c0033 ffffffff
[16:20:12][<c0008e53>] (__irq_svc) from [<c04725b4>] (_raw_spin_unlock_irqrestore+0xc/0x30)
[16:20:12][<c04725b4>] (_raw_spin_unlock_irqrestore) from [<c0333ac3>] (ehci_urb_enqueue+0xfb/0x5ac)
[16:20:12][<c0333ac3>] (ehci_urb_enqueue) from [<c032040d>] (usb_hcd_submit_urb+0x47d/0x504)
[16:20:12][<c032040d>] (usb_hcd_submit_urb) from [<c0321a83>] (usb_start_wait_urb+0x39/0x9a)
[16:20:12][<c0321a83>] (usb_start_wait_urb) from [<c0321b59>] (usb_control_msg+0x75/0xc0)
[16:20:12][<c0321b59>] (usb_control_msg) from [<c031c5bf>] (hub_port_init+0x229/0x71a)
[16:20:12][<c031c5bf>] (hub_port_init) from [<c031e2a7>] (hub_event+0x72f/0xaf0)
[16:20:12][<c031e2a7>] (hub_event) from [<c002762f>] (process_one_work+0xfb/0x164)
[16:20:12][<c002762f>] (process_one_work) from [<c002781f>] (worker_thread+0x16b/0x1e0)
[16:20:12][<c002781f>] (worker_thread) from [<c002adcd>] (kthread+0xe9/0xf4)
[16:20:12][<c002adcd>] (kthread) from [<c0008491>] (ret_from_fork+0x11/0x20)
[16:20:12]Exception stack(0xc0e1ffb0 to 0xc0e1fff8)
[16:20:12]ffa0: 00000000 00000000 00000000 00000000
[16:20:12]ffc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[16:20:12]ffe0: 00000000 00000000 00000000 00000000 00000013 00000000
[16:20:12]Code: b11b f89d 3000 b103 (de02) 4b05
[16:20:12]---[ end trace e1b67ee0f0461637 ]---
示例2:Maruko 4G模块断开出现XIU timeout
phy phy-soc:sstar-usb2-phy.0: high-speed disconnect
Unhandled prefetch abort: external abort on non-linefetch (0x008) at 0xc0033daa
Internal error: : 8 [#1] PREEMPT THUMB2
Modules linked in: motorDrv(O) drv_ms_cus_sc4336p_MIPI(PO) option usb_wwan usbserial cdc_ether usbnet kdrv_sdmmc mmc_block mmc_core mult_len_driver(O) pdc(O) prc(O) binder(O) usb_storage sd_mod scsi_mod phy_sstar_u2phy ehci_hcd usbcore usb_common cfg80211 firmware_class mi_venc(PO) mi_scl(PO) mi_vcodec(PO) mi_ipu(PO) mi_ldc(PO) mi_isp(PO) mi_ao(PO) mi_ai(PO) mi_aio(PO) mi_rgn(PO) mi_sensor(PO) mi_vif(PO) mi_sys(PO) mi_common(PO) security(O) logV2(O) dgs(O) osa(O)
CPU: 0 PID: 1713 Comm: kworker/0:0 Tainted: P O 5.10.61 #9
Hardware name: SStar Soc (Flattened Device Tree)
Workqueue: usb_hub_wq hub_event [usbcore]
PC is at prb_reserve+0xa6/0x230
LR is at 0xc0a0bbe0
pc : [<c0033daa>] lr : [<c0a0bbe0>] psr: 200001b3
sp : c0a0bbc0 ip : 00000000 fp : c0457220
r10: 00000472 r9 : c0a0bc28 r8 : c0a0bc1c
r7 : 00000001 r6 : 00000073 r5 : 00000473 r4 : c045720c
r3 : 00000073 r2 : c0a0bbd4 r1 : 00009b08 r0 : 00000003
Flags: nzCv IRQs off FIQs on Mode SVC_32 ISA Thumb Segment none
Control: 50c5383d Table: 21db0059 DAC: 00000051
Process kworker/0:0 (pid: 1713, stack limit = 0x3456e022)
Stack: (0xc0a0bbc0 to 0xc0a0c000)
bbc0: 00000000 00000000 000003e0 00000015 00000000 c0000073 00009ab4 00009b08
bbe0: c0498c18 00000012 00000012 00000000 00000002 00000001 c04991ba c0457140
bc00: 80000000 c0032adb 00000000 00000000 00000000 00000000 00000000 00000000
bc20: 00000000 00000012 00000000 20000193 00000000 00000000 00000000 ffffffff
bc40: 00000000 00000000 00000000 00000000 c036e1c4 20000193 bfb6cae4 c0032d5f
bc60: c0a0bcb4 ffffffff 00000000 c0442cc4 00000008 fd284820 c0a0bce8 c15e5b24
bc80: c0a0a000 00000009 bfb6cae4 c0032e4f c0a0bcb4 c0a0bcb4 00000000 c02b99c1
bca0: c036e1c4 c0a0bcb4 c0a0bce8 c0011517 c036e1c4 00000008 c0a0bce8 c00111b9
bcc0: 00000000 00000000 00000000 00000000 00000000 bfb677ca a00001b3 ffffffff
bce0: c0a0bd1c c0008c53 fd284800 fd284820 00010001 fd284820 c15e5a60 00000000
bd00: c308bc2a 00001fce c15e5b24 c15e5a60 00000009 bfb6cae4 00000000 c0a0bd38
bd20: bfb6916b bfb677ca a00001b3 ffffffff 00000051 bf000000 c15e5a60 bfb6920f
bd40: bfb691df c15e5ad0 20000193 bfb67553 c15e5ad0 00001100 00010000 c0476110
bd60: 00000000 c15e5ad0 00000000 c04760c0 c04760c0 c04760c0 c04961b7 c004146b
bd80: c308afcc 00001fce 00000000 c0476124 00000193 c308afcc 00001fce bfb674d1
bda0: 00000193 c04760c0 00000193 c308afcc 00001fce ffffffff 7fffffff 00000003
bdc0: c04760c0 c004185f c0a0be7c 00000006 c308afcc 00001fce c0390194 c7d24800
bde0: c7d2a540 c047f3d4 c047f6e4 00000014 c0a0a000 00000000 c16f89c0 c01ce9d9
be00: c01ce9bb c0036cf5 00000014 c7d24800 c047f3d4 00000000 c16f8c00 c003448b
be20: c0a0be40 0000001b 80000133 ffffffff c0a0be74 c015c1b5 c014cbf0 c0008ce5
be40: c0a0be94 00000030 feb20400 00000a4b 0000176f dee71d65 00000000 c16f8000
be60: c16f8c00 00000003 00000000 c16f89c0 00000000 c0a0be90 c0010869 c014cbf0
be80: 80000133 ffffffff 00000051 00000000 0000176f dee727b0 feb20400 c1727800
bea0: c14dac00 bfb75235 c043e248 c1727800 c16f8800 bfb75873 00000001 bfb3ee73
bec0: 00000001 00000001 c34a6230 c16f8c00 c15e5800 c16f8000 00000000 c16f88dd
bee0: c16f8420 c16f8de0 c16f80e0 c16f8de0 00000000 c02c10a5 00000000 00009cf9
bf00: 00000003 00000002 c1dae000 c002774f 00000000 c1446300 c0456740 c1ed5600
bf20: c0455a68 c16f89c0 c0b40900 00000000 00000000 c16f89c4 c04979d8 c00236c5
bf40: c1ed5600 c16f89c0 c1ed5600 c1ed5614 c0455a68 c0a0a000 c0455a8c c0474f50
bf60: c1ed58b0 c0023a73 00000000 c1ed5880 c09c1740 c0a0a000 c0023909 c1ed5600
bf80: c3467ec0 c1ed58b0 00000000 c0026e95 c09c1740 c0026db7 00000000 00000000
bfa0: 00000000 00000000 00000000 c0008301 00000000 00000000 00000000 00000000
bfc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
bfe0: 00000000 00000000 00000000 00000000 00000013 00000000 00000000 00000000
[<c0033daa>] (prb_reserve) from [<c0032adb>] (vprintk_store+0x123/0x1d0)
[<c0032adb>] (vprintk_store) from [<c0032d5f>] (vprintk_emit+0x4f/0x12c)
[<c0032d5f>] (vprintk_emit) from [<c0032e4f>] (vprintk_default+0x13/0x18)
[<c0032e4f>] (vprintk_default) from [<c02b99c1>] (printk+0x11/0x1a)
[<c02b99c1>] (printk) from [<c0011517>] (do_DataAbort+0x2f/0x80)
[<c0011517>] (do_DataAbort) from [<c0008c53>] (__dabt_svc+0x53/0x80)
Exception stack(0xc0a0bce8 to 0xc0a0bd30)
bce0: fd284800 fd284820 00010001 fd284820 c15e5a60 00000000
bd00: c308bc2a 00001fce c15e5b24 c15e5a60 00000009 bfb6cae4 00000000 c0a0bd38
bd20: bfb6916b bfb677ca a00001b3 ffffffff
[<c0008c53>] (__dabt_svc) from [<bfb677ca>] (ehci_hrtimer_func+0x2fa/0x38c [ehci_hcd])
[<bfb677ca>] (ehci_hrtimer_func [ehci_hcd]) from [<bfb6916b>] (end_unlink_async+0x19d/0x210 [ehci_hcd])
[<bfb6916b>] (end_unlink_async [ehci_hcd]) from [<bfb6920f>] (unlink_empty_async+0x31/0x9e [ehci_hcd])
[<bfb6920f>] (unlink_empty_async [ehci_hcd]) from [<bfb67553>] (ehci_hrtimer_func+0x83/0x38c [ehci_hcd])
[<bfb67553>] (ehci_hrtimer_func [ehci_hcd]) from [<c004146b>] (__hrtimer_run_queues.constprop.0+0x9d/0x122)
[<c004146b>] (__hrtimer_run_queues.constprop.0) from [<c004185f>] (hrtimer_interrupt+0x73/0x150)
[<c004185f>] (hrtimer_interrupt) from [<c01ce9d9>] (arch_timer_handler_virt+0x1f/0x22)
[<c01ce9d9>] (arch_timer_handler_virt) from [<c0036cf5>] (handle_percpu_devid_irq+0x25/0x78)
[<c0036cf5>] (handle_percpu_devid_irq) from [<c003448b>] (__handle_domain_irq+0x4b/0x64)
[<c003448b>] (__handle_domain_irq) from [<c015c1b5>] (gic_handle_irq+0x2d/0x74)
[<c015c1b5>] (gic_handle_irq) from [<c0008ce5>] (__irq_svc+0x65/0xac)
Exception stack(0xc0a0be40 to 0xc0a0be88)
be40: c0a0be94 00000030 feb20400 00000a4b 0000176f dee71d65 00000000 c16f8000
be60: c16f8c00 00000003 00000000 c16f89c0 00000000 c0a0be90 c0010869 c014cbf0
be80: 80000133 ffffffff
[<c0008ce5>] (__irq_svc) from [<c014cbf0>] (__timer_delay+0x10/0x2c)
[<c014cbf0>] (__timer_delay) from [<bfb75235>] (sstar_u2phy_utmi_reset+0x2b/0x62 [phy_sstar_u2phy])
[<bfb75235>] (sstar_u2phy_utmi_reset [phy_sstar_u2phy]) from [<bfb75873>] (sstar_u2phy_on_disconnect+0x1f/0x34 [phy_sstar_u2phy])
[<bfb75873>] (sstar_u2phy_on_disconnect [phy_sstar_u2phy]) from [<bfb3ee73>] (hub_event+0x375/0xa06 [usbcore])
[<bfb3ee73>] (hub_event [usbcore]) from [<c00236c5>] (process_one_work+0xd5/0x140)
[<c00236c5>] (process_one_work) from [<c0023a73>] (worker_thread+0x16b/0x1dc)
[<c0023a73>] (worker_thread) from [<c0026e95>] (kthread+0xdf/0xea)
[<c0026e95>] (kthread) from [<c0008301>] (ret_from_fork+0x11/0x30)
Exception stack(0xc0a0bfb0 to 0xc0a0bff8)
bfa0: 00000000 00000000 00000000 00000000
bfc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
bfe0: 00000000 00000000 00000000 00000000 00000013 00000000
Code: f000 8085 4682 e7c2 (2802) d1db
---[ end trace fd1588696b2c0442 ]---
Kernel panic - not syncing: Fatal exception in interrupt
示例3:插拔device测试拔出时出现刷log现象
[2022/11/1 11:04:29] <6>phy phy-soc:sstar-usb2-phy.0: Init UTMI disconnect level setting
[2022/11/1 11:04:30] <6>usb usb1-port1: status 0201, change 0000, 1.5 Mb/s
[2022/11/1 11:04:30] <6>usb 1-1: new low-speed USB device number 66 using Sstar-ehci
[2022/11/1 11:04:30] <6>usb 1-1: New USB device found, idVendor=1c4f, idProduct=0034, bcdDevice= 1.10
[2022/11/1 11:04:30] <6>usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[2022/11/1 11:04:30] <6>usb 1-1: Product: Usb Mouse
[2022/11/1 11:04:30] <6>usb 1-1: Manufacturer: SIGMACHIP
[2022/11/1 11:04:30] <6>input: SIGMACHIP Usb Mouse as /devices/soc0/soc/1f284800.Sstar-ehci-1/usb1/1-1/1-1:1.0/0003:1C4F:0034.010A/input/input265
[2022/11/1 11:04:30] <6>hid-generic 0003:1C4F:0034.010A: input: USB HID v1.10 Mouse [SIGMACHIP Usb Mouse] on usb-sstar-1/input0
[2022/11/1 11:04:30] <6>phy phy-soc:sstar-usb2-phy.0: low-speed connect
[2022/11/1 11:04:44] <6>usb usb1-port1: status 0000, change 0003, 12 Mb/s
[2022/11/1 11:04:44] <6>usb 1-1: USB disconnect, device number 66
[2022/11/1 11:04:44] <6>phy phy-soc:sstar-usb2-phy.0: high-speed disconnect
[2022/11/1 11:04:44] <6>phy phy-soc:sstar-usb2-phy.0: sstar_u2phy_utmi_reset
[2022/11/1 11:04:44] <6>phy phy-soc:sstar-usb2-phy.0: sstar_u2phy_utmi_power_off
[2022/11/1 11:04:44] <6>phy phy-soc:sstar-usb2-phy.0: sstar_u2phy_utmi_power_on
[2022/11/1 11:04:45] <6>usb usb1-port1: debounce total 100ms stable 100ms status 0x0
[2022/11/1 11:04:45] <6>phy phy-soc:sstar-usb2-phy.0: Init UTMI disconnect level setting
[2022/11/1 11:04:45] <6>phy phy-soc:sstar-usb2-phy.0: Init UTMI disconnect level setting
[2022/11/1 11:04:45] <6>phy phy-soc:sstar-usb2-phy.0: Init UTMI disconnect level setting
[2022/11/1 11:04:45] <6>phy phy-soc:sstar-usb2-phy.0: Init UTMI disconnect level setting
[2022/11/1 11:04:45] <6>phy phy-soc:sstar-usb2-phy.0: Init UTMI disconnect level setting
[2022/11/1 11:04:45] <6>phy phy-soc:sstar-usb2-phy.0: Init UTMI disconnect level setting
[2022/11/1 11:04:45] <6>phy phy-soc:sstar-usb2-phy.0: Init UTMI disconnect level setting
[2022/11/1 11:04:46] <6>phy phy-soc:sstar-usb2-phy.0: Init UTMI disconnect level setting
[2022/11/1 11:04:46] <6>phy phy-soc:sstar-usb2-phy.0: Init UTMI disconnect level setting
[2022/11/1 11:04:46] <6>phy phy-soc:sstar-usb2-phy.0: Init UTMI disconnect level setting
[2022/11/1 11:04:46] <6>phy phy-soc:sstar-usb2-phy.0: Init UTMI disconnect level setting
Host访问4G内存问题¶
| 现象分类 | 问题描述 | Debug方法和思路 |
|---|---|---|
| 读写U盘测试出现kernel panic(见示例4) | U盘枚举识别以及挂载文件系统均正常,但压力测试读写时会出现panic现象 | 1.此问题之前在Muffin上出现,定位原因是hardware design的Host MAC不支持访问2G以上内存地址。联系FAE,加一个local memory给host controller拷贝urb,压测看看还有没有问题 2.如果local memory size过小,导致某些device接上去无法分配足够的urb,请修改dtsi中ehci节点的属性来调整size:local-memory-size = <0x100000>; 3.联系FAE,以支持访问2G以上DDR地址 |
示例4:U盘压力测试读写出现panic
Kernel panic - not syncing: Attempted to kill init! exitcode=0x0000000b
SMP: stopping secondary CPUs
Kernel Offset: disabled
CPU features: 0x000,08040026,2a00aa38
Memory Limit: none
---[ end Kernel panic - not syncing: Attempted to kill init! exitcode=0x0000000b ]---
Host suspend/resume问题¶
| 现象分类 | 问题描述 | Debug方法和思路 |
|---|---|---|
| 需要开启autosuspend功能 | 以前的chip是没有开启(例如P2),很多wifi或者4G模块使用场景常常需要开启autosuspend | 正常开启autosuspend功能,无法开启联系FAE |
| autosuspend功能异常 | 开启autosuspend功能之后,测试device有概率resume失败 | 1.使用echo -1 > /sys/module/usbcore/parameters/autosuspend,关闭autosuspend之后测试看看,确认是否autosuspend的问题 2.catc抓包确认是suspend异常,还是resume异常 3.需要RD或FAE分析,P0口请dump bank 1421-1424寄存器,P1口dump bank 1429-1432寄存器 |
Host设备兼容问题¶
常见设备如果接上去设备能识别,但是使用起来不正常,可以接到PC上做同样测试看看是否有问题,如果PC上使用正常,那么基本可以判定是兼容问题。
| 现象分类 | 问题描述 | Debug方法和思路 |
|---|---|---|
| hid设备(键盘、鼠标、触摸屏等) | 接上去反复disconnect重新枚举 | 1.usbhid.ko是否正常加载,是否正常生成input节点 2.接到PC上catc抓包对比枚举以及通讯过程 |
Host眼图调试¶
使用linux kernel 5.10之后版本的CHIP,可以通过debugfs修改相应参数来调整眼图效果,如果没有,请联系FAE
- 在Muffin之后的chip(除Maruko外,Maruko的analog部分跟之前chip一样),调整眼图的参数有如下:
-
disconnect_refer_voltage 调整方法为:echo value > /sys/kernel/debug/usb/phy-soc:sstar-usb2-phy.0/disconnect_refer_voltage
-
pre_emphasis 调整方法为:echo value > /sys/kernel/debug/usb/phy-soc:sstar-usb2-phy.0/pre_emphasis
-
slew_rate 调整方法为:echo value > /sys/kernel/debug/usb/phy-soc:sstar-usb2-phy.0/slew_rate
-
squelch_refer_voltage 调整方法为:echo value > /sys/kernel/debug/usb/phy-soc:sstar-usb2-phy.0/squelch_refer_voltage
-
swing_trim 调整方法为:echo value > /sys/kernel/debug/usb/phy-soc:sstar-usb2-phy.0/swing_trim
- Muffin之前的chip,也可以通过debugfs修改眼图参数,有如下参数:
-
tx_swing 调整方法为:echo value > /sys/kernel/debug/usb/phy-soc:sstar-usb2-phy.0/tx_swing
-
de_emphasis_current 调整方法为:echo value > /sys/kernel/debug/usb/phy-soc:sstar-usb2-phy.0/de_emphasis_current
-
cm_current 调整方法为:echo value > /sys/kernel/debug/usb/phy-soc:sstar-usb2-phy.0/cm_current
Host Debug开关说明¶
为了便于定位问题,在ehci driver上加了一些debug信息输出,需要在ehci-hcd.c中添加这两个宏:
define CONFIG_DYNAMIC_DEBUG¶
define EHCI_URB_TRACE¶
然后编译替换ehci-hcd.ko。板子跑起来之后,cat /sys/kernel/debug/usb/ehci/sstar/debug_on,看到如下信息:
debug_on introductions
0 close debug output
1 only show regiters
2 only show statistics
3 only show qh line
4 only show transaction type
5 show all
echo x > /sys/kernel/debug/usb/ehci/sstar/debug_on,x对应上面显示的debug_on数值,在usb传输过程中就可以打印出相应的信息