We have a device that uses iMX8M Variscite SOM and connects to a Windows 10.0 host via USB. Using DART-MX8M it connects in USB 3.0 mode, but when used DART-MX8M-PLUS, it only connects in USB 2.0. When we traced it with Beagle USB analyzer, we've found it doesn't even try SuperSpeed mode negotiation. E.g. there's not a single SS transaction shows up on the analyzer. From the other side, DART-MX8M comes up in USB3.0 mode without any problems on the same device. By looking at the dwc3 linux driver responsible for the USB configuration, it does seem to configure it in USB 3.0, but from what we see on analyzer it only negotiates in USB 2.0. What could be a source of this discrepancy?
Hi s_sosin
one can try latest variscite linux
https://github.com/varigit/linux-imx/tree/imx_5.4.47_2.2.0_var01/arch/arm64/boot/dts/freescale
and usb tests:
this third party board was developed and supported directly by variscite, so recommended to post issue
on its support portal:
https://www.variscite.com/support/
Best regards
igor
Thanks for the reply! We're talking to Variscite as well, but they can't give us any NXP-specific documentation, they saying we should get that information from NXP.
USB core is part of the NXP SoC. And what we seeing is, there are behavioral differences in USB area beween MX8M and MX8M-PLUS. Looking at the device tree, I can see there were hardware changes: on MX8M-PLUS dwc3 now connected via small shim layer, where on MX8M it was connected directly to the NXP core. Also, it has just single clock parent vs. two on MX8M. It has different quirks setup in dtb, etc.
The assumption was that as far as USB concerned, we can replace MX8M SOM with MX8M-PLUS and it should work. What we seeing is that it doesn't. If there are hardware or software changes required, we need to know about them.
this processor is "Preproduction" part as described in red on below link and not supported yet.
Full support will be provided after official public launch.
Best regards
igor