On Tue, Oct 11, 2022 at 19:57, neil.armstr...@linaro.org wrote: > On 11/10/2022 18:36, Mattijs Korpershoek wrote: >> On Tue, Oct 11, 2022 at 17:39, Marek Vasut <ma...@denx.de> wrote: >> >>> On 10/11/22 09:12, neil.armstr...@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-2ab077a50...@baylibre.com/ > > > Neil