How to OTA update from JP4.6.2 to JP5.1.X

Hi all,

How was the OTA update tested from JetPack 4.6.X to JetPack 5.1.X?
From the documentation here it shoul be possible.

I have a devkit with clean JetPack 4.6.2 installation and I generated the OTA payload to update the board to JetPack 5.1.1, I used the commands in the guide but in the board I am getting this error:


nvidia@ubuntu:/ota/Linux_for_Tegra/tools/ota_tools/version_upgrade$ sudo ./nv_ota_start.sh /ota/ota_payload_package.tar.gz
Command: ./nv_ota_start.sh /ota/ota_payload_package.tar.gz
init_ota_log /ota_log
Create log file at /ota_log/ota_20231025-112235.log
OTA_LOG_FILE=/ota_log/ota_20231025-112235.log
Extract /ota/ota_payload_package.tar.gz
update_nv_boot_control_in_rootfs /ota_work
2888-400-0001-E.0-1-2-jetson-agx-xavier-devkit-
check_prerequisites
get_chip_id chip_id
decompress_ota_package ota_package.tar /ota_work
decompress_ota_package: start at Wed Oct 25 11:23:09 CST 2023
Sha1 checksum for /ota_work/ota_package.tar (e18af46646407960c90dff1f5e84f8f9dde4ea10) matches
decompress_ota_package: end at Wed Oct 25 11:23:36 CST 2023
nv_ota_update_with_layout_change.sh /dev/mmcblk0
Command: nv_ota_update_with_layout_change.sh /dev/mmcblk0
check_bsp_version /ota_work /dev/mmcblk0 BASE_VERSION
check_target_board /ota_work TARGET_BOARD
set_msi_emmc_min_size jetson-agx-xavier-devkit MSI_EMMC_MIN_SIZE
ota_check_rollback /ota_work jetson-agx-xavier-devkit R32-7
Version crc32 is not found
Error happens in calling “version_crc32_verify /ota_work/version.txt”
VER_b partition does not exist.
VER partition does not exist.
Check BCT/MB1/MB1_BCT partiton for fresh OTA
Checking BCT partition
Checking MB1 partition
Checking MB1_BCT partition
ver_check_res=0
ota_choose_images /ota_work jetson-agx-xavier-devkit R32-7
COMPATIBLE_SPEC=2888-400-0001-E.0-1-2-jetson-agx-xavier-devkit-
_BOARD_SPEC_NAME=2888-400-0001-E.0
Copy files from ./internal_device/images-R35A-R35i/2888-400-0001-E.0/ to ./internal_device/images-R35A-R35i/
Copy files from ./internal_device/images-R32x-R35i/2888-400-0001-E.0/ to ./internal_device/images-R32x-R35i/
Copy files from ./internal_device/images-R35-ToT/2888-400-0001-E.0/ to ./internal_device/images-R35-ToT/
ota_check_free_space_on_emmc
There is enough free space(340421120 bytes > 335544320 bytes) on eMMC
ota_check_partitions /ota_work
16384+0 records in
16384+0 records out
8388608 bytes (8.4 MB, 8.0 MiB) copied, 3.13464 s, 2.7 MB/s
boot_device_size=8388608
Checking partitions on the boot device through secondary GPT
Checking partition BCT in the ota index file
The version R32-7 is invalid
Partition BCT is missing or does not match in the ota index file, please check it
Error when checking boot device
Failed to run “ota_check_partitions /ota_work”


Both JetPack versions are clean and without modifications.

Commands that I used:


export BASE_BSP=/media/fallasg/SSD/jetpack/JetPack_4.6.2_Linux_JETSON_AGX_XAVIER_TARGETS/Linux_for_Tegra

export TARGET_BSP=/media/fallasg/SSD/jetpack/JetPack_5.1.1_Linux_JETSON_AGX_XAVIER_TARGETS/Linux_for_Tegra

sudo ./tools/ota_tools/version_upgrade/build_base_recovery_image.sh jetson-agx-xavier-devkit R32-7 ${BASE_BSP} ${BASE_BSP}/rootfs ${TARGET_BSP}

sudo -E ./tools/ota_tools/version_upgrade/l4t_generate_ota_package.sh jetson-agx-xavier-devkit R32-7


On the board running JetPack 4.6.2, using the OTA tools with the payload generated, I got the error ‘Partition BCT missing or does not match in the ota index’.

Is there something missing?

I have used OTA updates from JetPack 5.1.X to JetPack 5.1.X sucessfully, now I am trying from JetPack 4.6.X to JetPack 5.1.X.

Thanks.

Hi greivin.fallas,

Are you using “ota_tools_R35.3.1_aarch64.tbz2” package to generate the OTA payload?
Please follow below steps and try again:

$ export BASE_BSP=/home/carol/Desktop/JetPack-4.6.2_Xavier-NX/Linux_for_Tegra
$ export TARGET_BSP=/home/carol/Desktop/JetPack-5.1.1_Orin/Linux_for_Tegra
$ cd ${TARGET_BSP}/../
$ tar xpvf ota_tools_R35.3.1_aarch64.tbz2 -C ./
$ cd ${TARGET_BSP}
$ sudo ./tools/ota_tools/version_upgrade/build_base_recovery_image.sh jetson-agx-xavier-devkit R32-7 ${BASE_BSP} ${BASE_BSP}/rootfs ${TARGET_BSP}
$ sudo -E ./tools/ota_tools/version_upgrade/l4t_generate_ota_package.sh jetson-agx-xavier-devkit R32-7

Hi @carolyuu,

Yes I’m using the “ota_tools_R35.3.1_aarch64.tbz2” file, I tested your commands and got the next error after a while running the OTA payload generation:

...
...
...
./internal_device/images-R32x-R35i/mem_rcm_sigheader.bct.encrypt
./internal_device/images-R32x-R35i/mb1_t194_prod_r32_aligned_sigheader.bin.encrypt
./internal_device/images-R32x-R35i/mce_c10_prod_cr_sigheader.bin.encrypt
./internal_device/images-R32x-R35i/mb1_bct_MB1_sigheader.bct.encrypt
./internal_device/images-R32x-R35i/camera-rtcpu-t194-rce_sigheader.img.encrypt
./internal_device/images-R32x-R35i/2888-400-0001-D.0/
./internal_device/images-R32x-R35i/2888-400-0001-D.0/emmc_bootblob_ver.txt
./internal_device/images-R32x-R35i/2888-400-0001-D.0/br_bct_BR.bct
./internal_device/images-R32x-R35i/2888-400-0001-D.0/tegra194-p2888-0001-p2822-0000_sigheader.dtb.encrypt
./internal_device/images-R32x-R35i/2888-400-0001-D.0/tegra194-a02-bpmp-p2888-a02_lz4_sigheader.dtb.encrypt
./internal_device/images-R32x-R35i/2888-400-0001-D.0/br_bct_b_BR.bct
./internal_device/images-R32x-R35i/2888-400-0001-D.0/gpt_primary_1_3.bin
./internal_device/images-R32x-R35i/2888-400-0001-D.0/tegra194-p2888-0001-p2822-0000.dtb_sigheader.rec.encrypt
./internal_device/images-R32x-R35i/2888-400-0001-D.0/esp.img
./internal_device/images-R32x-R35i/2888-400-0001-D.0/flash.idx
./internal_device/images-R32x-R35i/2888-400-0001-D.0/mb1_cold_boot_bct_MB1_sigheader.bct.encrypt
./internal_device/images-R32x-R35i/2888-400-0001-D.0/gpt_secondary_1_3.bin
./internal_device/images-R32x-R35i/2888-400-0001-D.0/gpt_secondary_0_3.bin
./internal_device/system.img.sha1sum
./l4t_update_partitions.sh
./ota_backup_files_list.txt
./upgradetasklist.txt
ERROR: recovery image or recovery dtb for base system is not valid

Commands used:

  • export BASE_BSP=/media/fallasg/SSD/jetpack/JetPack_4.6.2_Linux_JETSON_AGX_XAVIER_TARGETS/Linux_for_Tegra
  • export TARGET_BSP=/media/fallasg/SSD/jetpack/JetPack_5.1.1_Linux_JETSON_AGX_XAVIER_TARGETS/Linux_for_Tegra
  • cd ${TARGET_BSP}/…/
  • tar xpvf ota_tools_R35.3.1_aarch64.tbz2 -C ./
  • cd ${TARGET_BSP}
  • sudo ./tools/ota_tools/version_upgrade/l4t_generate_ota_package.sh jetson-agx-xavier-devkit R32-7 (here I got an error that BASE_BSP is not set, adding -E solves that)

Why is ‘l4t_generate_ota_package.sh’ being used twice? It seems that the “build_base_recovery_image.sh” is required.

Which ota_tools should be executed in the Xavier running JetPack 4.6.2?

Hi greivin.fallas,

Sorry, I copy the wrong command.
Please check command again and try it.

OTA update from r32.7.2 to r35.3.1, you need use r35.3.1ota tool package to generate the ota payload package.
Above command are run on your host Ubuntu PC.
After generate the ota payload, run below command on Xavier device:

1. Review /boot/extlinux/extlinux.conf:
"INITRD /boot/initrd" is set under the LINUX /boot/Image
"root=/dev/mmcblk0p1 rw rootwait rootfstype=ext4" add into the APPEND line.
2. copy ota_tools_R35.3.1_aarch64.tbz2 and ota_payload_package.tar.gz to Jetson device
3. Set WORKDIR
$ WORKDIR=/home/nvidia/OTA
$ tar xpvf ota_tools_R35.3.1_aarch64.tbz2 -C $WORKDIR
$ sudo mkdir /ota
$ sudo cp ota_payload_package.tar.gz /ota
$ cd ${WORKDIR}/Linux_for_Tegra/tools/ota_tools/version_upgrade
$ sudo ./nv_ota_start.sh /dev/mmcblk0 /ota/ota_payload_package.tar.gz
$ sudo reboot

