how to get USB 3.0 at a custom [connecttech Orbity] carrier board at 5GB speed

The issue was separated from other threads by advice of DanieLLL.
What has been distinguished so far is
I) A way to enable USB 3.0 port functioning as with USB 2.0 speeds[ by the attached patch application which is a substitution of extlinux.conf file and copying the dtb to /boot ]
II) power-tree modification of dtsi [that method I have not had a chance to test yet, but it seems the same as the above]
II) the second method which is being tested

Please replace Linux_for_Tegra\bootloader\t186ref\BCT\tegra186-mb1-bct-pmic-quill-p3310-1000-c03.cfg in

https://developer.nvidia.com/embedded/dlc/l4t-jetson-tx2-driver-package-27-1

Reference:

<a target='_blank' rel='noopener noreferrer' href='https://devtalk.nvidia.com/default/topic/1001443/jetson-tx2/extlinux-conf-fdt-no-longer-used-for-dtb-file-specification-/post/5130849/#5130849'>https://devtalk.nvidia.com/default/topic/1001443/jetson-tx2/extlinux-conf-fdt-no-longer-used-for-dtb-file-specification-/post/5130849/#5130849</a>

USB_fix.zip (48.4 KB)

Hi Andrey1984, is it able to achieve 5Gbps in default carrier board?

It was said somewhere at documentations that USB 3.0 has that speed. [theoretical knowledge found from within documentations]

At the default carrier board it was somehow 120 fps as it stated for Zed camera performance[that is from documentations on Zed], as far as I know.
But with Usb 2.0 it results in Zed camera produces 4 fps approximately
As it is said in the Wikipedia:

USB 3.0 adds the new transfer rate referred to as SuperSpeed USB (SS)
 that can transfer data at up to 5 Gbit/s (625 MB/s)

I have no usb 3.0 devices locally. But at a remote place it was Zed tested with the default carrier board. Application named Zedfu. Which won’t start at commtech board complaining about USB 2.0 mode. So the answer is rather Yes. It is able to achieve a decent speed in default carrier board.

the below is the last response from comm tech guys:
There is a potential for that fix to work however we cannot guarantee
that it will fix the USB3 on our carrier boards. We are still working on a fix
for USB3, and have some preliminary results where the USB3 is working on the TX2,
however the fix is not yet stable. I will update you when we have a viable fix
when it is available.

References:

Hi Andrey1984,
More information. Which is your config set listed in adaptation guide?
[url]https://devtalk.nvidia.com/default/topic/1002494/jetson-tx2/usb-lane-mapping/post/5120632/#5120632[/url]

I shall determine which is the the config set according to the adaptation guide and I will update you soon.
It is rather the config 2 by now. Since it is the default. The cfg replacement with JetPack initiated flash OS to Jetson hasn’t resulted in usb port working. Tomorrow will provide more info and demsg after application of the power-tree patch.
Tegra_Linux_Driver_Package_TX2_Adaptation_Guide.pdf (897 KB)

hi Andrey,
Config #2 is same as default carrier board so the device tree should not need adaptation.
So now you have applied the config file:
[url]extlinux.conf: FDT No Longer Used for DTB File Specification? - Jetson TX2 - NVIDIA Developer Forums

But see the camera is detected as high-speed, not superspeed? Please attach the kernel log for reference.

@DaneLL
Config #2 is the same as it is installed by the default for the default carrier’s board . Jetpack 3.0 was used for flashing the Jetson but with the configuration file substituted.
And now the config is applied.
Just now I have not camera, but soon I will get it and will update the post there. I will execute lsusb -v and will attach its output there. It should display either it is in high-speed or in super-speed mode.
The attached there file is from the case when commtech carrier board is used: kern.log
kern.log (249 KB)
kern.log.1.log (476 KB)

Hi Andrey, this topic says commtech carrier board. In a previous thread, you talked about the connecttech Orbitty carrier board. Are those the same board or is this a different board from the Orbitty?

