Hi,
we have an Orin AGX industrial with JetPack 5.1.2 on a Connect Tech Rogue Carrier Board. I need to update the A_rce-fw-partion in-system without any physical access to the board besides a network connection.
As far as I understand, the best way to do this is to use UEFI Capsule Update for a full bootloader update, as described in the Developer Guide - Generating the Capsule Update Payload.
Two questions:
1) Are there any other/simpler ways to update the A_rce-fw partition in-system?
2) If not, can you please provide some further information on how to correctly update the bootloader with the UEFI Capsule? Unfortunately, I was not able to update using this method.
Method I used to create/use the UEFI capsule:
- Added board-spec for my HW-setup to
jetson_board_spec.cfg
t23x_igx_rogue_bl_spec=(
'boardid=3701;fab=500;boardsku=0008;boardrev=;chiprev=;chipsku=00:00:00:90;board=cti/orin-agxi/rogue-orin/base;rootdev=mmcblk0p1;bup_type=bl'
)
- Create the BUP with:
sudo ./l4t_generate_soc_bup.sh -e t23x_igx_rogue_bl_spec t23x
- Created the Update-Capsule with:
./generate_capsule/l4t_generate_soc_capsule.sh -i bootloader/payloads_t23x/bl_only_payload -o ./TEGRA_BL.Cap t234
- Copy the UEFI-Capsule to the system and manually trigger the update:
# Copy the Capsule
sudo mount /dev/mmcblk0p10 /esp_mount/
sudo mkdir /esp_mount/EFI/UpdateCapsule
sudo cp ~/TEGRA_BL.Cap /esp_mount/EFI/UpdateCapsule/
# Trigger the update
printf "\x07\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00" > /tmp/var_tmp.bin
cd /sys/firmware/efi/efivars/
sudo dd if=/tmp/var_tmp.bin of=OsIndications-8be4df61-93ca-11d2-aa0d-00e098032b8c bs=12
sudo reboot
Nothing happens during/after the reboot. The system just boots normally. Running sudo nvbootctrl dump-slots-info
doesn’t indicate any bootloader-updates or update-failures.
Current version: 0.0.1
Capsule update status: 0
Current bootloader slot: A
Active bootloader slot: A
num_slots: 2
slot: 0, status: normal
slot: 1, status: normal
If I remount the EFI-partition, the UEFI-Capsule I copied to it before, has gone.
I tried this multiple times. without any success. Am I missing something here? Are there some additional steps required? What could I do to further debug this?
Thanks in advance!