Hi @carolyuu,

I used the commands from the first answer to generate the payload so I think the payload is correct.

Since the running Jetpack is 4.6.2, I tried using the OTA tools from R32.7.2 and I got this error after following the commands from the second reply:

Test with: ota_tools_R32.7.2_aarch64.tbz2

nvidia@ubuntu:~/OTA/Linux_for_Tegra/tools/ota_tools/version_upgrade$ sudo ./nv_ota_start.sh /dev/mmcblk0 /ota/ota_payload_package.tar.gz
Command: ./nv_ota_start.sh /dev/mmcblk0 /ota/ota_payload_package.tar.gz
init_ota_log /ota_log
Create log file at /ota_log/ota_20231027-004402.log
OTA_LOG_FILE=/ota_log/ota_20231027-004402.log
Extract /ota/ota_payload_package.tar.gz
update_nv_boot_control_in_rootfs /ota_work
2888-400-0001-E.0-1-2-jetson-agx-xavier-devkit-
check_prerequisites
get_chip_id chip_id
decompress_ota_package ota_package.tar /ota_work
decompress_ota_package: start at Fri Oct 27 00:44:37 CST 2023
Sha1 checksum for /ota_work/ota_package.tar (144b4aa148551dbfdcaf8fc977180f9eab62f55d) matches
decompress_ota_package: end at Fri Oct 27 00:45:05 CST 2023
nv_ota_update_with_layout_change.sh /dev/mmcblk0
Command: nv_ota_update_with_layout_change.sh /dev/mmcblk0
check_bsp_version /ota_work /dev/mmcblk0 BASE_VERSION
check_target_board /ota_work TARGET_BOARD
set_msi_emmc_min_size jetson-agx-xavier-devkit MSI_EMMC_MIN_SIZE
ota_check_rollback /ota_work jetson-agx-xavier-devkit R32-7
CRC32 for version file /ota_work/version.txt does not match (1474 != 972198013)
Error happens in calling "version_crc32_verify /ota_work/version.txt"
VER_b partition does not exist.
VER partition does not exist.
Check BCT/MB1/MB1_BCT partiton for fresh OTA
Checking BCT partition
Checking MB1 partition
Checking MB1_BCT partition
ver_check_res=0
ota_choose_images /ota_work jetson-agx-xavier-devkit R32-7
COMPATIBLE_SPEC=2888-400-0001-E.0-1-2-jetson-agx-xavier-devkit-
_BOARD_SPEC_NAME=2888-400-0001-E.0
Copy files from ./internal_device/images-R35A-R35i/2888-400-0001-E.0/ to ./internal_device/images-R35A-R35i/
Copy files from ./internal_device/images-R32x-R35i/2888-400-0001-E.0/ to ./internal_device/images-R32x-R35i/
Copy files from ./internal_device/images-R35-ToT/2888-400-0001-E.0/ to ./internal_device/images-R35-ToT/
ota_check_free_space_on_emmc
There is enough free space(340421120 bytes > 335544320 bytes) on eMMC
ota_check_partitions /ota_work
16384+0 records in
16384+0 records out
8388608 bytes (8.4 MB, 8.0 MiB) copied, 2.90488 s, 2.9 MB/s
boot_device_size=8388608
Checking partitions on the boot device through secondary GPT
Checking partition BCT in the ota index file
The version R32-7 is invalid
Partition BCT is missing or does not match in the ota index file, please check it
Error when checking boot device
Failed to run "ota_check_partitions /ota_work"

I also tried your commands as is using ota_tools_R32.7.3_aarch64.tbz2

Test with: ota_tools_R32.7.3_aarch64.tbz2