thank you for pointing that out

It seems that we got USB 3.0 Zed Camera application functioning somehow woth the instructions above.
I am just wondering how to know if the USB 3.0 Zed camera works in superspeed or a highspeed mode.
Shall that be determined based on fps rate somehow?

You can see the mode the system is logically using with “lsusb -t”. The right side gives the mode of operation (not necessarily what actually gets through, but it does determine clocks). It’ll be 1.5M, 12M, 480M, or 5000M (where “M” is megabit/sec…USB3 would be 5000M).

If you want to test the actual physical throughput, Passmark sells a USB 3.0 bandwidth tester which is a hardware USB loopback.

Making a USB 2.0 bandwidth tester would be pretty easy using a USB → serial adapter to hack up a serial loopback but I don’t see a cheap USB 3.0 → serial adapter to quickly make a hardware loopback. Alternatively, there are USB devices that can transmit up to 5Gbps that could be tested.

This:
http://www.passmark.com/support/usb3loopback_faq.htm
says:
“Super Speed USB3.0 ports connected directly to the motherboard: 3.8Gb/Sec.”

So, if the port can do that, it is in good shape. I only see 2 other USB bandwidth testers other than the Passmark one and they are both more expensive. Or you could just test streaming from the Zed camera as fast as possible.

I talked w/connecttech as well and last I heard, they were still working on USB 3.0. I’m guessing your Zed camera is working as USB 2.0? Does the lsusb -t show superspeed (5000)?

RobertKitt recently asked: “what could have caused” “i need the usb3.0 to fully work at full speed. my current hardware is: Tx2 + orbitty carrier board.”:

well i can't try the usb_fix because the device keeps rebooting.
what i did what replace the
Linux_for_Tegra\bootloader\t186ref\BCT\tegra186-mb1-bct-pmic-quill-p3310-1000-c03.cfg
with the one i downloaded from here:
https://devtalk.nvidia.com/default/topic/1001443/jetson-tx2/extlinux-conf-fdt-no-longer-used-for-dtb-file-specification-/post/5130849/#5130849
then i ran the command:
sudo ./flash.sh jetson-tx2 mmcblk0p1

resulted in

which seems to be a loop reboot

I am experiencing an issue applying this fix,
here is what i did:
replace this file:
Linux_for_Tegra\bootloader\t186ref\BCT\tegra186-mb1-bct-pmic-quill-p3310-1000-c03.cfg
with the one i downloaded from here:
https://devtalk.nvidia.com/default/topic/1001443/jetson-tx2/extlinux-conf-fdt-no-longer-used-for-dtb-file-specification-/post/5130849/#5130849
then i ran the command:
sudo ./flash.sh jetson-tx2 mmcblk0p1

and now the jetson keeps rebooting with the following console output:

(I am using the jetson Tx2 with the orbitty carrier)

It seems that filesystem has some errors:

mount: mount point /mnt/proc doe[    4.996459] EXT4-fs (mmcblk0p1): mounted filesystem with ordered data mode. Opts: (null)
s not exist
mount: mount point /mnt/sys does[    5.017717] Wake79 for irq=199
 not exist
mount: mount point /mnt/[    5.024237] Wake80 for irq=199
dev does not exist
cp: cannot create re[    5.030389] Wake81 for irq=199
gular file 'etc/resolv.conf': No such fi[    5.036880] Wake82 for irq=199
le or directory
[ 01:01:22 ] Switching [    5.043652] xhci-tegra 3530000.xhci: can't get usb3-0 phy (-517)
from initrd to actual rootfs
chroot: fa[    5.053231] tegra-usb-cd usb_cd: otg phy is not available yet
iled to run command '/sbin/init': No such file or direct[    5.063444] tegra-xudc-new 3550000.xudc: usb2 phy is not available yet
ory
[    5.077463] Kernel panic - not syncing: Attempted to kill init! exitcode=0x00007f00

