Auvidea J120 for JetPack 3.3 L4T 28.2.1 using TX2i USB Ports Not Working After Firmware Update?

Hi Guys,

I have gone through many posts and many forums regarding this issue and have decided to post one for myself as I’m getting no support for Auvidea as well as no responses from the posts I have put in. My issue is the following:

The Auvidea firmware marked “auvidea-kernel-J90-J120-v1.6” and the patch for USB3.0 marked “ChangesTX2J140.tar.gz” from the website https://auvidea.com/firmware does not work for the TX2i or atleast I can’t get it working even after following the directions Auvidea provides. I have followed them verbatim. I have flashed it with JetPack 3.3, 3.2.1, the old 3.2 which I kept the *.run file for. None of these attempts worked. I moved the TX2i after flashing it to the Dev Kit and it works fine, which leads me to believe that the dtb files and kernel didn’t really get flashed!!???

So, I’m at a bit of a standstill with this board. Auvidea claims that it works with 3.2, which I’ve tried. Other forum posts only talk about L4T 28.1 compatibility with v1.5 firmware which are posts from early 2018, and these posts also lead into discussions about v1.6 for 28.2. Auvidea has claimed directly it works with 28.2 which is great except I’m getting no real support from them on how to actually flash this thing.

My next step in the process would be to try and rebuild the kernel using the information I have and the JetsonHacks tutorials.

https://github.com/jetsonhacks/buildJetsonTX2Kernel
https://www.jetsonhacks.com/2018/03/22/build-kernel-modules-nvidia-jetson-tx2-2/

I know that Auvidea provides two files a “flash_via_jetpack.txt” and “readme.txt” one wants you to copy the BTC files and the other the kernel files and zimage and image files. There is also a source folder which I believe should replace what I get from Jetson Hacks so that it fixes the DTB for the J120 Carrier. This is a longshot, but I’m going to try it tomorrow.

I really think that there is a streamlined solution for this yet no one has come up with a simple straight forward explanation even after references multiple forums. The J120 has been around for quite some time and the TX2 and TX2i have been around for a good amount of time as well. Someone must have something about how to quickly flash these and get the USB ports working with the latest Auvidea v1.6 firmware and USB3.0 patch files.

Thanks,

I cannot provide an answer. You may find it useful to know the following…

zImage, and all of the compressed versions of Image are not used. On 32-bit platforms U-Boot used the compressed version. This went away in the transition to 64-bit.

Once the L4T version merged to use the same driver package for both the TX1 and TX2 (I think R28.1) most of the “/boot” content became unused, and instead moved to a partition. Some files still exist there as a legacy. The device tree is one of those files which is in “/boot” but is only legacy and is not used from there. Other than a few kernel parameters in extlinux.conf, and the Image file, most of what is in “/boot” is no longer relevant (it depends on which release you use, but almost everything which is even semi-ancient is now in a partition).

The device tree of a TX2 and TX2i will differ. Using a TX2 BSP for a carrier on which a TX2i module is mounted will likely fail. I do not know what needs to change for a TX2i versus a TX2.

Device tree, since no long in “/boot”, requires the flash tool for using a different tree. Details change depending on exact version of L4T (see “head -n 1 /etc/nv_tegra_release”).

I see, that is pretty sad considering these manufacturers are providing patches claiming that the platform works on the TX2 and Nvidia is marketing it as an industrial version of the TX2 where the changelist claims the two devices are identical but in fact the device kernels are different. The only different Nvidia claims is that one is rated for higher temp and more rugged environments.

I think that these manufacturers may be testing on the TX2 but not sure if they have ported to the TX2i yet, I suspect you can get it to work if you were to rebuilt the kernel yourself. I was going to attempt this using the Jetson Hacks page.

The TX2i is a different module than a TX2. Despite TX2i and TX2 having much in common it isn’t a surprise that time will be needed to make changes for the “i” version. I have no knowledge of where various carrier board manufacturers are in that process. I will speculate that most of the changes will be in device tree, and less will involve the actual kernel. Most likely the USB port of a TX2 and TX2i use exactly the same driver and only device tree is involved for your case. If you want to investigate how to make that update yourself, then this is what I would do: Look at the PINMUX spreadsheet, and compare USB device tree components.

Understood, I will look into the pinmux to see if there are any big differences and maybe its as easy as just switching a current limit higher to get the USB ports power in the dTB via the kernel. According to Nvidia atleast and arrow, they have a comparison and there is no major difference I see as the TX2i works perfectly on the dev kit if you connect it. This leads me to believe that the dtb from jetpack is obviously for the dev kit and since the connector is the same the pinouts must be the same and or nearly similar.

I will need to do some research to figure out what the pinmux maps are and maybe I can get the ports working.
Thanks for the support, if you find anything out on your end please let me know or definitely ask around the community for me, as such I will do the same.

Current limit is a standard for USB, so the specific value would be low on the probability. On the other hand, there may be a different power rail supplying the power, and so if that power rail is not on, then USB would stay off.

Would anyone happen to know how device tree differs between a TX2 and TX2i for enabling USB? Especially helpful would be knowing how the tree changes when using the Auvidea board.

Hi,
We have individual paths for TX2 and TX2i:
https://elinux.org/Jetson/TX2_USB

[TX2]
 hardware/nvidia/platform/t18x/common/kernel-dts/t18x-common-platforms/tegra186-quill-power-tree-p3310-1000-a00-00.dtsi
 [TX2i]
 hardware/nvidia/platform/t18x/common/kernel-dts/t18x-common-platforms/tegra186-quill-power-tree-p3489-1000-a00-00.dtsi
tegra186-quill-p3310-1000-a00-plugin-manager.dtsi(TX2) or tegra186-quill-p3489-1000-a00-plugin-manager.dtsi(TX2i)

Also individual DTBs https://elinux.org/Jetson/TX2_DTB#TX2