4 USB 2.0, 2 USB3.2 ports NOT working on AGX Orin Industrial

Will share on Monday. Thanks

working-mouse-dmesg-2-mar.log (64.1 KB)
running-mouse-working-2-mar.log (396.5 KB)

SSD not working on UB 3-1 and 3_2.

Note: we are using USB2_0 ( OTG ) both as flashing port and for Host mode, but it is not working in host mode completely( even mouse/keyboard also not working but working fine as flashing port).

What is the connector type for your OTG port?

Also, from what I saw, the combination is

usb2-0 + usb3-1 (otg)
usb2-1
usb2-2
usb2-3+ usb3-2

What is the connector type of usb2-3+usb3-2 here?

The connector type for OTG port(USB 2_0) is Type A.
Infact all our USB ports are Type A only.

The connector type of usb2-3+usb3-2 is also Type A only.

Then usb2-0 could not be a true OTG port. It is lacking of hardware mechanism to do role switch.

Please set it to host mode only.

Also want to clarify. Your schematic needs to provide even the connector side information but not only the previous one you shared.

As we need to use this USB2_0 as Flashing port and also as a companion to USB_3-1, we cannot set it to host mode only.
Please let us know what hardware mechanism it is lacking do to role switch( our hardware designer is asking)

USB3-2 companion with USB2-3.

USB3-1 companion with USB2-0

Type A port does not have ID/Vbus-det pin to do role switch.

Generally only micro B or type C which uses CC pin could tell the role.

Without these pins, the role switch could only be done with hardcoded style.

Also, schematic is not able to read the text. Please upload a clear version.

And if both of connectors are type A case, then I would also suggest to capture the USB bus trace by using USB analyzer.

This is typical debug method for USB speed downgrade issue.

could you guide how to do this in hardcoded style?

Pls click on the images and zoom it, you can very clearly read the text

we did not report you any speed downgrade issue in this thread. can we know what made u comment on this speed downgrade issue?
we dont have USB analyser with us.

What is your log when connecting USB SSD to it?

usb2-0 + usb3-1 (otg)
usb2-1
usb2-2
usb2-3+ usb3-2

What are the exact status of these ports? Which are working and which are not working?
Share the corresponding dmesg for each case.

I am working on a reply


We have 2 3.0 ports (nvidia,usb3-gen1-only = <0x01>;) and 2 2.0 ports we bring out all as USB type A female and set them up as DFP or host only. We USB0 maps to UPHY1, USB1 maps to UPHY0 but won’t connect because we are hsio-uphy-config-16, USB2 is 2.0 and USB3 maps to UPHY20.

Note that when in recovery boot mode UPHY1 / USB0 becomes a UFP / client by the recovery boot ROM and you need a M to M USB cable to recover. We remove the VCC pin from that cable to prevent back-feed damage to the Programming PC. You can change the direction of a port by setting mode = “client”; if I recall correctly.

In the device tree we made the ports USB3.0 5Gbps and used the nvidia,usb2-companion = <0>; to map the UPHYs to the USB2 ports.

ODMDATA=“gbe-uphy-config-22,hsstp-lane-map-3,hsio-uphy-config-16,nvhs-uphy-config-0,gbe0-enable-10g”; Note we use hsio-uphy-config-16 because we fire up PCIe C0

