Hi,we are encountering a USB 3.0 regression after upgrading our Jetson platform from release R36.4.3 to R36.5.0.
On the previous release (R36.4.3), both USB 2.0 and USB 3.0 devices operated without any issues. After the upgrade, however, USB 2.0 still works as intended, but the USB 3.0 Hub is no longer detected, and USB 3.0 devices are never enumerated or assigned to the USB 3.x root hub.
lsusb output with a USB-C SanDisk flash drive (verified on dev-kit to appear as USB3.X) in the port:
nvidia@nvidia-agx-orin:~$ 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 2: Dev 2, If 0, Class=Hub, Driver=hub/4p, 480M
|__ Port 1: Dev 13, If 0, Class=Human Interface Device, Driver=usbhid, 1.5M
|__ Port 2: Dev 16, If 0, Class=Mass Storage, Driver=usb-storage, 480M
|__ Port 3: Dev 11, If 0, Class=Human Interface Device, Driver=usbhid, 1.5M
|__ Port 3: Dev 11, If 1, Class=Human Interface Device, Driver=usbhid, 1.5M
|__ Port 3: Dev 3, If 0, Class=Vendor Specific Class, Driver=ftdi_sio, 12Mnvidia@nvidia-agx-orin:~$ lsusb
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 003: ID 0403:6015 Future Technology Devices International, Ltd Bridge(I2C/SPI/UART/FIFO)
Bus 001 Device 011: ID 2a7a:939f CASUE USB KB
Bus 001 Device 016: ID 0951:1666 Kingston Technology DataTraveler 100 G3/G4/SE9 G2/50
Bus 001 Device 013: ID 03f0:584a HP, Inc HP 125 USB Optical Mouse
Bus 001 Device 002: ID 0bda:5420 Realtek Semiconductor Corp. 4-Port USB 2.0 Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
The simplified diagram of the port connection is as follows:
DTS:
padctl@3520000 {
status = “okay”;pads { usb2 { lanes { usb2-0 { status = "okay"; }; usb2-1 { status = "okay"; }; usb2-2 { status = "okay"; }; usb2-3 { status = "okay"; }; }; }; usb3 { lanes { usb3-0 { status = "okay"; }; usb3-1 { status = "okay"; }; usb3-2 { status = "okay"; }; }; }; }; ports { usb2-0 { mode = "otg"; usb-role-switch; status = "okay"; /*port { hs_typec_p1: endpoint { remote-endpoint = <&hs_ucsi_ccg_p1>; }; }; 20241230 disabled */ }; usb2-1 { mode = "host"; status = "okay"; /*port { hs_typec_p0: endpoint { remote-endpoint = <&hs_ucsi_ccg_p0>; }; }; 20241230 disabled */ }; usb2-2 { mode = "host"; status = "okay"; }; usb2-3 { mode = "host"; status = "okay"; }; usb3-0 { nvidia,usb2-companion = <1>; status = "okay"; /*port { ss_typec_p0: endpoint { remote-endpoint = <&ss_ucsi_ccg_p0>; }; }; 20241230 disabled */ }; usb3-1 { nvidia,usb2-companion = <0>; status = "okay"; /*port { ss_typec_p1: endpoint { remote-endpoint = <&ss_ucsi_ccg_p1>; }; }; 20241230 disabled */ }; usb3-2 { nvidia,usb2-companion = <3>; status = "okay"; }; }; };
xusb_padctl: padctl@3520000 {
compatible = “nvidia,tegra234-xusb-padctl”;
reg = <0x0 0x03520000 0x0 0x20000>,
<0x0 0x03540000 0x0 0x10000>;
reg-names = “padctl”, “ao”;
interrupts = <GIC_SPI 167 IRQ_TYPE_LEVEL_HIGH>;resets = <&bpmp TEGRA234_RESET_XUSB_PADCTL>; reset-names = "padctl"; status = "okay"; // changed pads { usb2 { clocks = <&bpmp TEGRA234_CLK_USB2_TRK>; clock-names = "trk"; lanes { usb2-0 { nvidia,function = "xusb"; status = "okay"; // changed #phy-cells = <0>; }; usb2-1 { nvidia,function = "xusb"; status = "okay"; // changed #phy-cells = <0>; }; usb2-2 { nvidia,function = "xusb"; status = "okay"; // changed #phy-cells = <0>; }; usb2-3 { nvidia,function = "xusb"; status = "okay"; // changed #phy-cells = <0>; }; }; }; usb3 { lanes { usb3-0 { nvidia,function = "xusb"; status = "disabled"; #phy-cells = <0>; }; usb3-1 { nvidia,function = "xusb"; status = "disabled"; #phy-cells = <0>; }; usb3-2 { nvidia,function = "xusb"; status = "disabled"; #phy-cells = <0>; }; usb3-3 { nvidia,function = "xusb"; status = "disabled"; #phy-cells = <0>; }; }; }; }; ports { usb2-0 { status = "okay"; // changed }; usb2-1 { status = "okay"; // changed }; usb2-2 { status = "okay"; // changed }; usb2-3 { status = "okay"; // changed }; /* the following items would be changed 20241230 */ usb3-0 { status = "disabled"; }; usb3-1 { status = "disabled"; }; usb3-2 { status = "disabled"; }; usb3-3 { status = "disabled"; }; }; };
dmesg output from inserting flash drive
[22242.333230] usb 1-2.2: new high-speed USB device number 18 using tegra-xusb
[22242.446461] usb-storage 1-2.2:1.0: USB Mass Storage device detected
[22242.447185] scsi host1: usb-storage 1-2.2:1.0
[22243.459453] scsi 1:0:0:0: Direct-Access Kingston DataTraveler 3.0 PMAP PQ: 0 ANSI: 6
[22243.462056] sd 1:0:0:0: [sdb] 121096320 512-byte logical blocks: (62.0 GB/57.7 GiB)
[22243.462677] sd 1:0:0:0: [sdb] Write Protect is off
[22243.462688] sd 1:0:0:0: [sdb] Mode Sense: 45 00 00 00
[22243.463283] sd 1:0:0:0: [sdb] Write cache: disabled, read cache: enabled, doesn’t support DPO or FUA
[22243.644498] sdb: sdb1
[22243.647445] sd 1:0:0:0: [sdb] Attached SCSI removable disk
[22243.969031] FAT-fs (sdb1): Volume was not properly unmounted. Some data may be corrupt. Please run fsck.
dmesg.log (130.3 KB)
Any clear mistakes so far, or more information you would be helped by?
Thanks
