We are evaluating the Yocto linux-fslc 4.1 kernel for the Freescale imx28 processor. We are running it on an imx28 platform and are seeing issues with the USB functionality. It is getting an error when trying to enumerate a USB modem. The modem is connected to the imx28 through a HUB. It is getting the following error when attempting to enumerate the hub.
usb usb2-port1: cannot reset (err = -32)
Does anyone have experience running this kernel on an imx28 platform?
How complete is the USB support on this version of the kernel?
Does anyone know or have heard of similar USB issues on imx28/ linux-fsl 4.1 kernel?
The board works correctly on a Yocto freescale 2.6.35 kernel so we know it is not an issue with the board.
Thanks,
Bruno
已解决! 转到解答。
Hi Bruno,
Does it work if you pass "usbcore.autosuspend=-1" in the kernel command line?
Regards,
Fabio Estevam
Hello Fabio,
I tried this and I've stopped getting the errors I mentioned and it is seeing the hub. However it is not enumerating the modem at the other side of the hub.
This command line option is turning off USB auto-suspension. Does this point to this feature not being supported in this kernel?
Thanks,
Bruno
Hi Bruno,
Does your hub have a dedicated reset line?
Also, I would suggest you to try the latest 4.13.x kernel and if you also see the errors there, then please report it to the linux-usb@vger.kernel.org mailing list.
Regards,
Fabio Estevam
Hi Fabio,
The hub does have a reset line and I checked that it is being reset correctly. I discovered that the modem does enumerate correctly if I plug the 2nd, OTG, interface into my PC. There appears to be some interaction between the two.
Bruno
Just to close this off the modem is now enumerating correctly. Disabling USB auto-suspend fixed the errors I was getting. The other problems were cause by a basic setup problem. However I think having to disable auto-suspend to get this to work points to some configuration issue or lack of support for this feature in this version of the imx28 BSP as this is a basic USB function.
Bruno
Yes, having to disable auto-suspend is a workaround for the problem. In order to have a proper fix in place I would suggest you to report and work with the USB developers via linux-usb@vger.kernel.org list.