Restore my own image to new Orin Chip

Hello,

I’m using Jetson Orin NX and Jetpack 6.2. I’m using my Orin chip with a carrier board. When I tried to transfer the image I previously imported to the new chip, we noticed that the ‘board_spec’ in the first line of nvpartitionmap.txt was different, and that’s why the image transfer failed. To transfer the image, I transfer the base image to my new Orin chip, then take that image (backup), extract the board_spec from nvpartitionmap.txt, and copy it into my own image. Isn’t there an easier way? Is there any way that I can configure easily my image for my new Orin chip?

*** Please note that this reply is generated by LLM automatically ***

The issue you’re facing is due to the difference in the boardspec in the nvpartitionmap.txt file, which is causing the image transfer to fail. This is a common problem when transferring images between different carrier boards or modules.

To understand the root cause, let’s break down the components involved:

  1. Jetson Orin NX: A module that supports various interfaces, including HDMI and DP.
  2. Carrier Board: A customized board that connects to the Jetson Orin NX module, providing additional functionality and interfaces.
  3. nvpartitionmap.txt: A file that contains the partition layout and configuration for the Jetson module.
  4. boardspec: A parameter in the nvpartitionmap.txt file that specifies the carrier board configuration.

When you transfer an image from one carrier board to another, the boardspec value may change, causing the image transfer to fail. Your current workaround involves:

  1. Transferring the base image to the new Orin chip.
  2. Taking a backup of the image.
  3. Extracting the boardspec from the nvpartitionmap.txt file.
  4. Copying the boardspec into your own image.

While this approach works, it can be tedious and error-prone. Fortunately, there are alternative methods to configure your image for the new Orin chip:

Method 1: Use the jetson-io tool

The jetson-io tool allows you to configure the carrier board and module settings, including the boardspec. You can use this tool to generate a new nvpartitionmap.txt file with the correct boardspec value for your carrier board.

Method 2: Modify the nvpartitionmap.txt file manually

You can manually edit the nvpartitionmap.txt file to update the boardspec value to match your carrier board configuration. However, this approach requires careful attention to detail to avoid errors.

Method 3: Use a configuration file

Some Jetson modules, including the Orin NX, support configuration files that allow you to specify the carrier board settings, including the boardspec. You can create a configuration file with the correct settings and use it to configure your image.

Comparison of methods

Method Ease of use Error-prone
Workaround Medium High
jetson-io tool Easy Low
Manual editing Hard High
Configuration file Easy Low

In conclusion, while your current workaround is functional, using the jetson-io tool or a configuration file can simplify the process and reduce the risk of errors. If you’re not comfortable with manual editing, it’s recommended to use one of the alternative methods to configure your image for the new Orin chip.

As for the specific steps, I would recommend using the jetson-io tool, as it provides a user-friendly interface for configuring the carrier board and module settings. If you’re interested in using a configuration file, please provide more information about your carrier board and module, and I can help you create a configuration file with the correct settings.

*** Please give the thumbs up if you get answers you like. Or provide feedback to help us improve the answer. ***

Actually these answers are not useful for my problem. For example, is there any information on the original chip (physically) that would help me understand the board_spec? Or can I infer the board _pec from any information on the physical board?

By the way, is the board_spec different for each orin chip and is there unlimited possibility or is there a limited number of values that board_spec can take?

Hi,

How do you transfer the image?
Could you provide the commands or steps for us to review?

We provide the backup/restore script to massflash the back up image.
Please check README_backup_restore.txt whether meet your requirement.

Thanks

Hello @DavidDDD ,

I previously created an image of my Orin chip. Here are the steps I followed to transfer this image to the new chip:

1- I transfer the base image to the new Orin chip using cti_flash.sh.

2- I copy the base image from the new Orin chip (making a backup).

3- After copying the image, I open the Linux_for_Tegra/tools/backup_and_restore/images/nvpartitionmap.txt file and copy the entire first line (the first line is the board_spec line).

4- I overwrite the first line of the nvpartitionmap.txt file in the image file I saved from my old Orin chip with the copied line.

5- After completing the above steps, I transfer (restore) the image of my old chip to my new chip.

These steps are long and tedious. My goal is to understand the board_spec with a physical check before transferring any image to the new chip every time I switch to a new chip, and then edit the old chip image accordingly and transfer it to the new chip immediately.

@DavidDDD do you have any recommendations? I need help. Thank you so much.

Hi,

Thus, Just to confirm, do you want to get the new chip config directly?
To get the board config, please refer to Flashing Support — NVIDIA Jetson Linux Developer Guide.

Thanks

Hello @DavidDDD ,

Yes I want to learn my new chip’s BOARD_SPEC information which is given in nvpartitionmap.txt’s first line. I want to learn it directly which means learn it without backup the new chip.

Hi,

The method can help you get the BOARD_SPEC directly.

Thanks

Hello David,

Actually I couldn’t find how can I reach the BOARD_SPEC from that guide. Can you help little bit more? Thank you so much!

Hi,

Please refer to below steps:

  1. Place the Jetson target into recovery mode.
  2. Run this command to generate bootloader/cvm.bin and bootloader/chip_info.bin_bak:
$ sudo ./flash.sh --no-flash --no-systemimg <board> mmcblk0p1
  1. Retrieve the environment variables above using these commands:
$ cd bootloader 
$ BOARDID=$(./chkbdinfo -i cvm.bin) 
$ BOARDSKU=$(./chkbdinfo -k cvm.bin) 
$ FAB=$(./chkbdinfo -f cvm.bin) 
$ BOARDREV=$(./chkbdinfo -r cvm.bin) 
$ CHIP_SKU=$(./chkbdinfo -C chip_info.bin_bak) 
$ RAMCODE_ID=$( ./chkbdinfo -R chip_info.bin_bak) 
$ RAMCODE=$(echo "ibase=2; ${RAMCODE_ID//:/}" | bc)

Thanks

hello @DavidDDD

Thanks for your answers. Actually I have one more question. In my nvpartitionmap.txt first line is:

board_spec, 3767-301-0000-G.1-1-1-jetson-orin-nano

With your steps, I can reach ‘3767’, ‘301’, ‘0000’ ‘G.1’
But I couldnt reach ‘1-1’ which is after G-1 in my first line on nmvpartitionmap.txt

What is ‘1-1’ ? Is it default for all devices or it can be change like other parameters? How can I reach it?

Hello @DavidDDD

I’m waiting for your answer. Thank you very much.

Hello @DavidDDD,

I’m sorry if I’m disturbing you but this is a bit urgent for me. The sooner you answer the better :)

Hi,

Sorry for the late response.

1-1 is related to the fuselevel and chiprev, you need to run below commands to get the config.

# 1. Put the device in recovery mode

# 2 run below commands in ./Linux_for_Tegra
sudo ./build_l4t_bup.sh jetson-orin-nano-devkit external

Please refer to get more information

We notice you are using JP6.2.

Since JP 6.2 support massflash external backup image.

Since we don’t recommend to modify the `nvpartitionmap.txt`, please refer to tools/backup_restore/README_backup_restore.txt Workflow 3: To massflash the backup image instead.

Thanks

Hello @DavidDDD ,

Thanks for your support. Can I use massflash with boards which have different board specs (all of them jetson orin nx) ?

Hi,

If you mean different dram size (e.g P3767-0000 : 16GB P3767-0001 : 8GB), the massflash not support.

Thanks

Hi @DavidDDD ,

I mean their BOARDSKU or BOARDREV is different but BOARDID is same.

Hi,

The massflash not support.
The massflash support same BOARDSKU with different DRAM components.

Thanks

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.