Device Tree Mods upgrading from AGX Xavier to AGX Orin

I am upgrading the NVIDIA chips in my unit from the AGX Xavier to the AGX Orin.

In the AGX Xavier unit using JetPack 5.1.2, I changed the following files for the device tree (kernel) for my carrier board:

.\sources\hardware\nvidia\platform\t19x\galen\kernel-dts\common\tegra194-audio-p2822-0000.dtsi
.\sources\hardware\nvidia\platform\t19x\galen\kernel-dts\common\tegra194-fixed-regulator-p2822-1000.dtsi
.\sources\hardware\nvidia\platform\t19x\galen\kernel-dts\common\tegra194-p2822-0000-a00.dtsi
.\sources\hardware\nvidia\platform\t19x\galen\kernel-dts\common\tegra194-p2822-disp.dtsi
.\sources\hardware\nvidia\platform\t19x\galen\kernel-dts\common\tegra194-p2888-0000-a00.dtsi
.\sources\hardware\nvidia\platform\t19x\galen\kernel-dts\common\tegra194-p2888-0001-p2822-0000-common.dtsi
.\sources\hardware\nvidia\platform\t19x\galen\kernel-dts\common\tegra194-p2888-p2822-pcie-plugin-manager.dtsi
.\sources\hardware\nvidia\platform\t19x\galen\kernel-dts\common\tegra194-plugin-manager-p2822-0000.dtsi
.\sources\hardware\nvidia\platform\t19x\galen\kernel-dts\common\tegra194-plugin-manager-p2888-0000.dtsi
.\sources\hardware\nvidia\platform\t19x\galen\kernel-dts\common\tegra194-power-tree-p2888-0001-p2822-1000.dtsi
.\sources\hardware\nvidia\platform\t19x\common\kernel-dts\t19x-common-modules\tegra194-camera-plugin-manager.dtsi
.\sources\hardware\nvidia\platform\t19x\common\kernel-dts\t19x-common-platforms\tegra194-platforms-eqos.dtsi
.\sources\hardware\nvidia\platform\t19x\common\kernel-dts\t19x-common-platforms\tegra194-pwm-fan.dtsi

Since the AGX Xavier was p2822, do I need to make the same modifications in the corresponding p3701 files? Is the carrier board p3737 (and corresponding files)?

But, I dont see any p3701 files in the source at .\sources\hardware\nvidia\platform\t19x\galen\kernel-dts\common. What files do I need to change for the Orin?

Thanks!

I am not sure what you are doing here.

These two boards are totally different SoC. You cannot directly ā€œupgradeā€ something from Xavier to Orin…

No, Xavier AGX is 2888. 2822 is the carrier board.

But, I dont see any p3701 files in the source at .\sources\hardware\nvidia\platform\t19x\galen\kernel-dts\common. What files do I need to change for the Orin?

Yes, because Orin is t23x SoC. You won’t find it in t19x SoC…

I didn’t mean directly upgrade. I have a custom unit with a AGX Xavier that I recently upgraded to JetPack 5.1.2 (the files I listed above) from JP 4.6.3.

I have the same custom unit (interfaces, etc), but with a different pinmux, that will also have JP 5.1.2. It didn’t have any Jetpack on it yet. Its a band new unit.

I was wondering if I could use the same changes of the p2822 files I had to make, but in the p3701 files for the Orin?

That helps that you mentioned the Orin was the \t23x, so I’ll search those source files to see if there are similar files that need to change, like I did with the t19x (AGX Xavier).

I was wondering if I could use the same changes of the p2822 files I had to change, but in the p3701 files for the Orin.

No, you cannot. These two are not totally comptaible.

1 Like

ok. So is the carrier board on the Orin p3737 or p3768?

p3737 is Orin AGX. P3768 is Orin NX/Nano devkit.

1 Like

You can refer to the document first.
https://docs.nvidia.com/jetson/archives/r35.4.1/DeveloperGuide/text/HR/JetsonModuleAdaptationAndBringUp/JetsonAgxOrinSeries.html

1 Like

I am still having trouble with upgrading the AGX Xavier to AGX Orin. I have all my changes from the source code from the AGX Xavier from the \hardware\nvidia\platform\t19x\galen\kernel-dts\common\ directory.
I am trying to make similar changes in the \t23x directory, but I can’t find similar files. So I haven’t changed anything.

I can flash and boot the Orin Dev with JP 5.1.2, but when I place the SoM into our unit, if fails. Boot log is here:
AUTO2_ttyUSB1.log (31.8 KB)