Thanks I figured it out, and I feel kinda stupid for not doing it, but i didn’t populate the rootfs directory.

So yea I applied everything and when i connect say a usb3.0 dongle it doesn’t appear.
(i also had to apply the usb_fix)
this is what is being spammed in the dmesg log:

[  172.961378] xhci-tegra 3530000.xhci: Firmware timestamp: 2016-09-01 11:32:41 UTC, Version: 55.05 release
[  172.975296] xhci-tegra 3530000.xhci: exiting ELPG done
[  174.980490] xhci-tegra 3530000.xhci: entering ELPG
[  174.990627] xhci-tegra 3530000.xhci: entering ELPG done
[  174.995922] xhci-tegra 3530000.xhci: exiting ELPG
[  175.001373] xhci-tegra 3530000.xhci: Firmware timestamp: 2016-09-01 11:32:41 UTC, Version: 55.05 release
[  175.015305] xhci-tegra 3530000.xhci: exiting ELPG done
[  177.020511] xhci-tegra 3530000.xhci: entering ELPG
[  177.030629] xhci-tegra 3530000.xhci: entering ELPG done
[  177.035922] xhci-tegra 3530000.xhci: exiting ELPG
[  177.041360] xhci-tegra 3530000.xhci: Firmware timestamp: 2016-09-01 11:32:41 UTC, Version: 55.05 release
[  177.055265] xhci-tegra 3530000.xhci: exiting ELPG done
[  179.060514] xhci-tegra 3530000.xhci: entering ELPG
[  179.070644] xhci-tegra 3530000.xhci: entering ELPG done
[  179.075942] xhci-tegra 3530000.xhci: exiting ELPG
[  179.081412] xhci-tegra 3530000.xhci: Firmware timestamp: 2016-09-01 11:32:41 UTC, Version: 55.05 release
[  179.095324] xhci-tegra 3530000.xhci: exiting ELPG done
[  181.820538] xhci-tegra 3530000.xhci: entering ELPG
[  181.830668] xhci-tegra 3530000.xhci: entering ELPG done
[  181.835963] xhci-tegra 3530000.xhci: exiting ELPG
[  181.841412] xhci-tegra 3530000.xhci: Firmware timestamp: 2016-09-01 11:32:41 UTC, Version: 55.05 release
[  181.855332] xhci-tegra 3530000.xhci: exiting ELPG done

usb2.0 devices nicely show up though.

could you attach dmesg log?

Hi Robert,
Please refer to the post also:
[url]https://devtalk.nvidia.com/default/topic/1007448/jetson-tx2/differences-between-tx2-module-revisions/post/5145205/#5145205[/url]

thanks, i am looking at it right now to see if that helps in my case.

ok so I have been looking at that post, so should i remove:

# 5V0_HDMI_EN
    pmic.generic.1.block[2].type = 1; # I2C Type
    pmic.generic.1.block[2].i2c-controller-id = 0;
    pmic.generic.1.block[2].slave-add = 0xE8; # 7BIt:0x74
    pmic.generic.1.block[2].reg-data-size = 8;
    pmic.generic.1.block[2].reg-add-size = 8;
    pmic.generic.1.block[2].block-delay = 10;
    pmic.generic.1.block[2].count = 2;
    pmic.generic.1.block[2].commands[0].0x07.0xFF = 0xEF;
    pmic.generic.1.block[2].commands[1].0x03.0xFF = 0x10;

from Linux_for_Tegra_tx2/bootloader/t186ref/BCT/tegra186-mb1-bct-pmic-quill-p3310-1000-c04.cfg

or do i have to remove that from all these:

tegra186-mb1-bct-pmic-quill-p3310-1000-c00.cfg
tegra186-mb1-bct-pmic-quill-p3310-1000-c01.cfg
tegra186-mb1-bct-pmic-quill-p3310-1000-c02.cfg
tegra186-mb1-bct-pmic-quill-p3310-1000-c04.cfg

or maybe i don’t understand why you want me to refer to that post :)