xusb-padctl report -517

Hi,
I’m trying a board custom from tx2, using L4T 32.2.1 package with sample rootfs 32.2.0.

With nothing changed and flash default images, I read below error msg in kernel boot log:

tegra-xusb-padctl 3520000.xusb_padctl: failed to setup XUSB ports: -517

attached full kern.log. I’m new to tx2, it looks having a complicated BSP system, please kindly help me start on it.

thanks

kern.log (80.4 KB)

Hi,
You may need to modify device tree per your custom board. Please refer to
https://devtalk.nvidia.com/default/topic/1057885/jetson-tx2/usb-not-working-in-jetson-tx2-r32-2/post/5364464/#5364464

Hi,

I made changes according to the link, also needs to change odmdata, now I’m seeing:

Please complete system configuration setup on /dev/ttyGS0 to proceed…

I don’t have a monitor yet and I don’t want to debug hdmi issue now, is there any method to force it to use /dev/ttyS0 to do the configuration?

thanks

Hi,
You may login through ssh and run xxd to check correctness of device tree. Here are some debug tips.

I tried xxd
nv@tegra-ubuntu:~$ xxd /proc/device-tree/xhci@3530000/phy-names
00000000: 7573 6232 2d30 0075 7362 332d 3100 usb2-0.usb3-1.

I set odmdata to 0x2090000, config usb2-0 and usb3-1 only.

Now I see below message in kernel log:

[ 0.513479] usbcore: registered new interface driver usbfs
[ 0.513541] usbcore: registered new interface driver hub
[ 0.513661] usbcore: registered new device driver usb
[ 0.593160] vdd-usb0-5v: 5000 mV
[ 0.593481] vdd-usb1-5v: 5000 mV
[ 1.030318] tegra-xusb-padctl 3520000.xusb_padctl: failed to create pad usb3: -22
[ 1.030362] tegra-xusb-padctl 3520000.xusb_padctl: failed to create pad usb3: -22
[ 1.030480] tegra-xusb-padctl 3520000.xusb_padctl: failed to setup pads: -22
[ 1.030781] tegra-xusb-padctl: probe of 3520000.xusb_padctl failed with error -22
[ 1.201991] usbcore: registered new interface driver r8152

parts of my generated dtb:

9222 
 9223                 pads {
 9224 
 9225                         usb2 {  
 9226                                 clocks = <0x10 0x87>;
 9227                                 clock-names = "trk";
 9228                                 
 9229                                 lanes {
 9230                                         
 9231                                         usb2-0 {
 9232                                                 status = "okay";
 9233                                                 #phy-cells = <0x0>;
 9234                                                 nvidia,function = "xusb";
 9235                                                 linux,phandle = <0xa6>;
 9236                                                 phandle = <0xa6>;
 9237                                         };
 9238                                 };
 9239                         };
 9240 
 9241                         usb3 {
 9242 
 9243                                 lanes {
 9244 
 9245                                         usb3-1 {
 9246                                                 status = "okay";
 9247                                                 #phy-cells = <0x0>;
 9248                                                 nvidia,function = "xusb";
 9249                                                 linux,phandle = <0x10c>;
 9250                                                 phandle = <0x10c>;
 9251                                         };
 9252                                 };
 9253                         };
 9254

any suggestion?

Hi,
It looks not right that you don’t configure ports. Below is an example from the post

ports {
    usb2-0 {
        status = "okay";
        mode = "otg";
        vbus-supply = <&vdd_usb0_5v>;
        nvidia,oc-pin = <0>;
    };
    usb2-1 {
        status = "okay";
        mode = "host";
        vbus-supply = <&vdd_usb1_5v>;
        nvidia,oc-pin = <1>;
    };
    usb3-1 {
        nvidia,usb2-companion = <1>;
        status = "okay";
    };
};

You may remove nvidia,oc-pin if you don’t use it, and set vbus-supply, nvidia,usb2-componion. For a USB3 type A, it has two pin USB2, four pin USB3, and a VBUS pin.
Enumeration issues are seen if VBUS is turned on too early. You may also check this.

Hi,

I do configured the ports, not pasted here. The usb3-1 port configuration is just same as you posted.
usb3-1 pin assignment on our custome board are same as official tx2.

Hi,
Please refer to the adaptation guide for further checking:

Hi,

Here’s my current dts file for usb:

19         xhci@3530000 {
120                 status = "okay";
121                 phys = <&{/xusb_padctl@3520000/pads/usb2/lanes/usb2-0}>,
122                         <&{/xusb_padctl@3520000/pads/usb2/lanes/usb2-1}>,
123                         <&{/xusb_padctl@3520000/pads/usb2/lanes/usb2-2}>,
124                         <&{/xusb_padctl@3520000/pads/usb3/lanes/usb3-1}>;
125                 phy-names = "usb2-0", "usb2-1", "usb2-2", "usb3-1";
126         };

139         xusb_padctl@3520000 {
140                 status = "okay";
141                 pinctrl-0 = <&vbus_en0_default_state>;
142                 pinctrl-1 = <&vbus_en1_default_state>;
143                 pinctrl-2 = <&vbus_en0_sfio_tristate_state>;
144                 pinctrl-3 = <&vbus_en1_sfio_tristate_state>;
145                 pinctrl-4 = <&vbus_en0_sfio_passthrough_state>;
146                 pinctrl-5 = <&vbus_en1_sfio_passthrough_state>;
147                 pinctrl-names = "vbus_en0_default", "vbus_en1_default",
148                         "vbus_en0_sfio_tristate", "vbus_en1_sfio_tristate",
149                         "vbus_en0_sfio_passthrough", "vbus_en1_sfio_passthrough";
150 
151                 pads {  
152                         usb2 {  
153                                 lanes { 
154                                         usb2-0 {
155                                                 nvidia,function = "xusb";
156                                                 status = "okay";
157                                         };
158                                         usb2-1 {
159                                                 nvidia,function = "xusb";
160                                                 status = "okay";
161                                         };
162                                         usb2-2 {
163                                                 nvidia,function = "xusb";
164                                                 status = "disabled";
165                                         };
166                                 };
167                         };
168                         usb3 {  
169                                 lanes { 
170                                         usb3-1 {
171                                                 nvidia,function = "xusb";
172                                                 status = "okay";
173                                         };
174                                 };
175                         };
176                 };
177                 
178                 ports {
179                         usb2-0 {
180                                 status = "okay";
181                                 mode = "otg";
182                                 vbus-supply = <&vdd_usb0_5v>;
183                                 nvidia,oc-pin = <0>;
184                         };
185                         usb2-1 {
186                                 status = "okay";
187                                 mode = "host";
188                                 vbus-supply = <&vdd_usb1_5v>;
189 /*                              nvidia,oc-pin = <1>;*/
190                         };
191                         usb2-2 {
192                                 status = "disabled";
193                                 mode = "host";
194                                 vbus-supply = <&battery_reg>;
195                                 nvidia,oc-pin = <1>;
196                         };
197                         usb3-1 {
198                                 nvidia,usb2-companion = <1>;
199                                 status = "okay";
200                         };
201                 };
202         };

I commented out overlays in plugin manager dts file and xhci settings in c03 base dts, also set odmdata to 0x2090000, now I don’t see error message of usb at kernel booting, but usb3-1 seems still not working:
nv@tegra-ubuntu:~ lsusb Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub nv@tegra-ubuntu:~

ls /sys/firmware/devicetree/base/chosen/plugin-manager/odm-dat
android-build enable-denver-wdt enable-xusb-on-uphy-lane1
disable-pmic-wdt enable-pcie-on-uphy-lane0 name
disable-sdmmc-hwcq enable-pcie-on-uphy-lane2 no-battery
disable-tegra-wdt enable-pcie-on-uphy-lane4 normal-flashed
enable-debug-console enable-sata-on-uphy-lane5
nv@tegra-ubuntu:~$

not sure what else should configure to make it work

tegra186-quill-p3310-1000-a00-00-base.dts.tar.gz (2.21 KB)

Hi,
The device tree shows usb3-1(PEX_RFU, G39 G40 D39 D40) is configured to ‘enable-xusb-on-uphy-lane1’. And usb3-1 and usb2-1 is a type A port. VBUS pin is A18.

If above meets your hardware design, the device tree looks good. Are you able to try other USB3 devices such as USB3 pendrive?
Or maybe re-work VBUS pin out, connect to a power supply and try to turn it on/off to check if enumeration happens.

Hi,

usb3-1 pin is not matching, thanks for you point that, we are using lane #2 (G43, G42, D43, D42).
I modified odmdata to 0x4090000, and I see ‘enable-xusb-on-uphy-lane2’, no change in device tree, but still not able to detect usb pendrive or mouse.

shouldn’t it work at least as a usb2.0 host port?

thanks

also tried change device tree to use usb3-2 with odmdata 0x4090000

Hi,
usb2-1 is A38 A39. Are the pins correct on your board?

Yes, usb2-1 uses a38/a39

Hi,
It does not looks to be an software issue now. You may check VBUS pin( voltage, turn off and on ) and TX/RX D+/D- signals.

Hi,

I tried different vbus, battery_reg which proved working on usb2-2, vdd_usb0_5v which used by usb2-0, also vdd_usb1_5v.

I will ask hardware guy to check, thanks.

How can I solve this problem? The random event reports an error and the “Please complete system configuration setup on / dev / ttyGS0 to proceed …” problem?

Hi,

Replied you in your thread. Please check: