[meta-freescale] USB issues after moving to linux-fslc-imx_4.1-1.0.x

Renato Caldas rm.santos.caldas at gmail.com
Thu Oct 13 15:42:27 PDT 2016


Hello,

I'm working with a Kontron SMARC-sAMX6i board, which is based on the
imx6q CPU. This board is very poorly supported by the manufacturer,
but I've managed to get a mostly-working port of the original 3.x
fido-based kernel to the most recent4.x  linux-fslc-imx kernel.

Unfortunately, after successfully testing the kernel in my "testbed"
board, I'm now having USB issues with the "production" board. The
kernel detects and enumerates all USB devices (two "internal" hubs and
in this case a USB flash drive), but right before mounting the rootfs
the usb devices get disconnected, and I get a continuous "new
high-speed USB device" stream:

[    1.782114] usb 1-1: new high-speed USB device number 2 using ci_hdrc
[    1.782488] wm8903 0-001b: WM8903 revision C
[    1.803203] imx-wm8903 ssi1_audio: wm8903-hifi <-> 2028000.ssi mapping ok
[    1.924839] hub 1-1:1.0: USB hub found
[    1.930606] hub 1-1:1.0: 2 ports detected
(...)
[    2.214106] usb 1-1.1: new high-speed USB device number 3 using ci_hdrc
[    2.327359] hub 1-1.1:1.0: USB hub found
[    2.331416] hub 1-1.1:1.0: 7 ports detected
(...)
[    2.606128] usb 1-1.1.2: new high-speed USB device number 4 using
ci_hdrc
[    2.724466] usb-storage 1-1.1.2:1.0: USB Mass Storage device detected
[    2.731823] scsi host1: usb-storage 1-1.1.2:1.0
(... detected a USB storage device ...)
[    5.392999] sd 1:0:0:0: [sda] Attached SCSI removable disk
(...)
[    6.578140] Sending DHCP requests ., OK
(... preparing to boot from NFS rootfs ...)
[    6.628199] V_3V3_SDCARD: disabling
[    6.631760] V_5V0_S0: disabling
[    6.635290] VGEN1: disabling
[    6.638423] V_2V5_S0: disabling
[    6.641788] CAN0_EN: disabling
[    6.644870] CAN1_EN: disabling
[    6.648188] ALSA device list:
[    6.651326] usb 1-1: USB disconnect, device number 2
[    6.656338] usb 1-1.1: USB disconnect, device number 3
[    6.656348]   #0: imx-wm8093
[    6.656352]   #1: imx-hdmi-soc
[    6.667478] usb 1-1.1.2: USB disconnect, device number 4
[    6.679995] VFS: Mounted root (nfs filesystem) on device 0:15.
[    6.686854] devtmpfs: mounted
[    6.690119] Freeing unused kernel memory: 256K (80796000 - 807d6000)
(...)
[    6.930155] usb 1-1: new high-speed USB device number 5 using ci_hdrc
[    7.174141] usb 1-1: new high-speed USB device number 6 using ci_hdrc
[    7.414134] usb 1-1: new high-speed USB device number 7 using ci_hdrc
(...)
[    7.838141] usb 1-1: device not accepting address 7, error -71
[    7.954220] usb 1-1: new high-speed USB device number 8 using ci_hdrc
[    8.378156] usb 1-1: device not accepting address 8, error -71
[    8.384103] usb usb1-port1: unable to enumerate USB device
[    8.630181] usb 1-1: new high-speed USB device number 9 using ci_hdrc

and it goes on and on. This happens with any kind of USB device
connected to either hub.

Going back to the 3.x kernel it works flawlessly, so it's definitely
software related (even if it may be a hardware issue).

If I boot without any usb device connected (apart from the two
internal USB hubs) it boots successfully, but as soon as I plug in a
USB device, I get this:

[  158.722735] usb 1-1: USB disconnect, device number 2
[  158.727768] usb 1-1.1: USB disconnect, device number 3
[  158.742031] usb usb1-port1: cannot reset (err = -32)
[  158.747696] usb usb1-port1: cannot reset (err = -32)
[  158.753047] usb usb1-port1: cannot reset (err = -32)
[  158.758381] usb usb1-port1: cannot reset (err = -32)
[  158.763686] usb usb1-port1: cannot reset (err = -32)
[  158.773159] usb usb1-port1: Cannot enable. Maybe the USB cable is bad?
[  158.780061] usb usb1-port1: cannot reset (err = -32)
[  158.785309] usb usb1-port1: cannot reset (err = -32)
[  158.790730] usb usb1-port1: cannot reset (err = -32)
[  158.795777] usb usb1-port1: cannot reset (err = -32)
[  158.800807] usb usb1-port1: cannot reset (err = -32)
[  158.805815] usb usb1-port1: Cannot enable. Maybe the USB cable is bad?
[  158.812508] usb usb1-port1: cannot reset (err = -32)
[  158.817564] usb usb1-port1: cannot reset (err = -32)
[  158.822619] usb usb1-port1: cannot reset (err = -32)
[  158.827655] usb usb1-port1: cannot reset (err = -32)
[  158.832683] usb usb1-port1: cannot reset (err = -32)
[  158.837688] usb usb1-port1: Cannot enable. Maybe the USB cable is bad?
[  158.844326] usb usb1-port1: cannot reset (err = -32)
[  158.849358] usb usb1-port1: cannot reset (err = -32)
[  158.854393] usb usb1-port1: cannot reset (err = -32)
[  158.859423] usb usb1-port1: cannot reset (err = -32)
[  158.864455] usb usb1-port1: cannot reset (err = -32)
[  158.869460] usb usb1-port1: Cannot enable. Maybe the USB cable is bad?
[  158.876053] usb usb1-port1: unable to enumerate USB device
[  163.050137] usb 1-1: new high-speed USB device number 8 using ci_hdrc
[  163.290132] usb 1-1: new high-speed USB device number 9 using ci_hdrc
[  163.530130] usb 1-1: new high-speed USB device number 10 using ci_hdrc
[  163.950128] usb 1-1: device not accepting address 10, error -71
[  164.066129] usb 1-1: new high-speed USB device number 11 using ci_hdrc
[  164.486127] usb 1-1: device not accepting address 11, error -71
[  164.492167] usb usb1-port1: unable to enumerate USB device

I've checked and re-checked the kernel and device tree configurations,
but I can't figure out why it doesn't work on this particular board.
With my testbed board I sometimes got this problem, but it was
essentially random and very infrequent.

Any advice for figuring this out is more than welcome. And sorry for
the long e-mail..

Thanks,
  Renato


More information about the meta-freescale mailing list