What I have done is change the pinmux according to our board and moved over those files to the correct locations. That’s it. I have not changed the device tree or recompiled the kernel.

I’ve also tried changing the ODMDATA to: ODMDATA=ā€œgbe-uphy-config-0,hsstp-lane-map-3.nvhs-config-0,hsio-uphy-config-0ā€ from a previous forum post.
Booting still fails and gives the same error in the logs.

What is next step? How I can use my AGX Xavier files on Orin to make this process easier?

Hi,

Just a clarification again.

There is no such thing called ā€œuse my AGX Xavier files on Orinā€. These two are totally not related. Your experience on Xavier does not work on Orin directly.

Your question is already replied in my previous comment. Read the document.

https://docs.nvidia.com/jetson/archives/r35.4.1/DeveloperGuide/text/HR/JetsonModuleAdaptationAndBringUp/JetsonAgxOrinSeries.html

Tell us what are you trying to enable here instead of ā€œI want to use my Xavier filesā€.
Honestly speaking, nobody knows what does ā€œuse my Xavier filesā€ mean…

For example, what interface you are going to enable here?
Your error log is just a typical ODMDATA is enabled but corresponding driver is not enabled case…

Sorry if I’m not being clear.

I have changed the files on the AGX Xavier in the ./hardware/nvidia/platform/t19x/galen directory. I want to change similar files for the AGX Orin in the ./hardware/nvidia/platform/t23x/concord directory.

Our changes for the device tree of the AGX Xavier (aside from cleanup of the USB pad configurations and the disabling unused items) was the voltage regulator (voltage line on USB) and the network device stuff (since our unit’s carrier board used a different chipset than the SDK).

Does that make more sense of what I’m trying to do?

Hi,

Your problem here is you are all talking about some ambiguous ā€œconceptsā€ only. What you should tell is the detail.

For example, ā€œdisabling something unused or cleanup of usb padā€.
What is ā€œunusedā€? What usb pad is not needed ? What is network device stuff?

What is the relationship of changing ODMDATA here? You just follow a post and you don’t know why you have to do that?

I totally understand you concepts here but I don’t really care about that. I just want to know what kind of things in detail you want to modify.

I am changing the ODMDATA because after searching the forums, I am experiencing the same error that other people have:

ERROR: camera-ip/isp5/isp5.c:1980 [isp5_pm_init] ā€œERROR: Failed to turn isp power onā€
BUG: core/init/init.c:85 [init_all] "* FIRMWARE INIT FAILED AT LEVEL 95 ***"

which does not occur when I use the Devkit, with the same image. That is where I started.

Hardware design is related here. What is the exact carrier board you are using?

Are you talking about you use a carrier board that is same as what you did on Xavier and directly on Orin module?

Yes, I am using the same carrier board for the Xavier that we are using on our new product with Orin.

It is working correctly on the Xavier unit, and want to replicate the changes make for the Xavier unit, on our unit with the Orin.

Please check with this document and list out all the things that do no exist on your carrier board.

Orin module is not actually compatible with Xavier carrier board. Lots of interface need to be changed or disabled.

Also, please clarify which file did you change this ODMDATA and how did you flash the board.

First I modified the p3701.conf.common file and flashed via the command:

sudo ./flash.sh jetson-agx-orin-devkit mmcblk0p1

(same command I use flashing the devkit, without issues)

Then I restored the p3701.conf.common file to its original state and created a new .conf file, cloned from jetson-agx-orin-devkit.conf, and changed the ODMDATA in my custom conf file. Flashed with the command:

sudo ./flash.sh auto2-parry mmcblk0p1

Same results in both cases.

Let me confirm this again first. Did you read the migration document I posted or not?

The Orin AGX only has fixed pattern which won’t directly work on Xaiver board.

For example, your change in ODMDATA only disabled the MGBE but the alternative is just a PCIe x8. This won’t happen to your Xavier AGX.
image

Wayne,

Let me help add some clarity. Our Gen 1 custom Carrier supports the Xavier AGX with Jetpack 5.1.2 and is only using the Gigabit Ethernet, USB 3.0, a PCIe x1 lane to support a M.2 NVMe SSD interface and a PCIe x4 endpoint.

Our Gen 2 custom Carrier has been updated to support the Orin AGX with Jetpack 5.1.2 with the identical interfaces listed above. We identified the pinout changes for the Orin AGX and incorporated them into the Gen 2 design.

So, when smcentee is saying it’s the same carrier board, what he means is that we are using the same interfaces between Gen 1 and Gen2. But, the hardware design was updated for Gen 2 to pick up the appropriate Orin AGX pins.

I hope this helps.