I’m working on a Jetson Orin NX module running Jetson Linux 36.4, and I’m trying to use Capsule Update for firmware updates.
I generated a capsule update using the following command:
sudo ./l4t_generate_soc_bup.sh -e t23x_3767_bl_spec t23x
In the end it printed:
t23x payload generation complete with 0 failure(s)
SUCCESS: cleaned up BUP tmp files prior to payload creation
SUCCESS: created payload for config "boardid=3767;fab=301;boardsku=0000;boardrev=G.1;fuselevel=fuselevel_production;chiprev=1;chipsku=00:00:00:D3;board=jetson-orin-nano-devkit;rootdev=mmcblk0p1;bup_type=bl"
SUCCESS: cleaned up BUP tmp files after payload creation
BLOB PATH:
/home/worldcoin/capsule-tests/rts/bootloader/payloads_t23x/bl_only_payload
BLOB HEADER:
Magic: NVIDIA__BLOB__V3
Version: v3.1-2022.6-0 (0x01030622)
Blob Size: 11,106,317 bytes
Header Size: 48 bytes
Entry Count: 30 partition(s)
Type: 0 (0 for update, 1 for BMP)
Uncompressed
Blob Size: 11,106,317 bytes
Accessory: 0x0000000000000000
ENTRY TABLE:
| part_name | offset | part_size | version | op_mode | tnspec |
| BCT | 5568 | 8192 | 3640 | 2 | 3767-301-0000-G.1-1-1-jetson-orin-nano-devkit- |
| BCT_A | 13760 | 8192 | 3640 | 2 | 3767-301-0000-G.1-1-1-jetson-orin-nano-devkit- |
| BCT_B | 21952 | 8192 | 3640 | 2 | 3767-301-0000-G.1-1-1-jetson-orin-nano-devkit- |
| mb1 | 30144 | 282768 | 3640 | 2 | 3767-301-0000-G.1-1-1-jetson-orin-nano-devkit- |
| psc_bl1 | 312912 | 123008 | 3640 | 2 | |
| MB1_BCT | 435920 | 17600 | 3640 | 0 | 3767-301-0000-G.1-1-1-jetson-orin-nano-devkit- |
| MEM_BCT | 453520 | 243712 | 3640 | 0 | 3767-301-0000-G.1-1-1-jetson-orin-nano-devkit- |
| tsec-fw | 697232 | 176128 | 3640 | 0 | |
| nvdec | 873360 | 294912 | 3640 | 2 | |
| mb2 | 1168272 | 440944 | 3640 | 0 | 3767-301-0000-G.1-1-1-jetson-orin-nano-devkit- |
| xusb-fw | 1609216 | 164864 | 3640 | 2 | |
| bpmp-fw | 1774080 | 1027008 | 3640 | 2 | 3767-301-0000-G.1-1-1-jetson-orin-nano-devkit- |
| bpmp-fw-dtb | 2801088 | 383296 | 3640 | 0 | 3767-301-0000-G.1-1-1-jetson-orin-nano-devkit- |
| psc-fw | 3184384 | 310768 | 3640 | 2 | |
| mts-mce | 3495152 | 187120 | 3640 | 2 | |
| sc7 | 3682272 | 186880 | 3640 | 2 | |
| pscrf | 3869152 | 122464 | 3640 | 2 | |
| mb2rf | 3991616 | 122720 | 3640 | 0 | |
| cpu-bootloader | 4114336 | 3340592 | 3640 | 0 | 3767-301-0000-G.1-1-1-jetson-orin-nano-devkit- |
| secure-os | 7454928 | 1575856 | 3640 | 0 | |
| eks | 9030784 | 9232 | 3640 | 0 | |
| dce-fw | 9040016 | 788944 | 3640 | 0 | 3767-301-0000-G.1-1-1-jetson-orin-nano-devkit- |
| spe-fw | 9828960 | 270336 | 3640 | 0 | |
| rce-fw | 10099296 | 458096 | 3640 | 0 | |
| adsp-fw | 10557392 | 415232 | 3640 | 0 | |
| pva-fw | 10972624 | 67024 | 3640 | 0 | |
| BCT-boot-chain_backup | 11039648 | 32768 | 3640 | 2 | 3767-301-0000-G.1-1-1-jetson-orin-nano-devkit- |
| secondary_gpt_backup | 11072416 | 16896 | 3640 | 0 | 3767-301-0000-G.1-1-1-jetson-orin-nano-devkit- |
| VER | 11089312 | 109 | 3640 | 0 | 3767-301-0000-G.1-1-1-jetson-orin-nano-devkit- |
| secondary_gpt | 11089421 | 16896 | 3640 | 0 | 3767-301-0000-G.1-1-1-jetson-orin-nano-devkit- |
BLOB PATH:
/home/worldcoin/capsule-tests/rts/bootloader/payloads_t23x/kernel_only_payload
BLOB HEADER:
Magic: NVIDIA__BLOB__V3
Version: v3.1-2022.6-0 (0x01030622)
Blob Size: 58,253,473 bytes
Header Size: 48 bytes
Entry Count: 2 partition(s)
Type: 0 (0 for update, 1 for BMP)
Uncompressed
Blob Size: 58,253,473 bytes
Accessory: 0x0000000000000000
ENTRY TABLE:
| part_name | offset | part_size | version | op_mode | tnspec |
| kernel | 416 | 58003456 | 3640 | 0 | |
| kernel-dtb | 58003872 | 249601 | 3640 | 0 | 3767-301-0000-G.1-1-1-jetson-orin-nano-devkit- |
SUCCESS: contents of the BUP
After that I’ve loaded the capsule on board following Manually Triggering the Single Partition Image Capsule Update
During boot, EFI refuses to apply the update and prints the following messages:
ESC to enter Setup.
F11 to enter Boot Manager Menu.
Enter to continue boot.
Failed to find memory test protocol
FwPackageValidateImageInfo WARNING: image info for 'BCT' has version=13888, expected=0
FwPackageValidateImageInfo WARNING: image info for 'BCT_A' has version=13888, expected=0
FwPackageValidateImageInfo WARNING: image info for 'BCT_B' has version=13888, expected=0
FwPackageValidateImageInfo WARNING: image info for 'mb1' has version=13888, expected=0
FwPackageValidateImageInfo WARNING: image info for 'psc_bl1' has version=13888, expected=0
FwPackageValidateImageInfo WARNING: image info for 'MB1_BCT' has version=13888, expected=0
FwPackageValidateImageInfo WARNING: image info for 'MEM_BCT' has version=13888, expected=0
FwPackageValidateImageInfo WARNING: image info for 'tsec-fw' has version=13888, expected=0
FwPackageValidateImageInfo WARNING: image info for 'nvdec' has version=13888, expected=0
FwPackageValidateImageInfo WARNING: image info for 'mb2' has version=13888, expected=0
FwPackageValidateImageInfo WARNING: image info for 'xusb-fw' has version=13888, expected=0
FwPackageValidateImageInfo WARNING: image info for 'bpmp-fw' has version=13888, expected=0
FwPackageValidateImageInfo WARNING: image info for 'bpmp-fw-dtb' has version=13888, expected=0
FwPackageValidateImageInfo WARNING: image info for 'psc-fw' has version=13888, expected=0
FwPackageValidateImageInfo WARNING: image info for 'mts-mce' has version=13888, expected=0
FwPackageValidateImageInfo WARNING: image info for 'sc7' has version=13888, expected=0
FwPackageValidateImageInfo WARNING: image info for 'pscrf' has version=13888, expected=0
FwPackageValidateImageInfo WARNING: image info for 'mb2rf' has version=13888, expected=0
FwPackageValidateImageInfo WARNING: image info for 'cpu-bootloader' has version=13888, expected=0
FwPackageValidateImageInfo WARNING: image info for 'secure-os' has version=13888, expected=0
FwPackageValidateImageInfo WARNING: image info for 'eks' has version=13888, expected=0
FwPackageValidateImageInfo WARNING: image info for 'dce-fw' has version=13888, expected=0
FwPackageValidateImageInfo WARNING: image info for 'spe-fw' has version=13888, expected=0
FwPackageValidateImageInfo WARNING: image info for 'rce-fw' has version=13888, expected=0
FwPackageValidateImageInfo WARNING: image info for 'adsp-fw' has version=13888, expected=0
FwPackageValidateImageInfo WARNING: image info for 'pva-fw' has version=13888, expected=0
FwPackageValidateImageInfo WARNING: image info for 'BCT-boot-chain_backup' has version=13888, expected=0
FwPackageValidateImageInfo WARNING: image info for 'secondary_gpt_backup' has version=13888, expected=0
FwPackageValidateImageInfo WARNING: image info for 'VER' has version=13888, expected=0
FwPackageValidateImageInfo WARNING: image info for 'secondary_gpt' has version=13888, expected=0
GetPackageImageIndex: Failed to get image index for 'GPT' (secondary_gpt_backup): Not Found
GetPackageImageIndex: Failed to get image index for 'mb1' (mb1): Not Found
FmpTegraCheckImage: ERROR: Missing required image for partition 'mb1': Not Found
FmpDxe(NVIDIA System Firmware): CheckTheImage() - FmpDeviceLib CheckImage failed. Status = Aborted
FmpDxe(NVIDIA System Firmware): SetTheImage() - Check The Image failed with Aborted.
HandleCapsules: resetting to
That looks strange as from l4t_generate_soc_bup
output it is clear that mb1 is present in the capsule update.
My questions are why the update is not applied? and how to debug and fix it?