USB3.0 Compliance Testing With TX2

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…


Hi pnewmanCTI,

Steps of placing TX2 in compliance mode:

  1. Run the following script:

    for hub in $(ls -d /sys/bus/usb/devices/usb?); do
    echo on > $hub/power/control

  2. Install devmem tool:

    $ sudo apt-get install devmem2

  3. Writing Ah to T_XUSB_XHCI_OP_PORTSC[8:5]

    devmem2 0x3530420 w 0x10340
    devmem2 0x3530430 w 0x10340
    devmem2 0x3530440 w 0x10340

  4. 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.