Hi,**
Board:** Custom carrier board based on Jetson Orin NX (p3767 module)
L4T / JetPack version: L4T 36.5
Description:
I have a custom carrier board derived from the Orin NX reference design, with the padctl@3520000 USB port configuration below (from my board dts)
ports {
/* recovery port */
usb2-0 {
mode = “otg”;
vbus-supply = <&vdd_5v0_sys>;
status = “okay”;
usb-role-switch;
};
/* hub */
usb2-1 {
mode = "host";
vbus-supply = <&vdd_5v0_sys>; (I changed the default to 5v as respect to my schematic)
status = "okay";
};
/* M.2 Key-E */
usb2-2 {
mode = "host";
vbus-supply = <&vdd_5v0_sys>;
status = "okay";
};
/* hub */
usb3-0 {
nvidia,usb2-companion = <1>;
status = "okay";
};
/* J5 */
usb3-1 {
nvidia,usb2-companion = <0>;
status = "okay";
};
};
I’m testing the same USB3.0 UVC camera (Cypress FX3-based, composite UVC+CDC device) on two physical ports on my carrier board, referred to as USB0 and USB1:
-
USB1 — camera works correctly, enumerates at SuperSpeed.
-
USB0 — camera enumerates only at USB2 High-Speed (480M), through an onboard 4-port USB hub, and the
uvcvideodriver fails to bind. No/dev/videoXnode is created.USB1 (working) —
lsusb -t:/: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=tegra-xusb/4p, 10000M |__ Port 2: Dev 2, If 2, Class=Video, Driver=uvcvideo, 5000M |__ Port 2: Dev 2, If 3, Class=Video, Driver=uvcvideo, 5000M (plus CDC ACM interfaces on same device) /: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=tegra-xusb/4p, 480M |__ Port 1: Dev 10, Hub/4p, 480M |__ Port 2: Dev 3, Hub/4p, 480M |__ Port 4: Dev 7, HID |__ Port 3: Dev 2, Wireless (bt)USB0 (failing) —
lsusb -t:/: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=tegra-xusb/4p, 10000M /: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=tegra-xusb/4p, 480M |__ Port 1: Dev 10, Hub/4p, 480M |__ Port 2: Dev 3, Hub/4p, 480M |__ Port 4: Dev 7, HID |__ Port 3: Dev 11, If 0, Class=Video, Driver=, 480M |__ Port 3: Dev 11, If 1, Class=Video, Driver=, 480M |__ Port 3: Dev 2, Wireless (bt)
dmesg on USB0 failure:
[ 790.881108] usb 1-2.2: new high-speed USB device number 30 using tegra-xusb
[ 791.248667] usb 1-2.2: Found UVC 1.10 device FX3 CAMERA (04b4:0040)
[ 791.249339] usb 1-2.2: Failed to query (GET_INFO) UVC control 2 on unit 2: -32 (exp. 1).
...
[ 791.257719] usb 1-2.2: UVC non compliance - GET_DEF(PROBE) not supported. Enabling workaround.
[ 791.258238] uvcvideo 1-2.2:1.1: Failed to query (129) UVC probe control : -32 (exp. 34).
[ 791.258242] uvcvideo 1-2.2:1.1: Failed to initialize the device (-5).
Key observation: On USB0, Bus 02 (the 10000M SuperSpeed root hub) shows no device at all — the camera only ever appears on Bus 01 (USB2-only), behind the onboard hub. On USB1, the same camera enumerates directly on Bus 02 at 5000M with no issues.
My understanding so far: Based on the DT, USB1 likely maps to the usb2-0/usb3-1 direct-wired pad pair, while USB0 maps to usb2-1/usb3-0, which is directly given to 5v(usb Host). I am getting the error when i connect the hub(at USB2.0 Port) where its composite UVC+CDC descriptors fail UVC probe/commit negotiation (-32/EPIPE) rather than functioning as intended over USB3. If I connect to USB3 port in External USB-HUB connected by Type-A. I did not get any message in dmesg too.
Questions:
- Is
nvidia,usb2-companionsufficient by itself to enable SuperSpeed forwarding through an onboard hub wired to ausb3-xpad, or are there additional DT/pinmux/padctl requirements (e.g., pad calibration parameters,nvidia,lanes, orhs-usb-padtype settings) needed for hub-connected SS ports specifically? - Are there recommended debugfs/sysfs nodes to check whether the
usb3-0XUSB pad is actually being trained/linked (link training status, LFPS detection, etc.) so I can distinguish a hardware/layout issue (hub or trace not carrying SS) from a DT/pad configuration issue? - Is there a known limitation with routing SuperSpeed through this class of onboard hub on Orin NX, or a recommended reference schematic for this pad pairing that I should cross-check my carrier board layout against?
Any guidance on diagnosing whether this is a hub-hardware limitation vs. a padctl/DT misconfiguration would be greatly appreciated.
Please help me to understand the issue.
Thanks.
Regards,
Kamalesh