Hello,
we are currently doing another i.MX7 design-in.
During the bring-up of an LTE module connected to the HSIC bus we had troubles getting it to work. First we thought it would be related to the LTE module but now we expect the BSP or the USB controller of the i.MX7 to be the problem.
We have read through i.MX7D USB HSIC Hub (USB3503) enumeration variability and thought it would make sense to try the BSP on the Sabre i.MX7D Reference board with an EVB-USB3503 (USB3503 HSIC to USB 2.0 Mobile Hub Evaluation Board).
Current setup:
arch/arm/configs/imx_7v_defconfig
&usbh {
status = "okay";
};&usbotg1 {
status = "disabled";
};&usbotg2 {
status = "disabled";
};
I added some debug outputs for the register reads and writes to the HSIC CI peripheral.
Please find the kernel log attached.
The main output looks like in the aforementioned thread
[ 1.598921] ci_hdrc ci_hdrc.0: new USB bus registered, assigned bus number 1
[ 1.606185] imx_usb 30b30000.usb: unknown event
[ 1.648585] ci_hdrc ci_hdrc.0: USB 2.0 started, EHCI 1.00
[ 1.654217] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002
[ 1.661042] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 1.668272] usb usb1: Product: EHCI Host Controller
[ 1.673174] usb usb1: Manufacturer: Linux 4.14.78-05595-g94da7bdc489b-dirty ehci_hcd
[ 1.680941] usb usb1: SerialNumber: ci_hdrc.0
[ 1.685914] hub 1-0:1.0: USB hub found
[ 1.871475] usbcore: registered new interface driver bcm203x
[ 1.877195] usbcore: registered new interface driver btusb
[ 1.882770] usbcore: registered new interface driver ath3k
[ 2.068596] usb 1-1: new high-speed USB device number 2 using ci_hdrc
[ 2.238572] usb 1-1: device no response, device descriptor read/64, error -71
[ 2.519692] usb 1-1: device no response, device descriptor read/64, error -71
[ 2.788567] usb 1-1: new high-speed USB device number 3 using ci_hdrc
[ 2.948568] usb 1-1: device no response, device descriptor read/64, error -71
[ 3.228564] usb 1-1: device no response, device descriptor read/64, error -71
[ 3.348590] usb usb1-port1: attempt power cycle
[ 3.457172] usbcore: registered new interface driver usbhid
[ 3.462805] usbhid: USB HID core driver
[ 3.927276] usb_otg1_vbus: disabling
[ 3.930907] usb_otg2_vbus: disabling
[ 4.068703] usb 1-1: new high-speed USB device number 4 using ci_hdrc
[ 4.518646] usb 1-1: device not accepting address 4, error -71
[ 4.668615] usb 1-1: new high-speed USB device number 5 using ci_hdrc
[ 5.128674] usb 1-1: device not accepting address 5, error -71
[ 5.134586] usb usb1-port1: unable to enumerate USB device
[ 5.153205] imx_usb 30b30000.usb: at imx_controller_suspend
Using a USB protocol analyzer one can see that there are the standard SOF packets every 125us as according to the USB2.0 spec, but there is not much more going on on the bus.
The same behavior can be reproduced on in our custom i.MX7S design using a LTE modem via HSIC.
I checked all device tree setting etc. and I am running out of ideas.
Could you please check and see if I am doing something wrong.
If you need further information please let me know - we do have a Lauterbach Trace32 setup available and can provide you with register settings etc.
Best regards
Daniel
I am experiencing what looks like the same issue as you describe in your post.
Linux Kernel 4.9.11 with i.MX7D with USB3503 shows intermittent error:
[ 5.933361] hub 3-0:1.0: USB hub found
[ 5.937175] hub 3-0:1.0: 1 port detected
[ 6.453843] usb 3-1: device no response, device descriptor read/64, error -71
[ 6.777018] usb 3-1: device no response, device descriptor read/64, error -71
[ 7.046996] usb 3-1: new high-speed USB device number 3 using ci_hdrc
[ 7.239519] usb 3-1: device no response, device descriptor read/64, error -71
There appear to be a number of posts discussing this issue, but no concrete solutions! Did you make any progress in resolving this issue?
Regards,
Hi Daniel
one can check with oscilloscope usb hsic timings
sect.4.10.15 USB HSIC timing i.MX7D Datasheet
http://cache.nxp.com/files/32bit/doc/data_sheet/IMX7DCEC.pdf
Also, as hsic signal are very sensitive to noise and signal integrity issues,
recheck board layout using sect.3.6.8High speed signal routing recommendations
i.MX6 System Development User’s Guide (note, Sabre i.MX7D Reference board has not
special hsic layout, as hsic was not enabled (and tested) on that board)
https://www.nxp.com/docs/en/user-guide/IMX6DQ6SDLHDG.pdf
May be useful to check app note Introduction to HSIC
http://ww1.microchip.com/downloads/en/appnotes/00001602a.pdf
Best regards
igor
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------