Jetson xavier NX doesn't get detected in device mode after bootup unless unplug and plug it back

Hi Nvidia,
I have done DSTI changes so Jetson xavier NX board USB2-2 port (type-C connector) is configured for Device mode(“peripheral”) instead of default USB2-0 port (i.e. usb-b-connector). I am able to enumerate in device mode once I connect usb cable to xavier NX board after bootup, but later when we reboot the xavier nx dhcp gets run IP is assigned but host Linux machine, it doesn’t get enumerate in device mode, need to unplug and plug it back for dhcp to run and assign ip to the host Linux machine.
Every reboot to unplug and plug is time consuming, and we can’t remotely access the device.
Please let me know anything we can do so we can avoid this problem.

Hi Nvidia,

Any update on this above topic?

Sorry for the late response, have you managed to get issue resolved or still need the support? Thanks

Hi Kaycc,
Issue is not resolved at my end still. Need help from NVIDIA team to reslove this issue.

With Regards,
Ashwath B N

Is this a devkit issue or custom board issue?

Hi WayneWWW,

It’s custom board issue.

with Regards,
Ashwath B N

check the result of this node when you hit this issue and when you don’t hit this issue.

/sys/class/usb_role/usb2-0-role-switch/role

If you are not using usb2-0, use the node which is responsible for your device mode.

Hi WayneWWW,

I am using node usb2-2 mapped to type-c connector. I execute below command at my end. I am using this command to confirm whether NX is entering in device mode or not.

cat /sys/class/usb_role/usb2-2-role-switch/role

After bootup, if usb cable is already connected above command returns “device” once I disconnect usb cable above command retuns “none”.
Even during runtime usb attach above command returns “device” and usb detach will returns “none”.

Runtime attach and detach works both power negotiations on CC1 and CC2 happens (since type-c connector) and data path get established.

when we reboot the xavier nx with usb cable connected after reboot host system does not detect the xavier nx. Even though xavier nx is in device mode.

With Regards,
Ashwath B N

Does Xavier NX devkit also reproduce this kind of issue with your host PC?

NX devkit is device mode only design.

Nx kit uses usb2-0 node and micro usb connector. micro usb connector has additional ID signal pin to tell either to host mode or device mode.

No… xavier nx devkit does not have id pin…

Sorry my mistake. we don’t have xavier nx kit at our end. We do have xavier AGX dev kit, it uses micro-usb connector. we don’t see this issue.

When initially we bring-up our custom xavier nx board. Device mode was mapped to recovery port (i.e. micro-usb connector usb2-0) by default (otg). In this case also we didn’t see this issue.
Later we wanted device mode on usb2-2 node with type-c connector. Everything works except after reboot of xavier nx device, host can’t detect the xavier nx until you unplug and plug it again.

just to clarify. Are you talking about the role is correct but your host side still cannot detect it?

cat /sys/class/usb_role/usb2-2-role-switch/role

BTW, this does not really matter but your comment is wrong.

. we don’t have xavier nx kit at our end. We do have xavier AGX dev kit, it uses micro-usb connector. we don’t see this issue.

Xavier AGX micro usb port on devkit is a UART port… it is not a real usb port. Unless your “devkit” is not a real NV devkit…

Yes role is correct, but host side is not detected.

yes, you are correct. I got confused. I rechecked it.

please check if the gadget is set correctly on jetson side.

/sys/kernel/config/usb_gadget

ep0 should be up.

At my xavier nx device, at above location I see “l4t” folder and under that folder I see following subfolder.

nx@dhcp-10-164-9-21:~$ sudo ls /sys/kernel/config/usb_gadget/l4t/
UDC bDeviceProtocol bMaxPacketSize0 bcdUSB functions idVendor os_desc
bDeviceClass bDeviceSubClass bcdDevice configs idProduct max_speed strings

Could not find any listing in the name of ep0.

please compare your result with devkit case too.

I don’t have Xavier nx devkit at my end. Any other way?
As I informed in this thread, initially device mode was on usb2-0 node (by default) and it was micro-usb connector. That time also it was listing similar folders.

Could you share your dmesg with usb cable connected?

Please find the attached dmesg log when usb connected.
dmesg_log.txt (70.5 KB)