USB 3.1 Hub Connectivity Issues on Jetson Orin Nano
Issue Overview
Users are experiencing connectivity problems with a USB 3.0 hub from VIA Labs attached to the Nvidia Jetson Orin Nano development board. The main symptoms include:
- Peripherals connected directly to the hub are detected but fail to establish a connection
- Devices connected through an intermediate hub between the VIA Labs hub and the peripheral work correctly
- USB 3.2 connections appear to function properly, while other USB standards encounter issues
- The problem affects all USB ports on the Orin, as they are all routed through the VIA Labs hub
A specific error message was observed in the system logs:
[ 14.722194] usb 1-2.1: device descriptor read/64, error -110
This issue significantly impacts the usability of USB devices on the Jetson Orin Nano, limiting connectivity options for users.
Possible Causes
-
Device Tree Configuration: The USB controller settings in the device tree may not match the hardware design, leading to improper initialization of USB ports.
-
Driver Compatibility: The VIA Labs hub might have compatibility issues with the Jetson Orin Nano’s USB controller drivers.
-
Power Delivery Issues: Insufficient power supply to the USB hub or connected devices could cause connection failures.
-
Firmware Mismatch: The USB controller firmware on the Jetson Orin Nano might not be fully compatible with the VIA Labs hub.
-
Hardware Defect: There could be a physical defect in the VIA Labs hub or the USB ports on the Jetson Orin Nano.
-
USB Protocol Negotiation: The error -110 typically indicates a timeout, which could be caused by issues in USB protocol negotiation between the devices.
Troubleshooting Steps, Solutions & Fixes
-
Verify Device Tree Configuration:
- Review the current device tree configuration, particularly the
xusb_padctl@3520000
section. - Ensure that the USB port configurations match the hardware design of your Jetson Orin Nano.
- Consult the Nvidia documentation for proper device tree settings:
https://docs.nvidia.com/jetson/archives/r35.5.0/DeveloperGuide/HR/JetsonModuleAdaptationAndBringUp/JetsonAgxOrinSeries.html?highlight=adaptation#porting-the-universal-serial-bus
- Review the current device tree configuration, particularly the
-
Update USB Controller Firmware:
- Check for any available updates to the Jetson Orin Nano’s USB controller firmware.
- Apply updates if available, following Nvidia’s official update procedures.
-
Test with Different USB Hubs:
- Try using a different USB hub to determine if the issue is specific to the VIA Labs hub.
- If possible, test the VIA Labs hub on another system to isolate the problem.
-
Power Supply Check:
- Ensure that the Jetson Orin Nano and the USB hub are receiving adequate power.
- Try using a powered USB hub to rule out power delivery issues.
-
USB Driver Troubleshooting:
- Check for any available updates to the USB drivers for the Jetson Orin Nano.
- Try loading and unloading USB drivers to reset the USB subsystem:
sudo modprobe -r xhci_hcd sudo modprobe xhci_hcd
-
Analyze USB Enumeration:
- Use
usbmon
to capture USB traffic during device connection:sudo modprobe usbmon sudo cat /sys/kernel/debug/usb/usbmon/0u > usb_trace.txt
- Analyze the trace to identify where the enumeration process fails.
- Use
-
Kernel Parameter Adjustment:
- Try adjusting USB-related kernel parameters to see if they affect the issue:
sudo sysctl -w kernel.usbcore.usbfs_memory_mb=1000 sudo sysctl -w kernel.usbcore.autosuspend=-1
- Try adjusting USB-related kernel parameters to see if they affect the issue:
-
Contact Nvidia Support:
- If the issue persists after trying these steps, reach out to Nvidia’s support team for further assistance.
- Provide them with the detailed logs, including
dmesg
output and any USB traces collected.
-
Consider Hardware Alternatives:
- If no solution is found, consider using a different USB hub model that is known to be compatible with the Jetson Orin Nano.
- Explore the possibility of using direct USB connections instead of the VIA Labs hub, if feasible in your setup.
Remember to document any changes made during troubleshooting and their effects on the system’s behavior. This information will be valuable for further debugging or when seeking support from Nvidia or the community.