Skip to content

USB2.0 Host Debug SOP

REVISION HISTORY

Revision No.
Description
Date
1.0
  • Initial release
  • 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传输过程中就可以打印出相应的信息