There do not appear to be OTA board specs for AGX Orin in the OTA tools for Jetpack 5.0.2. This is to say that the file ota_board_specs.conf has not been updated. Presumably these are the same specs that are missing in /etc/nv_boot_control.conf of the L4T package.
Please provide the updated file whenever possible.
As well, the latest board specs in ota_board_specs.conf for AGX Xavier are for R32-7. Is it safe to assume the specs for R35-1 are the same?
Finally, has there been any change to the OTA procedure since Jetpack 4.6.1? Upon inspecting the Image-based OTA Update section of the documentation it does not seem so, but I would appreciate if this could be confirmed.
If not, I’d like to add this functionality myself, as I require this for my application deployment.
I will get back to you with the exact information I require, but for now, can you provide information about the partition layout for R35.1?
Was there any change since R32.6.1? (the last one with support for same-release imaged-based OTA updates)
I would also appreciate if you can confirm or provide the following values for the Orin, as I require them for the update:
_MB1_BCT_PARTITION_SIZE= 256 x block_size ?? (A_MB1_BCT in build_l4t_bup.sh)
_MB1_BCT_PARTITION_OFFSET= 3584 x block_size ?? (A_MB1_BCT in build_l4t_bup.sh)
boot_device=/dev/mtdblock0 (since MB1 is on QSPI)
I ultimately determined that the above parameters in nv_ota_check_version.sh and nv_ota_update_all_in_recovery.sh may or may not be correct for the Orin, but they are not needed for my use-case (updating rootfs only).
Assuming the general values are correct, I have all the information required to perform a rootfs-only update for R35-1 with the exception of two points:
where are the flash.idx files generated, and must one be generated for R35-1 to R35-1 update?
have symmetric partitions only been renamed from suffix (e.g. “_b”) to prefix (e.g. “B_”) ? Or were partition names changed?
After much experimentation, since then I was able to resolve the abovementioned issues and develop an OTA update procedure for L4T R35.1 using A/B rootfs redundancy.
(Should there be interest from this community, I can share the patch files that shows my changes.)
However, I would like the OTA update to gracefully fail by booting into the same rootfs (rather than the new one) if the new one is faulty. This is a feature of the rootfs redundancy that can be controlled (MAX_ROOTFS_AB_RETRY_COUNT).
However, after the new rootfs is declared unbootable and the update fails, there is no way to mark it as bootable after repairing it (e.g. clean flash). This is something others have noticed for L4T 35.1, e.g. L4T 35.1.0 nvbootctrl mark as bootable