[U-Boot] dwc2: usb: Unable to clear channel error

Dinh Nguyen dinguyen at kernel.org
Mon Oct 23 23:23:49 UTC 2017



On 10/23/2017 09:03 AM, Minas Harutyunyan wrote:
> On 10/19/2017 5:35 PM, Dinh Nguyen wrote:
>>
>>
>> On 10/19/2017 06:55 AM, Grigor Tovmasyan wrote:
>>> On 10/18/2017 6:07 PM, Marek Vasut wrote:
>>>> On 10/18/2017 04:05 PM, Dinh Nguyen wrote:
>>>>> Hi,
>>>>>
>>>>> I'm trying to bringup the DWC2 USB IP version 330A on a new Stratix10
>>>>> SoC and have encountered this error in both Linux and U-Boot:
>>>>>
>>>>> U-Boot(version v2017.09)
>>>>>
>>>>> # usb start
>>>>> starting USB...
>>>>> USB0:   Core Release: 3.30a
>>>>> dwc_otg_core_host_init: Timeout!
>>>>> dwc_otg_core_host_init: Timeout!
>>>>>
>>>>> Linux(kernel v4.13)
>>>>>
>>>>> [    1.299891] dwc2 ffb00000.usb: DWC OTG Controller
>>>>> [    1.304628] dwc2 ffb00000.usb: new USB bus registered, assigned bus
>>>>> number 1
>>>>> [    1.311698] dwc2 ffb00000.usb: irq 13, io mem 0xffb00000
>>>>> [    1.318309] dwc2 ffb00000.usb: Unable to clear enable on channel 0
>>>>> [    1.325749] dwc2 ffb00000.usb: Unable to clear enable on channel 1
>>>>> [    1.333187] dwc2 ffb00000.usb: Unable to clear enable on channel 2
>>>>> [    1.340626] dwc2 ffb00000.usb: Unable to clear enable on channel 3
>>>>> [    1.348064] dwc2 ffb00000.usb: Unable to clear enable on channel 4
>>>>> [    1.355503] dwc2 ffb00000.usb: Unable to clear enable on channel 5
>>>>> [    1.362941] dwc2 ffb00000.usb: Unable to clear enable on channel 6
>>>>> [    1.370379] dwc2 ffb00000.usb: Unable to clear enable on channel 7
>>>>> [    1.377818] dwc2 ffb00000.usb: Unable to clear enable on channel 8
>>>>> [    1.385256] dwc2 ffb00000.usb: Unable to clear enable on channel 9
>>>>> [    1.392694] dwc2 ffb00000.usb: Unable to clear enable on channel 10
>>>>> [    1.400218] dwc2 ffb00000.usb: Unable to clear enable on channel 11
>>>>> [    1.407743] dwc2 ffb00000.usb: Unable to clear enable on channel 12
>>>>> [    1.415269] dwc2 ffb00000.usb: Unable to clear enable on channel 13
>>>>> [    1.422794] dwc2 ffb00000.usb: Unable to clear enable on channel 14
>>>>>
>>>>> Just wondering if anyone might have an idea on what could be causing
>>>>> this error?
>>>>
>>>> Maybe some clock are not enabled ?
>>>>
>>>
>>> Hi ,
>>>
>>> Are you following board/hisilicon/hikey/README file instructions when
>>> using U-Boot? Specially paragraph FLASHING point 4, where discussed
>>> "dwc_otg_core_host_init: Timeout!" message.
>>>
>>
>> I saw that, but I don't know how that applies to a Stratix10 platform?
>>
>> Dinh
>>
>>
> Hi,
> 
> Did you able to resolve this issue? If not, please provide verbose debug 
> log and register dump.
> 

I double-checked the clocks and it looks like all of the necessary
clocks are enabled. Here are the log and register dump for U-Boot, I'll
follow-up with the Linux log shortly.

For U-Boot:

SOCFPGA_STRATIX10 # usb start
starting USB...
USB0:   Core Release: 3.30a
dwc_otg_core_host_init: Timeout (reg=00000000ffb00500 mask=80000000
wait_set=0)
dwc_otg_core_host_init: Timeout!
dwc_otg_core_host_init: Timeout (reg=00000000ffb00520 mask=80000000
wait_set=0)
dwc_otg_core_host_init: Timeout!
dwc_otg_core_host_init: Timeout (reg=00000000ffb00540 mask=80000000
wait_set=0)
dwc_otg_core_host_init: Timeout!
dwc_otg_core_host_init: Timeout (reg=00000000ffb00560 mask=80000000
wait_set=0)
dwc_otg_core_host_init: Timeout!
dwc_otg_core_host_init: Timeout (reg=00000000ffb00580 mask=80000000
wait_set=0)
dwc_otg_core_host_init: Timeout!
dwc_otg_core_host_init: Timeout (reg=00000000ffb005a0 mask=80000000
wait_set=0)
dwc_otg_core_host_init: Timeout!
dwc_otg_core_host_init: Timeout (reg=00000000ffb005c0 mask=80000000
wait_set=0)
dwc_otg_core_host_init: Timeout!
dwc_otg_core_host_init: Timeout (reg=00000000ffb005e0 mask=80000000
wait_set=0)
dwc_otg_core_host_init: Timeout!
dwc_otg_core_host_init: Timeout (reg=00000000ffb00600 mask=80000000
wait_set=0)
dwc_otg_core_host_init: Timeout!
dwc_otg_core_host_init: Timeout (reg=00000000ffb00620 mask=80000000
wait_set=0)
dwc_otg_core_host_init: Timeout!
dwc_otg_core_host_init: Timeout (reg=00000000ffb00640 mask=80000000
wait_set=0)
dwc_otg_core_host_init: Timeout!
dwc_otg_core_host_init: Timeout (reg=00000000ffb00660 mask=80000000
wait_set=0)
dwc_otg_core_host_init: Timeout!
dwc_otg_core_host_init: Timeout (reg=00000000ffb00680 mask=80000000
wait_set=0)
dwc_otg_core_host_init: Timeout!
dwc_otg_core_host_init: Timeout (reg=00000000ffb006a0 mask=80000000
wait_set=0)
dwc_otg_core_host_init: Timeout!
dwc_otg_core_host_init: Timeout (reg=00000000ffb006c0 mask=80000000
wait_set=0)
dwc_otg_core_host_init: Timeout!
scanning bus 0 for devices... dwc2_submit_control_msg:
dev='usb at ffb00000', udev=000000003fa50380, udev->dev='usb at ffb00000',
portnr=0
dwc2_submit_control_msg: dev='usb at ffb00000', udev=000000003fa50380,
udev->dev='usb at ffb00000', portnr=0
dwc2_submit_control_msg: dev='usb at ffb00000', udev=000000003fa50380,
udev->dev='usb at ffb00000', portnr=0
dwc2_submit_control_msg: dev='usb at ffb00000', udev=000000003fa50380,
udev->dev='usb at ffb00000', portnr=0
dwc2_submit_control_msg: dev='usb at ffb00000', udev=000000003fa50380,
udev->dev='usb at ffb00000', portnr=0
dwc2_submit_control_msg: dev='usb at ffb00000', udev=000000003fa50380,
udev->dev='usb at ffb00000', portnr=0
dwc2_submit_control_msg: dev='usb at ffb00000', udev=000000003fa50380,
udev->dev='usb at ffb00000', portnr=0
dwc2_submit_control_msg: dev='usb at ffb00000', udev=000000003fa50380,
udev->dev='usb at ffb00000', portnr=0
dwc2_submit_control_msg: dev='usb at ffb00000', udev=000000003fa55080,
udev->dev='usb_hub', portnr=0
dwc2_submit_control_msg: dev='usb at ffb00000', udev=000000003fa55080,
udev->dev='usb_hub', portnr=0
dwc2_submit_control_msg: dev='usb at ffb00000', udev=000000003fa55080,
udev->dev='usb_hub', portnr=0
dwc2_submit_control_msg: dev='usb at ffb00000', udev=000000003fa55080,
udev->dev='usb_hub', portnr=0
dwc2_submit_control_msg: dev='usb at ffb00000', udev=000000003fa55080,
udev->dev='usb_hub', portnr=0
dwc2_submit_control_msg: dev='usb at ffb00000', udev=000000003fa55080,
udev->dev='usb_hub', portnr=0
dwc2_submit_control_msg: dev='usb at ffb00000', udev=000000003fa55080,
udev->dev='usb_hub', portnr=0
dwc2_submit_control_msg: dev='usb at ffb00000', udev=000000003fa55080,
udev->dev='usb_hub', portnr=0
dwc2_submit_control_msg: dev='usb at ffb00000', udev=000000003fa55080,
udev->dev='usb_hub', portnr=0
dwc2_submit_control_msg: dev='usb at ffb00000', udev=000000003fa55080,
udev->dev='usb_hub', portnr=0
dwc2_submit_control_msg: dev='usb at ffb00000', udev=000000003fa4f440,
udev->dev='usb_hub', portnr=1
chunk_msg: msg: pipe 80000083 pid 3 in 0 len 8
transfer_chunk: chunk: pid 3 xfer_len 8 pkts 1
wait_for_chhltd: Timeout (reg=00000000ffb00508 mask=00000002 wait_set=1)
unable to get device descriptor (error=-110)
dwc2_submit_control_msg: dev='usb at ffb00000', udev=000000003fa55080,
udev->dev='usb_hub', portnr=0
1 USB Device(s) found
       scanning usb for storage devices... 0 Storage Device(s) found
