(Using Jetpack 5.1.2 Jetson Linux 35.4.1 Kernel 5.10.120)
I do use a Xavier NX successfully as NCM network device connected via USB3 to have higher transfer rates than GbE.
I set all occurences of is_remote_wakeup to 0 in nv-l4t-usb-device-mode-start.sh so the USB device is telling the USB host it can’t do remote wakeup which is working pretty good, the appropriate bit is cleared.
Nevertheless a USB3 command verifier is still detecting “Function Remote Wake Capable bit is set” and is trying to test this which fails. After research I found these remote wake functions are not implemented in the uses kernel 5.10 (but I found occurences in later kernels).
Any idea if there are backports of newer kernels compatible with this version of Jetpack/Jetson Linux? I tried applying the changes manually but failed: Too much difference between the kernel sources.
Thanks in advance for any ideas how to proceed - I’m really out of options except setting the bit hard to “0” as soon as I found where in the kernel sources.
After digging through virtually thousands line of source code I have reason to believe the USB drivers of the kernel behaves totally correct and (at least this part) is fully compliant with the USB3 specifications according to usb.org.
It appears in our case (we have a device which is self-powered instead of bus-powered) the USB command verifier from usb.org is just checking the wrong bit returned by GetStatus D0 (instead of D1) which will eventually fail the compliance test: The self powered bit is being misunderstood as “remote wakeup capable”, which will perform a remote wakeup test - and this tests will fail.
The appropriate part of the kernel source is in file
/drivers/usb/gadget/udc/tegra-xudc.c (in function static int tegra_xudc_ep0_get_status)
My workaround is currently to manually clear the self-powered bit (which is strictly speaking wrong)
I see there a a few viewers of this post - maybe the solution will help somebody with a similar problem.