No definition of "USB_CALIB" registers in TRM or tuning guide


I am trying to modify “HS_CURR_LEVEL[5:0]” of “XUSB_PADCTL_USB2_OTG_PAD0_CTL_0_0” due to the USB HS eye diagram failure.

According the the “Jetson AGX Xavier Series Tuning and Compliance Guide Application Note v1.1”, I have to modify “FUSE_USB_CALIB (Address 0x038201F0)” but not to overwrite “HS_CURR_LEVEL[5:0]” directly and the maximum allowable offset is +/-6 steps.

However, I cannot find the detail definition in both “Xavier Series SoC Technical Reference Manual v1.4p” and tuning guide. Could someone kindly help on this?

Hi, We don’t support tuning on USB SS. We only provide information for compliance/testing. Customer is expected to meet the DG routing requirements. You only need to follow the tuning guide to setup test.

Hi Trumany

I think “FUSE_USB_CALIB (Address 0x038201F0)” is for tuning “HS_CURR_LEVEL[5:0]” of “XUSB_PADCTL_USB2_OTG_PAD0_CTL_0_0”, and it is for USB HS not USB SS, isn’t it ?

Yes, please refer to tuning guide to set. The current info in TRM and tuning guide is all about it that is available.

Hi Trumany

NO!! That is my question.
There is NO detail definition of how to set the +/-6 steps of “FUSE_USB_CALIB” in both TRM and tuning guide.

There are only the following discretion, but no detail definition.
For example, by setting which value meaning “-4” ?

a). USSB_CALIB[5:0] USB pad HS_CURR_LEVEL[5:0] for Port 0
b). USSB_CALIB[16:11] USB pad HS_CURR_LEVEL[5:0] for Port 1
c). USSB_CALIB[22:17] USB pad HS_CURR_LEVEL[5:0] for Port 2
d). USSB_CALIB[28:23] USB pad HS_CURR_LEVEL[5:0] for Port 3

There is examples in tuning guide:

Calculate the offset from fused HS_CURR_LEVEL value and desired value to pass eye mask.
a). For example, if default value is 0x20 and desired value is 0x1C, then offset = -4
b). For example, if default value is 0x10 and desired value is 0x14, then offset = +4

Hi Trumany,

These sentences only means:
0x20 => 0x1C = 0x20 + (-4 )
0x10 => 0x14 = 0x10 + ( 4 )

According to the tuning guide, the HS_CURR_LEVEL Offset Adjustment rule :
HS_CURR_LEVEL = USB_CALIB + tuned offset steps

But, the question is what value should I set into USB_CALIB[5:0] to make the value of HS_CURR_LEVEL[5:0] minus 4 ?

The tuning guide is correct.

  1. Adjust HS_CURR_LEVEL register as described in the “Tuning Procedure” section (Note: maximum allowable offset: +/-6 steps). You can write the value you want to it .
  2. Provide the “tuned offset value” to software team. Calculate the offset steps and provide to sw team .

"For example, if they’re tuning USB Port 1, they should read bits 16:11 of address 0x038201F0 (FUSE_USB_CALIB) to get the default (or starting) value.

Then, if say their default/starting value was 0x20 and they noticed writing a value of 0x1C improved their eye and the test passed. Then they know that their board requires an offset of “-4”.

They should then let their software team know so they can add a “-4” offset to their software implementation.

Once it’s implemented into their software, they should verify it’s done correctly - ie when they load their new software, when they read bits 16:11 of address 0x038201F0 (FUSE_USB_CALIB) for that particular board they were testing with, they should now get a value of 0x1C.

Customer can then try a few more boards to ensure this new offset allows the eye test to pass."

This topic was automatically closed 60 days after the last reply. New replies are no longer allowed.