We have a custom designed PCBA utilizing the Sitara AM5728 processor for an application that includes machine control and data acquisition. We use USB 3.0 as our primary communication and data path to an external windows PC so the Sitara is configured in device mode.
We have an issue on some of our prototype boards where the USB will fail to enumerate in SuperSpeed (USB 3.0) mode and will default to High Speed (USB 2.0). We have identified a thermal dependency on these boards where they will connect successfully if heated but will fail at room temperature or lower.
We have also found a workaround using debug commands to shutdown our USB gadget application, unmount the DWC3 kernel module, then restart the USB enumeration process. This will always result in a superspeed connection so we suspect some sort of power up timing or order of operation issue in the firmware.
We have also done some compliance tests with a highspeed oscilloscope that gives us confidence in the hardware. The USB section of the schematic is shown below.
Logs from a Beagle USB Analyzer show that the failure always occurs during the TS1 phase of the polling state, where 9C or 00 starts being sent in place of 4A for bits 6-F.