We are trying to do USB3.0 compliance testing with the TX2 and our carrier board. However we are not able to put the TX2 into compliance mode.
For example on a x86 machine, sending the correct command on the RX+ line will put the XHCI controller into compliance mode (CP0). Sending the same command to the Jetson does not work.
Is there a register I need to write to or a command I need to send to put the ports into compliance modes?
I tried sending the mbox command to enable LFPS detection but it just hung the FW…
Steps of placing TX2 in compliance mode:
Run the following script:
for hub in $(ls -d /sys/bus/usb/devices/usb?); do
echo on > $hub/power/control
Install devmem tool:
$ sudo apt-get install devmem2
Writing Ah to T_XUSB_XHCI_OP_PORTSC[8:5]
devmem2 0x3530420 w 0x10340
devmem2 0x3530430 w 0x10340
devmem2 0x3530440 w 0x10340
Start compliance test.
As for loopback mode for RX electrical compliance test, just run step 1 & 4.
This did not work… The port seems to stay in “RXdetect” mode (0x5). I cant seem to change the mode from this to any other mode unless there is a device connected.
Is there any way to “fake” a device connected?
I managed to get the above to work, you just need to write 0x10340 several times quickly or it will just drop back into RX Detect mode.