nvidia@ubuntu:~/OTA/Linux_for_Tegra/tools/ota_tools/version_upgrade$ sudo ./nv_ota_start.sh /dev/mmcblk0 /ota/ota_payload_package.tar.gz
Command: ./nv_ota_start.sh /dev/mmcblk0 /ota/ota_payload_package.tar.gz
init_ota_log /ota_log
Create log file at /ota_log/ota_20231027-005158.log
OTA_LOG_FILE=/ota_log/ota_20231027-005158.log
Extract /ota/ota_payload_package.tar.gz
update_nv_boot_control_in_rootfs /ota_work
2888-400-0001-E.0-1-2-jetson-agx-xavier-devkit-
check_prerequisites
get_chip_id chip_id
decompress_ota_package ota_package.tar /ota_work
decompress_ota_package: start at Fri Oct 27 00:52:32 CST 2023
Sha1 checksum for /ota_work/ota_package.tar (144b4aa148551dbfdcaf8fc977180f9eab62f55d) matches
decompress_ota_package: end at Fri Oct 27 00:52:59 CST 2023
nv_ota_update_with_layout_change.sh /dev/mmcblk0
Command: nv_ota_update_with_layout_change.sh /dev/mmcblk0
check_bsp_version /ota_work /dev/mmcblk0 BASE_VERSION
check_target_board /ota_work TARGET_BOARD
set_msi_emmc_min_size jetson-agx-xavier-devkit MSI_EMMC_MIN_SIZE
ota_check_rollback /ota_work jetson-agx-xavier-devkit R32-7
CRC32 for version file /ota_work/version.txt does not match (1474 != 972198013)
Error happens in calling "version_crc32_verify /ota_work/version.txt"
16384+0 records in
16384+0 records out
8388608 bytes (8.4 MB, 8.0 MiB) copied, 8.09649 s, 1.0 MB/s
boot_device_size=8388608
VER_b's offset is 2203648 and size is 65536
VER's offset is 2269184 and size is 65536
VER_b version: branch:32 revision:7.2 major.minor:7.2
VER version: branch:32 revision:7.2 major.minor:7.2
Version rollback is not permitted
ver_check_res=1
Failed to run "ota_check_rollback /ota_work jetson-agx-xavier-devkit R32-7"

Not sure if there is something different on our running Xavier AGX, adding information:

  • Jetson AGX Xavier, flashed without arguments (ROOTFS_AB is not enabled)

  • Linux nvidia@ubuntu:~$ uname -a
    Linux ubuntu 4.9.253-tegra #1 SMP PREEMPT Sun Apr 17 02:37:44 PDT 2022 aarch64 aarch64 aarch64 GNU/Linux

  • nvidia@ubuntu:~$ cat /etc/nv_tegra_release
    R32 (release), REVISION: 7.2, GCID: 30192233, BOARD: t186ref, EABI: aarch64, DATE: Sun Apr 17 09:53:50 UTC 2022

  • nvidia@ubuntu:~$ cat /proc/meminfo
    MemTotal: 16204376 kB
    MemFree: 7604216 kB
    MemAvailable: 15308304 kB
    Buffers: 28040 kB
    Cached: 7697460 kB
    SwapCached: 0 kB
    Active: 3295788 kB
    Inactive: 4737468 kB
    Active(anon): 309284 kB
    Inactive(anon): 28104 kB
    Active(file): 2986504 kB
    Inactive(file): 4709364 kB
    Unevictable: 0 kB
    Mlocked: 0 kB
    SwapTotal: 8102176 kB
    SwapFree: 8102176 kB
    Dirty: 0 kB
    Writeback: 0 kB
    AnonPages: 294064 kB
    Mapped: 199140 kB
    Shmem: 29636 kB
    Slab: 342656 kB
    SReclaimable: 264320 kB
    SUnreclaim: 78336 kB
    KernelStack: 7568 kB
    PageTables: 6344 kB
    NFS_Unstable: 0 kB
    Bounce: 0 kB
    WritebackTmp: 0 kB
    CommitLimit: 16204364 kB
    Committed_AS: 2265880 kB
    VmallocTotal: 263061440 kB
    VmallocUsed: 0 kB
    VmallocChunk: 0 kB
    AnonHugePages: 88064 kB
    ShmemHugePages: 0 kB
    ShmemPmdMapped: 0 kB
    NvMapMemFree: 0 kB
    NvMapMemUsed: 27724 kB
    CmaTotal: 753664 kB
    CmaFree: 688024 kB
    HugePages_Total: 0
    HugePages_Free: 0
    HugePages_Rsvd: 0
    HugePages_Surp: 0
    Hugepagesize: 2048 kB

  • nvidia@ubuntu:~$ df -h
    Filesystem Size Used Avail Use% Mounted on
    /dev/mmcblk0p1 28G 14G 13G 54% /
    none 7.4G 0 7.4G 0% /dev
    tmpfs 7.8G 4.0K 7.8G 1% /dev/shm
    tmpfs 7.8G 29M 7.7G 1% /run
    tmpfs 5.0M 4.0K 5.0M 1% /run/lock
    tmpfs 7.8G 0 7.8G 0% /sys/fs/cgroup
    tmpfs 1.6G 12K 1.6G 1% /run/user/120
    tmpfs 1.6G 0 1.6G 0% /run/user/1000

  • nvidia@ubuntu:~$ sudo nvbootctrl -t rootfs dump-slots-info
    Error: RootFS A/B is not enabled.

I hope this helps to figure out what is different in the setups.

Hi greivin.fallas,

