Boot loader payload update failure

Hi,

I am trying Jetpack 4.4 and all of source is the default one.
Found boot loader(mb2) cannot be upgraded successfully if ever save environment in u-boot(by command saveenv).

log is listed as:
nvidia@linux:/tmp$ sudo nv_update_engine --install
Nvidia A/B-Redundancy Update tool Version 1.2
current slot 0
Start updating slot 1
Tegra User Block Device: /dev/disk/by-partlabel
Tegra Boot Block Device: /dev/mmcblk0boot0
HEADER: MAGIC NVIDIA__BLOB__V2
HEX_VALUE 131072
BLOB_SIZE 5678206
HEADER_SIZE 48
NUMBER_OF_ELEMENTS 17
HEADER_TYPE 0
UNCOMP_SIZE 5678206
MB1_RATCHET_LV 0
MTS_RATCHET_LV 0
ROLLBACK_FUSE_LV 0
config COMPATIBLE_SPEC not found in /etc/nv_boot_control.conf
Device TN Spec: 3310-D00-1000-F.0-1-0-jetson-tx2-mmcblk0p1
config COMPATIBLE_SPEC not found in /etc/nv_boot_control.conf
Device TN Spec: 3310-D00-1000-F.0-1-0-jetson-tx2-mmcblk0p1
Device is fused board.
ENTRY_TABLE:
PART POS LEN VER TNSPEC TYPE UPDATABLE
bpmp-fw 2088 533904 2 1 1
sce-fw 535992 125568 2 1 1
cpu-bootloader 661560 284688 2 1 1
mb2 946248 116832 2 1 1
spe-fw 1063080 95984 2 1 1
secure-os 1159064 366400 2 1 1
mb1 1525464 99664 2 2 1
mts-bootpack 1625128 2082144 2 1 1
mts-preboot 3707272 63104 2 1 1
sc7 3770376 23632 2 1 1
bpmp-fw-dtb 3794008 605120 2 3310-D00-1000-F.0-1-0-jetson-tx2-mmcblk0p1 1 1
bootloader-dtb 4399128 371808 2 3310-D00-1000-F.0-1-0-jetson-tx2-mmcblk0p1 1 1
VER 4770936 102 2 3310-D00-1000-F.0-1-0-jetson-tx2-mmcblk0p1 1 1
BCT 4771038 3584 2 3310-D00-1000-F.0-1-0-jetson-tx2-mmcblk0p1 2 1
MB1_BCT 4774622 50096 2 3310-D00-1000-F.0-1-0-jetson-tx2-mmcblk0p1 1 1
kernel 4824718 481680 2 1 1
kernel-dtb 5306398 371808 2 3310-D00-1000-F.0-1-0-jetson-tx2-mmcblk0p1 1 1
Saving Entry table to /opt/ota_package/entry_table
Writing 533904 bytes to /dev/disk/by-partlabel/bpmp-fw_b for bpmp-fw
Writing 125568 bytes to /dev/disk/by-partlabel/sce-fw_b for sce-fw
Writing 284688 bytes to /dev/disk/by-partlabel/cpu-bootloader_b for cpu-bootloader
Slot could not be opened mb2
mb2 fail to write
Writing to partitions failed.
OTA Blob update failed. Status: 5
/usr/sbin/nv_bootloader_payload_updater --no-dependent-partition failed.
Slot 1 update failed.

Seems secondary_gpt(4193792 ~ 4194304) offset is overwritten by uboot env(4186112 ~ 4194300) in mmcblk0boot0.

Please help on this.

Thanks

Hi,

It sounds an issue. Could you share the step (what did you save in uboot?) to reproduce this issue?

do not save anything. just type “saveenv” in uboot cli.

Hi,

We have two patches for you to try.

1st patch is in uboot.
febfeaa.diff.zip (1.3 KB)

2nd patch is in the partition layout change that you need to apply to the xml file under Linux_for_Tegra
25668e2.diff.zip (1.7 KB) .

Is there a chance to adapt this for L4T R32.3.1?
I tried to adapt it but at the stage of flashing the device i always run into the following error:

[ 9.4720 ] tegradevflash_v2 --iscpubl
[ 9.4742 ] Bootloader version 01.00.0000
[ 9.4764 ] Bootloader version 01.00.0000
[ 9.4774 ]
[ 9.4775 ] Retrieving storage infomation
[ 9.4801 ] tegrarcm_v2 --oem platformdetails storage storage_info.bin
[ 9.4822 ] Applet is not running on device. Continue with Bootloader
[ 9.4855 ]
[ 9.4878 ] tegradevflash_v2 --oem platformdetails storage storage_info.bin
[ 9.4894 ] Bootloader version 01.00.0000
[ 9.4913 ] Saved platform info in storage_info.bin
[ 9.4958 ]
[ 9.4958 ] Flashing the device
[ 9.4978 ] tegraparser_v2 --storageinfo storage_info.bin --generategpt --pt flash.xml.bin
[ 9.4992 ] Start location differs for expected: %d, actual: %d,
Error: Return value 4
Command tegraparser_v2 --storageinfo storage_info.bin --generategpt --pt flash.xml.bin

Can you tell with which release this will officially be fixed?

Hi,

Is there a chance to adapt this for L4T R32.3.1?

Sorry that we won’t adapt any fix back to old release.

Can you tell with which release this will officially be fixed?

Next rel-32 branch release will have it.