[ORIN AGX][OTA] Using nvme on Orin

Hello I am currently prototyping a reliable upgrade process for our new product on a Orin AGX base.

Now I stumbled over the problem that Image based upgrade seems not supported by the nvidia OTA tools on the Orin platform. So my 2 Questions are:

  • Will there be support for nvme on the Orin AGX platform, and if so when is this feature planned? I tried to modify the OTA package manually from internal_deviceto external_deviceand recalculate the SHA hash and it seems to flash the nvme but obviously that is not a permanent solution. But it shows that there should not be a lot of things missing to get support for nvme.

  • Will the planed OTA feature for JEtpack6 use the same mechanism and tools as for 5.1.2 so we can assume the same feature set, or is there something new planed?

Hi serafin.leschke,

Are you using the devkit or custom board for AGX Orin?

Image-based OTA for external NVMe should work with AGX Orin currently.
Please refer to ota_tools/version_upgrade/Image_based_OTA_Examples.txt for details.

It should be the similar mechanism for Jetpack6 but it’s not supported yet in DP(Developer Preview) release. Please wait for GA(General Availability) release.

Hi Thank you for the fast response. At the moment we are using the devkit but we will build our own Board eventually.

The problem is there is a Whitelist SUPPORTED_EXTERNAL_DEVICES in ota_tools/version_upgrade/l4t_generate_ota_package.sh:81 and just extending the whitelist did not work for me.

This is also documented in the usage:

sudo ./tools/ota_tools/version_upgrade/l4t_generate_ota_package.sh -h
[sudo] password for lesc: 
Usage: sudo ./tools/ota_tools/version_upgrade/l4t_generate_ota_package.sh [options] <target board> <bsp version>
	Where,
		<target board>: target board. Supported boards: jetson-agx-xavier-devkit, jetson-xavier-nx-devkit-emmc, jetson-agx-xavier-industrial, jetson-agx-orin-devkit, jetson-agx-orin-devkit-industrial, jetson-orin-nano-devkit, igx-orin-devkit.
		<bsp version>: the version of the base BSP. Supported versions: R32-5, R32-6, R32-7, R35-2, R35-3, R35-4.
	options:
		-u <PKC key file>: PKC key used for odm fused board
		-v <SBK key file>: Secure Boot Key (SBK) key used for ODM fused board
		-s	Skip generating system image.
		-b	Update bootloader only. Only valid for update without layout change.
		-r	Update rootfs only. Only valid for update without layout change.
		-o	Specify the script to update rootfs partition.
		-f	Specify the rootfs image to be written to rootfs partition.
		--external-device <external device>: Specify the external device to be OTAed. Supported devices: nvme0n1.
		  This option is only valid for jetson-xavier-nx-devkit-emmc.
		-S <size>: Specify the size of rootfs partition on external device. Only valid when --external-device option is set. KiB, MiB, GiB short hands are allowed
		  Ths size set through this option must be the same as the size of rootfs partition on the external device to be OTAed.
		-E <esp image>: Specify the image to update ESP. Only valid for update without layout change.
Example:
	1. Upgrade from R32.7.x to R35 on NX
	sudo ./tools/ota_tools/version_upgrade/l4t_generate_ota_package.sh jetson-xavier-nx-devkit-emmc R32-7
	2. Upgrade from R35.2 to R35 ToT on AGX Xavier with rootfs A/B enabled
	sudo ROOTFS_AB=1 ./tools/ota_tools/version_upgrade/l4t_generate_ota_package.sh jetson-agx-xavier-devkit R35-2
	3. Upgrade from R32.7.x to R35 on NX with NVMe device that has 14GiB APP partition
	sudo ./tools/ota_tools/version_upgrade/l4t_generate_ota_package.sh --external-device nvme0n1 -S 14GiB jetson-xavier-nx-devkit-emmc R32-7

(relevant part:)

		--external-device <external device>: Specify the external device to be OTAed. Supported devices: nvme0n1.
		  This option is only valid for jetson-xavier-nx-devkit-emmc

Okay, I’ve checked this with internal that OTA update for external NVMe is supported only for Xavier NX, Orin NX/Nano currently. (Jetpack 5.1.2)

For AGX Orin, it will be supported in next release. (Jetpack 5.1.3)

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