Below are the device tree entries.

	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 = "host";
				status = "okay";				
			};

			usb2-1 {
				mode = "host";
				status = "okay";
			};

			usb2-2 {
				mode = "host";
				status = "okay";
			};

			usb2-3 {
				mode = "host";
				status = "okay";
			};

			usb3-0 {
				nvidia,usb2-companion = <1>;
				status = "okay";
				nvidia,usb3-gen1-only = <0x01>;
			};

			usb3-1 {
				nvidia,usb2-companion = <0>;
				status = "okay";                   # Make disabled if hsio-uphy-config-16
				nvidia,usb3-gen1-only = <0x01>;
			};

			usb3-2 {
				nvidia,usb2-companion = <3>;
				status = "okay";
				nvidia,usb3-gen1-only = <0x01>;
			};
		};
	};

	usb@3550000 {
		status = "okay";

		phys = <&{/bus@0/padctl@3520000/pads/usb2/lanes/usb2-0}>,
		       <&{/bus@0/padctl@3520000/pads/usb3/lanes/usb3-1}>;
		phy-names = "usb2-0", "usb3-0";
	};

	usb@3610000 {
		status = "okay";

		phys = <&{/bus@0/padctl@3520000/pads/usb2/lanes/usb2-0}>,
		       <&{/bus@0/padctl@3520000/pads/usb2/lanes/usb2-1}>,
		       <&{/bus@0/padctl@3520000/pads/usb2/lanes/usb2-2}>,
		       <&{/bus@0/padctl@3520000/pads/usb2/lanes/usb2-3}>,
		       <&{/bus@0/padctl@3520000/pads/usb3/lanes/usb3-0}>,
		       <&{/bus@0/padctl@3520000/pads/usb3/lanes/usb3-1}>,
		       <&{/bus@0/padctl@3520000/pads/usb3/lanes/usb3-2}>;
		phy-names = "usb2-0", "usb2-1", "usb2-2", "usb2-3",
			    "usb3-0", "usb3-1", "usb3-2";
	};

By the way, you will want to rip out the PD code at some point so that it doesn’t take up resources or cause trouble. Having said that we haven’t done that yet
.

Hardcoded style I suspect is the mode = “host”;

I suspect that you are attempting to do exactly what we did. All hosts. Client only in recovery.

Be sure that nvidia,usb2-companion = ; lignes up correctly for your phys. I can’t tell from your schematic.

Try to get USB 2.0 going first.

  1. Below are the dmesg logs for SSD connection working and not working cases.

  2. Mouse, Keyboard, USB Hub, USB 2.0 pen drive works for all the below 4 ports.

usb2-0 + usb3-1 (otg),

usb2-1,

usb2-2,

usb2-3+ usb3-2

  1. SSD not working case(usb2-0 + usb3-1 (otg)) :
    dmesg-not-working_USB_3_1_OTG_Comp.log (88.8 KB)

Note: Here kingston SSD works fine, where as Samsung USB SSDs does not detect/work.

  1. All other cases below are working for SSD connection:
    dmesg-working_USB_2_1.log (99.4 KB)

dmesg-working_USB_2_2.log (97.5 KB)

dmesg-working_USB_3_2.log (87.6 KB)

Pls find out device tree changes done for the same:
tegra234-p3737-0000+p3701-0008-nv.txt (3.1 KB)

Can you check the updated device tree file and let us know in case you see some discrepancy.

tegra234-p3737-0000+p3701-0008-nv.txt (3.1 KB)

Thanks

what do you mean by PD? Power delivery code


[ 325.969207] usb 2-2: new SuperSpeed Plus Gen 2x1 USB device number 20 using tegra-xusb
[ 325.991383] usb 2-2: unable to get BOS descriptor or descriptor too short
[ 325.999438] usb 2-2: unable to read config index 0 descriptor/start: -71
[ 325.999449] usb 2-2: can’t read configurations, error -71
[ 326.200334] usb 2-2: Device not responding to setup address.
[ 326.408342] usb 2-2: Device not responding to setup address.
[ 326.616029] usb 2-2: device not accepting address 21, error -71
[ 326.624150] usb usb2-port2: attempt power cycle

Are you saying that above error is the situation when you connect Samsung USB SSDs to your usb2-0 + usb3-1?

Please try to focus on just one device in one log. I saw you have Kingston and Samsung SSD in the same log. Try not to do that. Just give us the error situation log. Not mixing up everything all in one file.

Pls find the below logs case by case basis:

not-working-dmesg-Samsung-SSD_USB_3_1_usb2_0-companion.log (79.1 KB)

working_dmesg_USB_3_2_USB_2_3_companion_Samsung_SSD.log (76.7 KB)