Please re-flash r32.7.2 on your Xavier and run ota update again.
You should scp “ota_tools_R35.3.1_aarch64.tbz2” ota tool to Xavier, not r32.7.2 ota tools.
[Updated my previous command]

Hi @carolyuu,

Tested everything again with the “ota_tools_R35.3.1_aarch64.tbz2” tools and it worked, adding log as reference in case someone else find it useful:

nvidia@ubuntu:~$ mkdir OTA
nvidia@ubuntu:~$ WORKDIR=/home/nvidia/OTA
nvidia@ubuntu:~$ tar xpvf ota_tools_R35.3.1_aarch64.tbz2 -C $WORKDIR
Linux_for_Tegra/
Linux_for_Tegra/p2822-0000+p2888-0008-R32x-R35i.conf
Linux_for_Tegra/tools/
Linux_for_Tegra/tools/ota_tools/
Linux_for_Tegra/tools/ota_tools/version_upgrade/
Linux_for_Tegra/tools/ota_tools/version_upgrade/kernel_bootctrl.bin.update
Linux_for_Tegra/tools/ota_tools/version_upgrade/nv_ota_update.sh
Linux_for_Tegra/tools/ota_tools/version_upgrade/nv_ota_log.sh
Linux_for_Tegra/tools/ota_tools/version_upgrade/nv_ota_common_utils.func
Linux_for_Tegra/tools/ota_tools/version_upgrade/BOOTAA64_r35_1.efi
Linux_for_Tegra/tools/ota_tools/version_upgrade/nv_ota_start.sh
Linux_for_Tegra/tools/ota_tools/version_upgrade/ota_check_partitions.sh
Linux_for_Tegra/tools/ota_tools/version_upgrade/nv_ota_decompress_package.sh
Linux_for_Tegra/tools/ota_tools/version_upgrade/l4t_generate_ota_package.sh
Linux_for_Tegra/tools/ota_tools/version_upgrade/nv_ota_update_without_layout_change.sh
Linux_for_Tegra/tools/ota_tools/version_upgrade/ota_backup_files_list.txt
Linux_for_Tegra/tools/ota_tools/version_upgrade/nv_ota_customer.conf
Linux_for_Tegra/tools/ota_tools/version_upgrade/nv_ota_validate.sh
Linux_for_Tegra/tools/ota_tools/version_upgrade/ota_board_specs.conf
Linux_for_Tegra/tools/ota_tools/version_upgrade/upgradetasklist.txt.jetson-xavier-nx-devkit-emmc.R32x_to_R35-ToT_emmc
Linux_for_Tegra/tools/ota_tools/version_upgrade/kernel_bootctrl.bin.reset
Linux_for_Tegra/tools/ota_tools/version_upgrade/NOTICE.uefi
Linux_for_Tegra/tools/ota_tools/version_upgrade/upgradetasklist.txt.jetson-agx-xavier-industrial.R32x_to_R35-ToT_emmc
Linux_for_Tegra/tools/ota_tools/version_upgrade/l4t_update_partitions.sh
Linux_for_Tegra/tools/ota_tools/version_upgrade/nv_ota_rootfs_updater.sh
Linux_for_Tegra/tools/ota_tools/version_upgrade/upgradetasklist.txt.jetson-agx-xavier-devkit.R32x_to_R35-ToT_emmc
Linux_for_Tegra/tools/ota_tools/version_upgrade/nv_ota_update_alt_part.func
Linux_for_Tegra/tools/ota_tools/version_upgrade/ota_multi_board_specs.sh
Linux_for_Tegra/tools/ota_tools/version_upgrade/nv_ota_preserve_data.sh
Linux_for_Tegra/tools/ota_tools/version_upgrade/nv_ota_run_tasks.sh
Linux_for_Tegra/tools/ota_tools/version_upgrade/nv_update_alt_part.sh
Linux_for_Tegra/tools/ota_tools/version_upgrade/nv_ota_common.func
Linux_for_Tegra/tools/ota_tools/version_upgrade/nv_ota_update_all_in_recovery.sh
Linux_for_Tegra/tools/ota_tools/version_upgrade/kernel_bootctrl.bin.normal
Linux_for_Tegra/tools/ota_tools/version_upgrade/uefi_jetson_r35_1.bin
Linux_for_Tegra/tools/ota_tools/version_upgrade/nv_ota_update_rootfs_in_recovery.sh
Linux_for_Tegra/tools/ota_tools/version_upgrade/build_base_recovery_image.sh
Linux_for_Tegra/tools/ota_tools/version_upgrade/nv_ota_check_version.sh
Linux_for_Tegra/tools/ota_tools/version_upgrade/ota_validate_params.sh
Linux_for_Tegra/tools/ota_tools/version_upgrade/nv_ota_update_with_layout_change.sh
Linux_for_Tegra/p2822-0000+p2888-0004-R35A-R35i.conf
Linux_for_Tegra/jetson-agx-xavier-devkit-R32x-R35i.conf
Linux_for_Tegra/jetson-xnx-devkit-emmc-R32i.conf
Linux_for_Tegra/jaxi-R35A-R35i.conf
Linux_for_Tegra/p3509-0000+p3668-0001-qspi-emmc-R35A-R35i.conf
Linux_for_Tegra/bootloader/
Linux_for_Tegra/bootloader/t186ref/
Linux_for_Tegra/bootloader/t186ref/BCT/
Linux_for_Tegra/bootloader/t186ref/BCT/tegra186-mb1-bct-misc-si-l4t-r32i.cfg
Linux_for_Tegra/bootloader/t186ref/cfg/
Linux_for_Tegra/bootloader/t186ref/cfg/flash_l4t_t194_spi_emmc_p3668_rootfs_ab_R35A_R35i.xml
Linux_for_Tegra/bootloader/t186ref/cfg/flash_l4t_t194_spi_emmc_jaxi_R32x_R35i.xml
Linux_for_Tegra/bootloader/t186ref/cfg/flash_t194_sdmmc_rootfs_ab_R35A_R35i.xml
Linux_for_Tegra/bootloader/t186ref/cfg/flash_l4t_t194_spi_emmc_p3668_rootfs_ab_R32x_R35i.xml
Linux_for_Tegra/bootloader/t186ref/cfg/flash_l4t_t194_spi_emmc_jaxi_rootfs_ab_R32x_R35i.xml
Linux_for_Tegra/bootloader/t186ref/cfg/flash_l4t_t194_spi_emmc_p3668_R35A_R35i.xml
Linux_for_Tegra/bootloader/t186ref/cfg/flash_t194_sdmmc_R35A_R35i.xml
Linux_for_Tegra/bootloader/t186ref/cfg/flash_l4t_t194_spi_emmc_jaxi_R35A_R35i.xml
Linux_for_Tegra/bootloader/t186ref/cfg/flash_t194_sdmmc_R32x_R35i.xml
Linux_for_Tegra/bootloader/t186ref/cfg/flash_t194_sdmmc_rootfs_ab_R32x_R35i.xml
Linux_for_Tegra/bootloader/t186ref/cfg/flash_l4t_t194_spi_emmc_p3668_R32x_R35i.xml
Linux_for_Tegra/bootloader/t186ref/cfg/flash_l4t_t194_spi_emmc_p3668_rootfs_ab_R32i.xml
Linux_for_Tegra/bootloader/t186ref/cfg/flash_l4t_t194_spi_emmc_jaxi_rootfs_ab_R35A_R35i.xml
Linux_for_Tegra/bootloader/t186ref/cfg/flash_l4t_t194_spi_emmc_p3668_R32i.xml
Linux_for_Tegra/p3509-0000+p3668-0001-qspi-emmc-R32x-R35i.conf
Linux_for_Tegra/p3509-0000+p3668-0001-qspi-emmc-R32i.conf
Linux_for_Tegra/jaxi-R32x-R35i.conf
Linux_for_Tegra/jetson-xnx-devkit-emmc-R32x-R35i.conf
Linux_for_Tegra/p2822-0000+p2888-0008-R35A-R35i.conf
Linux_for_Tegra/jetson-agx-xavier-devkit-R35A-R35i.conf
Linux_for_Tegra/p2822-0000+p2888-0004-R32x-R35i.conf
Linux_for_Tegra/jetson-xnx-devkit-emmc-R35A-R35i.conf
nvidia@ubuntu:~$ cd ${WORKDIR}/Linux_for_Tegra/tools/ota_tools/version_upgrade
nvidia@ubuntu:~/OTA/Linux_for_Tegra/tools/ota_tools/version_upgrade$ sudo ./nv_ota_start.sh /dev/mmcblk0 /ota/ota_payload_package.tar.gz
[sudo] password for nvidia: 
Command: ./nv_ota_start.sh /dev/mmcblk0 /ota/ota_payload_package.tar.gz
Current rootfs is on /dev/mmcblk0
init_ota_log /ota_log
Create log file at /ota_log/ota_20231027-083236.log
OTA_LOG_FILE=/ota_log/ota_20231027-083236.log
Extract /ota/ota_payload_package.tar.gz
update_nv_boot_control_in_rootfs /ota_work
2888-400-0001-E.0-1-2-jetson-agx-xavier-devkit-
check_prerequisites
decompress_ota_package ota_package.tar /ota_work
decompress_ota_package: start at Fri Oct 27 08:33:09 CST 2023
Sha1 checksum for /ota_work/ota_package.tar (144b4aa148551dbfdcaf8fc977180f9eab62f55d) matches
decompress_ota_package: end at Fri Oct 27 08:33:41 CST 2023
nv_ota_update_with_layout_change.sh /dev/mmcblk0
Command: nv_ota_update_with_layout_change.sh /dev/mmcblk0
check_bsp_version /ota_work BASE_VERSION
check_target_board /ota_work TARGET_BOARD
set_msi_emmc_min_size jetson-agx-xavier-devkit MSI_EMMC_MIN_SIZE
ota_check_rollback /ota_work jetson-agx-xavier-devkit R32-7
OTA_PACKAGE version: branch:35 revision:3.1 major.minor:3.1
16384+0 records in
16384+0 records out
8388608 bytes (8.4 MB, 8.0 MiB) copied, 2.22052 s, 3.8 MB/s
boot_device_size=8388608
VER_b's offset is 2203648 and size is 65536
VER's offset is 2269184 and size is 65536
VER_b version: branch:32 revision:7.2 major.minor:7.2
VER version: branch:32 revision:7.2 major.minor:7.2
Check BCT/MB1/MB1_BCT partiton for fresh OTA
Checking BCT partition
Checking MB1 partition
Checking MB1_BCT partition
ver_check_res=0
ota_choose_images /ota_work
COMPATIBLE_SPEC=2888-400-0001-E.0-1-2-jetson-agx-xavier-devkit-
TEGRA_CHIPID=0x19
_BOARD_SPEC_NAME=2888-400-0001-E.0
Copy files from ./images-R35A-R35i/2888-400-0001-E.0/ to ./images-R35A-R35i/
Copy files from ./images-R32x-R35i/2888-400-0001-E.0/ to ./images-R32x-R35i/
Copy files from ./images-R35-ToT/2888-400-0001-E.0/ to ./images-R35-ToT/
ota_check_free_space_on_emmc
There is enough free space(654993920 bytes > 335544320 bytes) on eMMC
ota_check_partitions /ota_work
16384+0 records in
16384+0 records out
8388608 bytes (8.4 MB, 8.0 MiB) copied, 5.87719 s, 1.4 MB/s
boot_device_size=8388608
Checking partitions on the boot device through secondary GPT
Checking partition BCT in the ota index file
The start and end offset for BCT partition matches
Checking partition mb1 in the ota index file
The start and end offset for mb1 partition matches
Checking partition mb1_b in the ota index file
The start and end offset for mb1_b partition matches
Checking partition MB1_BCT in the ota index file
The start and end offset for MB1_BCT partition matches
Checking partition MB1_BCT_b in the ota index file
The start and end offset for MB1_BCT_b_rsv partition matches
Checking partition MEM_BCT in the ota index file
The start and end offset for MEM_BCT partition matches
Checking partition MEM_BCT_b in the ota index file
The start and end offset for MEM_BCT_b_rsv partition matches
Checking partition spe-fw in the ota index file
The start and end offset for spe-fw partition matches
Checking partition spe-fw_b in the ota index file
The start and end offset for spe-fw_b_rsv partition matches
Checking partition mb2 in the ota index file
The start and end offset for mb2 partition matches
Checking partition mb2_b in the ota index file
The start and end offset for mb2_b_rsv partition matches
Checking partition mts-preboot in the ota index file
The start and end offset for mts-preboot partition matches
Checking partition mts-preboot_b in the ota index file
The start and end offset for mts-preboot_b_rsv partition matches
Checking partition SMD in the ota index file
The start and end offset for SMD partition matches
Checking partition SMD_b in the ota index file
The start and end offset for SMD_b partition matches
Checking partitions on the user device through primary GPT
Checking partition APP in the ota index file
The start and end offset for APP partition matches
Checking partition mts-mce in the ota index file
The start and end offset for mts-mce partition matches
Checking partition mts-mce_b in the ota index file
The start and end offset for mts-mce_b_rsv partition matches
Checking partition mts-proper in the ota index file
The start and end offset for mts-proper partition matches
Checking partition mts-proper_b in the ota index file
The start and end offset for mts-proper_b_rsv partition matches
Checking partition cpu-bootloader in the ota index file
The start and end offset for cpu-bootloader partition matches
Checking partition cpu-bootloader_b in the ota index file
The start and end offset for cpu-bootloader_b_rsv partition matches
Checking partition bootloader-dtb in the ota index file
The start and end offset for bootloader-dtb partition matches
Checking partition bootloader-dtb_b in the ota index file
The start and end offset for bootloader-dtb_b_rsv partition matches
Checking partition secure-os in the ota index file
The start and end offset for secure-os partition matches
Checking partition secure-os_b in the ota index file
The start and end offset for secure-os_b_rsv partition matches
Checking partition eks in the ota index file
The start and end offset for eks partition matches
Checking partition eks_b in the ota index file
The start and end offset for eks_b_rsv partition matches
Checking partition bpmp-fw in the ota index file
The start and end offset for bpmp-fw partition matches
Checking partition bpmp-fw_b in the ota index file
The start and end offset for bpmp-fw_b_rsv partition matches
Checking partition bpmp-fw-dtb in the ota index file
The start and end offset for bpmp-fw-dtb partition matches
Checking partition bpmp-fw-dtb_b in the ota index file
The start and end offset for bpmp-fw-dtb_b_rsv partition matches
Checking partition xusb-fw in the ota index file
The start and end offset for xusb-fw partition matches
Checking partition xusb-fw_b in the ota index file
The start and end offset for xusb-fw_b_rsv partition matches
Checking partition rce-fw in the ota index file
The start and end offset for rce-fw partition matches
Checking partition rce-fw_b in the ota index file
The start and end offset for rce-fw_b_rsv partition matches
Checking partition adsp-fw in the ota index file
The start and end offset for adsp-fw partition matches
Checking partition adsp-fw_b in the ota index file
The start and end offset for adsp-fw_b_rsv partition matches
Checking partition sce-fw in the ota index file
The start and end offset for sce-fw partition matches
Checking partition sce-fw_b in the ota index file
The start and end offset for sce-fw_b_rsv partition matches
Checking partition sc7 in the ota index file
The start and end offset for sc7 partition matches
Checking partition sc7_b in the ota index file
The start and end offset for sc7_b_rsv partition matches
Checking partition BMP in the ota index file
The start and end offset for BMP partition matches
Checking partition BMP_b in the ota index file
The start and end offset for BMP_b partition matches
Checking partition recovery in the ota index file
The start and end offset for recovery_rsv partition matches
Checking partition recovery-dtb in the ota index file
The start and end offset for recovery-dtb_rsv partition matches
Checking partition kernel-bootctrl in the ota index file
The start and end offset for kernel-bootctrl partition matches
Checking partition kernel-bootctrl_b in the ota index file
The start and end offset for kernel-bootctrl_b partition matches
Checking partition kernel in the ota index file
The start and end offset for kernel partition matches
Checking partition kernel_b in the ota index file
The start and end offset for kernel_b partition matches
Checking partition kernel-dtb in the ota index file
The start and end offset for kernel-dtb partition matches
Checking partition kernel-dtb_b in the ota index file
The start and end offset for kernel-dtb_b partition matches
Checking partition CPUBL-CFG in the ota index file
The start and end offset for CPUBL-CFG partition matches
Checking partition RP1 in the ota index file
The start and end offset for RP1 partition matches
Checking partition RP2 in the ota index file
The start and end offset for RP2 partition matches
enable_a_b_redundancy
both_slots_valid
write_base_recovery /ota_work
Verifying image /ota_work/recovery.img.R32x with sha1 chksum file /ota_work/recovery.img.R32x.sha1sum
Sha1 checksum for /ota_work/recovery.img.R32x (3eca3b7ed1e7275d4228512c12720a6944315122) matches
Verifying image /ota_work/recovery.dtb.R32x with sha1 chksum file /ota_work/recovery.dtb.R32x.sha1sum
Sha1 checksum for /ota_work/recovery.dtb.R32x (8ab11d2b67f517daf1c6e0b50af0a4e6507d35e6) matches
Backed up recovery and recovery-dtb partition under /ota_work before writing them
Writing base recovery image into /dev/mmcblk0p30
Read back base recovery image into /ota_work/image.tmp and verify it
Reading 47284224 bytes from /dev/mmcblk0p30: 1KB block=46176 remainder=0 offset=47284224
Verifying image /ota_work/image.tmp with sha1 chksum file /ota_work/recovery.img.R32x.sha1sum
Sha1 checksum for /ota_work/image.tmp (3eca3b7ed1e7275d4228512c12720a6944315122) matches
Writing base recovery dtb into /dev/mmcblk0p31
Read back base recovery dtb into /ota_work/image.tmp and verify it
Reading 288624 bytes from /dev/mmcblk0p31: 1KB block=281 remainder=880 offset=287744
Verifying image /ota_work/image.tmp with sha1 chksum file /ota_work/recovery.dtb.R32x.sha1sum
Sha1 checksum for /ota_work/image.tmp (8ab11d2b67f517daf1c6e0b50af0a4e6507d35e6) matches
write_kernel_bootctrl /ota_work
128+0 records in
128+0 records out
65536 bytes (66 kB, 64 KiB) copied, 0.0115158 s, 5.7 MB/s
Backed up kernel-bootctrl partition under /ota_work before writing them
Writing bootctrl update file into /dev/mmcblk0p32
Read back bootctrl update file into /ota_work/image.tmp and verify it
Reading 20 bytes from /dev/mmcblk0p32: 1KB block=0 remainder=20 offset=0
OTA preprocess has been completed. OTA will be automatically started once device is rebooted
nvidia@ubuntu:~/OTA/Linux_for_Tegra/tools/ota_tools/version_upgrade$

After reboot, the new JetPack version will be executed.

Thanks for the support,

2 Likes

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