Hi!
I'm facing an serious issue. I'm using my i.MX53 QSB connected to a host PC via USB, using g_serial driver (gadget serial).
Everything works fine until I simply unplug the USB connector without unload g_serial driver. When I've done this, system hangs and I need to press reset button.
Does anyone has already dealt with this same problem? How can I debug this situation to find where system is hanging?
Thanks in advance!
Solved! Go to Solution.
I had this same issue. I built my 2.6.35.3 Linux kernel with all the Freescale 201112 patches (Linux 2.6.35 Source Code Files and documentation 11.09. Supports MCIMX53-START and MCIMX53-START-R&l...) applied to LTIB from the 11.09 BSP (Patch based on L2.6.35_11_09_ER_SOURCE, to provide: GPU driver update, Uboot update for plugin mode ...) and used the default kernel config. This resulted in the following kernel message during boot on my i.MX53 QSB:
Freescale USB OTG Driver loaded, $Revision: 1.55 $
****************************** NOTICE *****************************
You have seen this notice as you have enabled OTG driver for mx53 LOCO board
For mx53 loco board, the OTG function is unavailable due to hardware limitation
So, Only one usb function (device or host) can be available for certain image
Please config your kernel to disable OTG and the usb function you don't want to use
And remain the other usb function you would like to use
Below OTG configs should be removed:
CONFIG_MXC_OTG, CONFIG_USB_OTG
Choose one of below configs for host or device function
But DO NOT choose them together
OTG host config
CONFIG_USB_EHCI_ARC_OTG
OTG device config
CONFIG_USB_GADGET
I followed the suggestion by selecting "Configure the kernel" and saving the config. Then the kernel configuration menu comes up and go under Device Drivers->USB Support. Under the USB Support menu make sure under "EHCI HCD (USB 2.0) support->Support for Freescale controller" that the "Support for DR host port on Freescale controller" option is not enabled. Then at the bottom of the USB Support page make sure the "USB OTG pin detect support" is not enabled. Next make sure "USB Gadget Support" is enabled and then under that menu select the gadgets you want. At this point exit out of LTIB and it should build you a Linux kernel the correctly supports Linux Gadgets.
I have tested the g_serial, g_ether, and g_cdc and they all work after modifying the kernel config as suggested above. It looks to be the issue is only with the QSB since it shares one chipset for the USB OTG and the bottom USB Host port.
I had this same issue. I built my 2.6.35.3 Linux kernel with all the Freescale 201112 patches (Linux 2.6.35 Source Code Files and documentation 11.09. Supports MCIMX53-START and MCIMX53-START-R&l...) applied to LTIB from the 11.09 BSP (Patch based on L2.6.35_11_09_ER_SOURCE, to provide: GPU driver update, Uboot update for plugin mode ...) and used the default kernel config. This resulted in the following kernel message during boot on my i.MX53 QSB:
Freescale USB OTG Driver loaded, $Revision: 1.55 $
****************************** NOTICE *****************************
You have seen this notice as you have enabled OTG driver for mx53 LOCO board
For mx53 loco board, the OTG function is unavailable due to hardware limitation
So, Only one usb function (device or host) can be available for certain image
Please config your kernel to disable OTG and the usb function you don't want to use
And remain the other usb function you would like to use
Below OTG configs should be removed:
CONFIG_MXC_OTG, CONFIG_USB_OTG
Choose one of below configs for host or device function
But DO NOT choose them together
OTG host config
CONFIG_USB_EHCI_ARC_OTG
OTG device config
CONFIG_USB_GADGET
I followed the suggestion by selecting "Configure the kernel" and saving the config. Then the kernel configuration menu comes up and go under Device Drivers->USB Support. Under the USB Support menu make sure under "EHCI HCD (USB 2.0) support->Support for Freescale controller" that the "Support for DR host port on Freescale controller" option is not enabled. Then at the bottom of the USB Support page make sure the "USB OTG pin detect support" is not enabled. Next make sure "USB Gadget Support" is enabled and then under that menu select the gadgets you want. At this point exit out of LTIB and it should build you a Linux kernel the correctly supports Linux Gadgets.
I have tested the g_serial, g_ether, and g_cdc and they all work after modifying the kernel config as suggested above. It looks to be the issue is only with the QSB since it shares one chipset for the USB OTG and the bottom USB Host port.
Hi,
I have the same issue. Has anybody a solution for this problem already?
Try to un-gate the usb clock (arch/arm/mach-mx5/usb_dr.c) all the time to see if the problem
still exists
Try to use the kernel source code from this package:
Or take kernel from http://opensource.freescale.com/pub/scm/imx/linux-2.6-imx.git/