TX2 USB2.0 and USB3.0 seems not working with own designed carrier board

I have one own designed carrier board, and managed to enter into recovery mode successfully. Also flashing images through USB2.0 port was fine. However, after cold reset and ubuntu booted up. Both USB2.0 and USB3.0 were not working. lsusb can’t find any ouput. Filesystem flashed was L4T sample root file system 28.2.1.

USB2.0 was microAB, circuit was followed official schematic:
USB0_OTG_ID
USB0_VBUS_DET
USB0_EN_OC#
USB0_D+
USB0_D-
I inserted USB keyboard for this port, it was not working, seems not powered.

USB3.0 was modified to connect AX88179 chipset, the purpose is to have anther gigabit ethernet port.
USB1_D+
USB1_D-
USB_SS0_RX+
USB_SS0_RX-
USB_SS0_TX+
USB_SS0_TX-

AX88179 was set to self-power mode, in the OS, we can’t see the device.

Any suggestion to debug this problem? Thanks.

Hi,
Please check https://elinux.org/Jetson/TX2_USB#Patching_the_DTS

And debug tips at
https://devtalk.nvidia.com/default/topic/1048285/jetson-tx2/how-to-setup-usb-config-4-for-tx2-l4t-28-2-1-/post/5320806/#5320806

Thanks DaneLL.
I think from the first link https://elinux.org/Jetson/TX2_USB#Patching_the_DTS, it is something about INA3221 power monitoring.
Actually, I also have those chip on our board. Does that mean there is any issue with that hardware?

Hi,
Not sure but it seems to be a hardware issue. Looks like your board is broken.

Hmmm, I think the power monitoring shall be working, reading is from I2C bus, right? I will check the schematic. BTW, can I bypass the effect of the power monitoring and enable USB by force?

Hi,
https://elinux.org/Jetson/TX2_USB#Patching_the_DTS
The link is for custom board which is identical to default reference board but does not have gpio expander tca9539. If your board does not have the gpio expander, you shall need to apply the patch.

I’ve removed U28 but have U29. Also for U29, the GPIO outputs have been given different meaning, not following the same as dev kit. Is this cause some problem too?

I checked U29’s I2C address setting, and corrected it as 0x74, now it seems something happened.
I saw:

[   11.358528] using random self ethernet address
[   11.358531] using random host ethernet address
[   11.363218] usb0: HOST MAC 9e:03:53:71:18:d8
[   11.363256] usb0: MAC ba:94:e4:07:3f:aa
[   11.363546] usb1: HOST MAC f6:e6:14:ca:94:5d
[   11.363566] usb1: MAC 02:e8:c5:81:4d:0c

However, the console printed error messages as below continuously:

[   24.597768] usb usb1-port2: over-current condition
[   24.633787] xhci-tegra 3530000.xhci: port 1 over-current detected
[   24.639966] tegra186-padctl 3520000.pinctrl: tegra18x_phy_xusb_handle_overcurrent: clear port 1 pin 1 OC

Any suggestion? Thanks.

Hi,
Have you checked oem design guide and adaptation guide? For developing your own board, you need to check hardware and software guidance in the document.
https://developer.nvidia.com/embedded/dlc/jetson-tx2-series-modules-oem-product-design-guide

Yes, could you please help to point out the reason why over current errors message happened?
Is it related to some pins status on U29? What is related to port 1 in xhci? Thanks.

After checking the hardware, the over current was caused by USB_VBUS_EN1 was pulled down to GND.
I corrected the hardware and the alarm was gone.
AX88179 was set to self-power mode, we don’t need power supply to that chipset.
Following the https://elinux.org/Jetson/TX2_USB#Patching_the_DTS, we still can’t make the USB working. Need help!

vbus-0-supply = <&vdd_usb0_5v>;
vbus-1-supply = <&vdd_usb1_5v>;

I think we are using USB0 and USB1, why do we need to touch vbus-2-supply? Appreciate anyone’s help.

Hi,
If your custom board does not have tca9539, it fails in USB initialization without the patch.
https://devtalk.nvidia.com/default/topic/1028223/jetson-tx2/tx2-usb-not-work/post/5279905/#5279905

Please refer to debug tips at #2, and check correctness of device tree and if VBUS is turned on too early.