SOCFPGA_STRATIX10

Before "usb start", the registers are:

ffb00000: 00200000 00000000 00000000 00001410    .. .............
ffb00010: 80000000 04000021 00000000 00000000    ....!...........
ffb00020: 00000000 00002000 20002000 00082000    ..... ... . . ..
ffb00030: 00000000 00000000 00000000 12345678    ............xV4.
ffb00040: 4f54330a 00000000 238ffc90 1f8002e8    .3TO.......#....
ffb00050: fe0f0020 00000000 00000000 1f802000     ............ ..
ffb00060: 00000000 00000000 00000000 00000000    ................
ffb00070: 00000000 00000000 00000000 00000000    ................
ffb00080: 00000000 00000000 00000000 00000000    ................
ffb00090: 00000000 00000000 00000000 00000000    ................
ffb000a0: 00000000 00000000 00000000 00000000    ................
ffb000b0: 00000000 00000000 00000000 00000000    ................
ffb000c0: 00000000 00000000 00000000 00000000    ................
ffb000d0: 00000000 00000000 00000000 00000000    ................
ffb000e0: 00000000 00000000 00000000 00000000    ................
ffb000f0: 00000000 00000000 00000000 00000000    ................
ffb00100: 20004000 00000000 00000000 00000000    . at . ............
ffb00110: 00000000 00000000 00000000 00000000    ................
ffb00120: 00000000 00000000 00000000 00000000    ................
ffb00130: 00000000 00000000 00000000 00000000    ................
ffb00140: 00000000 00000000 00000000 00000000    ................
ffb00150: 00000000 00000000 00000000 00000000    ................
ffb00160: 00000000 00000000 00000000 00000000    ................
ffb00170: 00000000 00000000 00000000 00000000    ................
ffb00180: 00000000 00000000 00000000 00000000    ................



ffb00500: 00000000 00000000 00000000 00000000    ................
ffb00510: 00000000 ffffff7f 00000000 ffffff7f    ................
ffb00520: 00000000 00000000 00000000 00000000    ................
ffb00530: 00000000 ffffff7f 00002000 ffffff7f    ......... ......
ffb00540: 00000000 00000000 00000000 00000000    ................
ffb00550: 00000000 ffffff7f 00002000 ffffff7f    ......... ......
ffb00560: 00000000 00000000 00000000 00000000    ................
ffb00570: 00000000 ffffff7f 00002000 ffffff7f    ......... ......
ffb00580: 00000000 00000000 00000000 00000000    ................
ffb00590: 00000000 ffffff7f 00002000 ffffff7f    ......... ......
ffb005a0: 00000000 00000000 00000000 00000000    ................
ffb005b0: 00000000 ffffff7f 00002000 ffffff7f    ......... ......
ffb005c0: 00000000 00000000 00000000 00000000    ................
ffb005d0: 00000000 ffffff7f 00002000 ffffff7f    ......... ......
ffb005e0: 00000000 00000000 00000000 00000000    ................
ffb005f0: 00000000 ffffff7f 00002000 ffffff7f    ......... ......
ffb00600: 00000000 00000000 00000000 00000000    ................
ffb00610: 00000000 ffffff7f 00002000 ffffff7f    ......... ......
ffb00620: 00000000 00000000 00000000 00000000    ................
ffb00630: 00000000 ffffff7f 00002000 ffffff7f    ......... ......
ffb00640: 00000000 00000000 00000000 00000000    ................
ffb00650: 00000000 ffffff7f 00002000 ffffff7f    ......... ......
ffb00660: 00000000 00000000 00000000 00000000    ................
ffb00670: 00000000 ffffff7f 00002000 ffffff7f    ......... ......
ffb00680: 00000000 00000000 00000000 00000000    ................

