What's the command for eye diagram testing of USB 2.0 on TX2?

Hi NV team,
I referred to some topics and documents and sent the command according to the instructions, at the same time, I successfully installed devmem2. However, I didn’t see any waveform on the oscilloscope. So what’s the exact command?

Here is the command I wrote myself:

#!/bin/sh

for hub in $(ls -d /sys/bus/usb/devices/usb?); do

echo on > $hub/power/control

done

devmem2 0x3530450 w 0xA000A0

devmem2 0x3530460 w 0xC63

devmem2 0x3530470 w 0xC63

devmem2 0x3530020 w 0x804

devmem2 0x35200c8 w 0x2CC88D4

devmem2 0x3520108 w 0x2CC88D5

Here is the document I referred to:
Jetson_TX2_USB2_Tuning_Guide_Application_Note.pdf (1.3 MB)

Thanks
yuxing

Every time for the question, please provide detail info like it is on devkit or not, what is the difference b/w custom design and reference. If the issue is only with your board, at least you should check your board first. Make sure your test oscilloscope supports USB test and your board design meets the design guide without USB hub. Then follow the “TEST MODE PROGRAMMING SEQUENCE” step by step to do test.

Thanks for your help,
I have already confirmed that the oscilloscope supports USB eye diagram testing. The oscilloscope model is Keysight DSAV164A, and there is a fixture available. The test environment was set up by Keysight FAE, and there aren’t any problems. Moreover, it seems that the design guide does not specify the testing considerations for scenarios with and without a HUB. I have connected a USB hub, will the testing plan be different after connecting it? It is ready to use as soon as it is powered on, theoretically, it shouldn’t affect the tests.
I think my problem is that I don’t know how to convert the instructions from the “TEST MODE PROGRAMMING SEQUENCE” into corresponding command. For example, I need to test USB0, and step 2 requires “XUSB_XHCI_OP_PORTSC*bit[9] = 0”. What I do is using “devmem2 0x3530454” to read the value of USB0, and I get a return value of 0xA002A0. Then, I set bit[9] of this value to 0, which means writing 0xA000A0 to 0x3530454. The corresponding operation is “devmem2 0x3530454 w 0xA000A0”. I’m not sure if this approach is effective.

It is not supported. Please check with hub vendor for test method.

It doesn’t matter, sir. I just wanna know how to achieve “XUSB_XHCI_OP_PORTSC*bit[9] = 0” through a linux command. I would appreciate it if you could provide guidance.

Yes, devmem may work here.

According to the tunning guide, if I need to set PP (Port Power) in disabled state by XUSB_XHCI_OP_PORTSC0 bit [9] = 0, are my following commands correct?

#Set PP (Port Power) in Disabled state by XUSB_XHCI_OP_PORTSC* bit [9] = 0.

devmem2 0x3530450  #Read the value of USB0

devmem2 0x3530450 w 0xA000A0 #The value of 0x3530450 is 0xA002A0, which is equivalent to 1010 0000 0010 1010 0000. If I make bit [9] equal to 0, then it is 1010 0000 0000 0000 1010 0000, which is equivalent to 0xA000A0.

Yes, that looks correct.

Thanks for your help, sir. However, there is a situation: no matter what modifications I make to 0x3530450, when I read the value from this address again, it always returns 0x80, it doesn’t seem reasonable.