[PATCH v2 2/2] mach-meson: g12a: reset usb controller in reset_misc()

Mattijs Korpershoek mkorpershoek at baylibre.com
Wed Nov 23 16:45:23 CET 2022


On Tue, Oct 11, 2022 at 19:57, neil.armstrong at linaro.org wrote:

> On 11/10/2022 18:36, Mattijs Korpershoek wrote:
>> On Tue, Oct 11, 2022 at 17:39, Marek Vasut <marex at denx.de> wrote:
>> 
>>> On 10/11/22 09:12, neil.armstrong at linaro.org wrote:
>>>> On 10/10/2022 19:16, Marek Vasut wrote:
>>>>> On 10/10/22 18:22, Neil Armstrong wrote:
>>>>>> Hi,
>>>>>
>>>>> Hi,
>>>>>
>>>>>> On 10/10/2022 18:09, Marek Vasut wrote:
>>>>>>> On 10/7/22 11:38, Mattijs Korpershoek wrote:
>>>>>>>> On some g12a boards like the VIM3L and the SEI610, with some
>>>>>>>> USB cables/hosts, there is a long (5s) delay before
>>>>>>>> between "fastboot reboot" and the host detecting a USB reset.
>>>>>>>>
>>>>>>>> This breaks tools relying on "fastboot reboot fastboot" which assume
>>>>>>>> that 1s after the command send, the board should disconnect on usb.
>>>>>>>>
>>>>>>>> To reproduce, enable fastboot in U-Boot console:
>>>>>>>> => fastboot usb 0
>>>>>>>>
>>>>>>>> Then, on the host, run:
>>>>>>>>     # echo "running fastboot reboot bootloader" > /dev/kmsg &&
>>>>>>>> fastboot reboot bootloader
>>>>>>>>     Rebooting into bootloader                          OKAY [  0.003s]
>>>>>>>>     Finished. Total time: 3.033s
>>>>>>>>
>>>>>>>>     [54074.251551] running fastboot reboot bootloader
>>>>>>>>     ... there is a delay of 5s before we detect a disconnection ...
>>>>>>>>     [54079.041238] usb 1-7.4: USB disconnect, device number 72
>>>>>>>>     [54079.239625] usb 1-7.4: new high-speed USB device number 73
>>>>>>>> using xhci_hcd
>>>>>>>>     [54079.359103] usb 1-7.4: New USB device found, idVendor=1b8e,
>>>>>>>> idProduct=fada, bcdDevice= 2.27
>>>>>>>>     [54079.359110] usb 1-7.4: New USB device strings: Mfr=1,
>>>>>>>> Product=2, SerialNumber=3
>>>>>>>>     [54079.359112] usb 1-7.4: Product: USB download gadget
>>>>>>>>     [54079.359114] usb 1-7.4: Manufacturer: U-Boot
>>>>>>>>     [54079.359116] usb 1-7.4: SerialNumber: C8631470CC41
>>>>>>>>
>>>>>>>> Note: this does not happen when we use the RST button on the board.
>>>>>>>>
>>>>>>>> To fix this, re-implement a platform reset which calls
>>>>>>>> board_usb_cleanup() before resetting the board.
>>>>>>>
>>>>>>> Shouldn't that call happen somewhere in drivers/usb/ .remove()
>>>>>>> callback instead ?
>>>>>>
>>>>>> No since dwc2 isn't DM yet, handling is done in arch/arm/mac-meson
>>>>>> board_usb_*() for now
>>>>>
>>>>> Seems DWC2 is DM:
>>>>>
>>>>> $ git grep U_BOOT_DRIVER drivers/usb/ | grep dwc2
>>>>> drivers/usb/gadget/dwc2_udc_otg.c:U_BOOT_DRIVER(dwc2_udc_otg) = {
>>>>> drivers/usb/host/dwc2.c:U_BOOT_DRIVER(usb_dwc2) = {
>>>>>
>>>>
>>>> My bad, seems I missed the dwc2 otg DM wagon...
>>>>
>>>> We will need to switch to this now then, thanks,
>>>
>>> Thanks. I picked 1/2 at least, so you can only focus on 2/2 and send
>>> just that.
>> 
>> Yes, thank you for picking 1/2
>> 
>> Neil, do you want me to look into converting the meson arch which uses
>> DWC2 to DM?
>> I'm not sure I'm confident to do these changes properly but I'm willing
>> to give it a try.
>> If you plan to do it yourself, fine by me. I'll respin 2/2 after that.
>
> Sure, give a try, if you don't manage I can help!

Done here:

https://lore.kernel.org/u-boot/20221024-meson-dm-usb-v1-0-2ab077a503b9@baylibre.com/

>
>
> Neil


More information about the U-Boot mailing list