After "usb start":

# md.l 0xffb00000 64
ffb00000: 002e0000 00080000 00000026 01301710    ........&.....0.
ffb00010: 80000000 3500002d 00000000 ffffff7f    ....-..5........
ffb00020: ffffff7f 00000214 01000214 47080100    ...............G
ffb00030: 00000000 00000000 00000000 12345678    ............xV4.
ffb00040: 4f54330a 00000000 238ffc90 1f8002e8    .3TO.......#....
ffb00050: fe0f0020 00000000 00000000 1f802000     ............ ..
ffb00060: 00000000 00000000 00000000 00000000    ................
ffb00070: 00000000 00000000 00000000 00000000    ................
ffb00080: 00000000 00000000 00000000 00000000    ................
ffb00090: 00000000 00000000 00000000 00000000    ................
ffb000a0: 00000000 00000000 00000000 00000000    ................
ffb000b0: 00000000 00000000 00000000 00000000    ................
ffb000c0: 00000000 00000000 00000000 00000000    ................
ffb000d0: 00000000 00000000 00000000 00000000    ................
ffb000e0: 00000000 00000000 00000000 00000000    ................
ffb000f0: 00000000 00000000 00000000 00000000    ................
ffb00100: 02000314 00000000 00000000 00000000    ................
ffb00110: 00000000 00000000 00000000 00000000    ................
ffb00120: 00000000 00000000 00000000 00000000    ................
ffb00130: 00000000 00000000 00000000 00000000    ................
ffb00140: 00000000 00000000 00000000 00000000    ................
ffb00150: 00000000 00000000 00000000 00000000    ................
ffb00160: 00000000 00000000 00000000 00000000    ................
ffb00170: 00000000 00000000 00000000 00000000    ................
ffb00180: 00000000 00000000 00000000 00000000    ................


# md.l 0xffb00500 64
ffb00500: c0100040 00000000 00000000 00000000    @...............
ffb00510: 60080008 ffffff7f 00000000 ffffff7f    ...`............
ffb00520: c0000000 00000000 00000000 00000000    ................
ffb00530: 00000000 ffffff7f 00000100 ffffff7f    ................
ffb00540: c0000000 00000000 00000000 00000000    ................
ffb00550: 00000000 ffffff7f 00000100 ffffff7f    ................
ffb00560: c0000000 00000000 00000000 00000000    ................
ffb00570: 00000000 ffffff7f 00000100 ffffff7f    ................
ffb00580: c0000000 00000000 00000000 00000000    ................
ffb00590: 00000000 ffffff7f 00000100 ffffff7f    ................
ffb005a0: c0000000 00000000 00000000 00000000    ................
ffb005b0: 00000000 ffffff7f 00000100 ffffff7f    ................
ffb005c0: c0000000 00000000 00000000 00000000    ................
ffb005d0: 00000000 ffffff7f 00000100 ffffff7f    ................
ffb005e0: c0000000 00000000 00000000 00000000    ................
ffb005f0: 00000000 ffffff7f 00000100 ffffff7f    ................
ffb00600: c0000000 00000000 00000000 00000000    ................
ffb00610: 00000000 ffffff7f 00000100 ffffff7f    ................
ffb00620: c0000000 00000000 00000000 00000000    ................
ffb00630: 00000000 ffffff7f 00000100 ffffff7f    ................
ffb00640: c0000000 00000000 00000000 00000000    ................
ffb00650: 00000000 ffffff7f 00000100 ffffff7f    ................
ffb00660: c0000000 00000000 00000000 00000000    ................
ffb00670: 00000000 ffffff7f 00000100 ffffff7f    ................
ffb00680: c0000000 00000000 00000000 00000000    ................

I'll follow up the the Linux debug output shortly.

Dinh


More information about the U-Boot mailing list