After getting A/B flashing to work (see issue BSP 35.6.2 flashing for ROOTFS_AB=1 fails ), I tried to get a duplicate of slot-A into slot-B, after slot-A is oem-configured and some extra bits are added to it.
The idea is to keep slot-B with the same identities as slot-A and as close to it as possible.
So slot-A boots and works fine.
If I then:
-
Read the slot-A partition into a file:
ROOTFS_AB=1 sudo -E --preserve-env=ROOTFS_AB ./flash.sh -S 28GiB -r -k APP -G app_backup_a.img jetson-agx-xavier-industrial mmcblk0p1 -
Then change the PARTUUID to be the one for slot-B:
sudo mount app_backup_a.img.raw /mntsudo sed -i -re ‘s/PARTUUID=[^ ]+ /PARTUUID=’$(cat bootloader/l4t-rootfs-uuid.txt_b)’ /’ /mnt/boot/extlinux/extlinux.conf
sudo sync -f /mnt/boot/extlinux/extlinux.conf
sudo umount /mnt -
Write back app_backup_a.img.raw to slot-B:
sudo rm app_backup_a.img
sudo bootloader/mksparse --fillpattern=0 app_backup_a.img{.raw,}
ROOTFS_AB=1 sudo -E --preserve-env=ROOTFS_AB ./flash.sh -S 28GiB -k APP_b --no-systemimg -–image app_backup_a.img jetson-agx-xavier-industrial mmcblk0p1
Then switch to slot-B after the jetson reboots (sudo nvbootctrl set-active-boot-slot 1), The boot stucks just when the kernel is going to be launch:
Jetson UEFI firmware (version 6.2-40633251 built on 2025-05-16T01:35:20+00:00)
ESC to enter Setup.
F11 to enter Boot Manager Menu.
Enter to continue boot.
** WARNING: Test Key is used. **
......
L4TLauncher: Attempting Direct Boot
EFI stub: Booting Linux Kernel...
EFI stub: Using DTB from configuration table
EFI stub: Loaded initrd from LINUX_EFI_INITRD_MEDIA_GUID device path
EFI stub: Exiting boot services and installing virtual address map...
... nothing else happens...
Doing more flash attempts, I get sometimes a bit of garbled text, one time it managed to print a clean set of messages before stopping:
��ERROR: MPIDR 0x80000000: exception reason=0 syndrome=0xbe000000
ERROR: **************************************
ERROR: RAS Error in L2, ERRSELR_EL1=0x200:
ERROR: Status = 0xfc00640d
ERROR: IERR = SCF to L2 Decode Error Read: 0x64
ERROR: SERR = Illegal address (software fault): 0xd
ERROR: Overflow (there may be more errors) - Uncorrectable
ERROR: Uncorrectable (this is fatal)
ERROR: MISC0 = 0x200000000100000
ERROR: MISC1 = 0x805c000000c
ERROR: ADDR = 0x8000000000001f20
ERROR: **************************************
ERROR: **************************************
ERROR: RAS Error in SCF_IOB, ERRSELR_EL1=0x401:
ERROR: Status = 0xf4009604
ERROR: IERR = CBB Interface Error: 0x96
ERROR: SERR = Assertion failure: 0x4
ERROR: Uncorrectable (this is fatal)
ERROR: MISC0 = 0x40
ERROR: MISC1 = 0x3204a0c44c1
ERROR: ADDR = 0x8000000000001f20
ERROR: **************************************
ERROR: RAS error handled!
ERROR: sdei_dispatch_Unhandled Exception in EL3.
x30 = 0x000000004000f184
x0 = 0x0000000000000065
x1 = 0x000000000c198000
x2 = 0x000000008100005f
x3 = 0x00000000af4d6c04
x4 = 0x0000000000000000
x5 = 0x0000000000000405
x6 = 0x0000000000000008
x7 = 0x0000000000000000
x8 = 0x0000000040009ae0
x9 = 0x0000000000000000
x10 = 0x000000000000073d
x11 = 0xffffcf11455b0000
x12 = 0xffffcf1147676a80
x13 = 0xffffcf1147676e30
x14 = 0xffffffffffffffff
x15 = 0xffffcf1147353a30
x16 = 0x00000007429ecb60
x17 = 0x00000000bce02581
x18 = 0xffffcf11473534c0
x19 = 0x000000004001c960
x20 = 0x00000000ffffff80
x21 = 0x0000000000000065
x22 = 0x00000000400167c0
x23 = 0x0000000040016bc0
x24 = 0x0000000000000001
x25 = 0x0000000000000000
x26 = 0x0000000040010c24
x27 = 0xffffcf11473689d0
x28 = 0x0= 0x0000000000000000
tpidr_el1 = 0x0000000000000000
tpidr_el0 = 0x00000000b8000000
tpidrro_el0 = 0x0000000000000000
par_el1 = 0xff000000a0a75b00
mpidr_el1 = 0x0000000080000000
afsr0_el1 = 0x0000000000000000
afsr1_el1 = 0x0000000000000000
contextidr_el1 = 0x0000000000000000
vbar_el1 = 0x0000000000000000
cntp_ctl_el0 = 0x0000000000000000
cntp_cval_el0 = 0x000000004fa4cfa7
cntv_ctl_el0 = 0x0000000000000000
cntv_cval_el0 = 0x0000000000000000
cntkctl_el1 = 0x0000000000000000
sp_el0 = 0x0000000040016a40
isr_el1 = 0x0000000000000000
dacr32_el2 = 0x0000000000000000
ifsr32_el2 = 0x0000000000000000
actlr_el1 = 0x0000000000000001
gicc_hppir = 0x00000000000003ff
gicc_ahppir = 0x00000000000003ff
gicc_ctlr = 0x0000000000000069
gicd_ispendr regs (Offsets 0x200 - 0x278)
Offset: value
0000000000000200: 0x0000000000000000
0000000000000204: 0x0000000000000000
0000000000000208: 0x0000000000000000
000000000000020c: 0x0000000000000000
0000000000000210: 0x0000000000000000
0000000000000214: 0x0000000000000000
0000000000000218: 0x0000000000000000
000000000000021c: 0x0000000000000000
0000000000000220: 0x0000000000000000
0000000000000224: 0x0000000000000000
0000000000000228: 0x0000000000000000
000000000000022c: 0x0000000000000000
0000000000000230: 0x0000000000000000
0000000000000234: 0x0000000000000000
0000000000000238: 0x0000000000000000
000000000000023c: 0x0000000000000000
0000000000000240: 0x0000000000000000
0000000000000244: 0x0000000000000000
0000000000000248: 0x0000000000000000
000000000000024c: 0x0000000000000000
0000000000000250: 0x0000000000000000
0000000000000254: 0x0000000000000000
0000000000000258: 0x0000000000000000
000000000000025c: 0x0000000000000000
0000000000000260: 0x0000000000000000
0000000000000264: 0x0000000000000000
0000000000000268: 0x0000000000000000
000000000000026c: 0x0000000000000000
0000000000000270: 0x0000000000000000
0000000000000274: 0x0000000000000000
0000000000000278: 0x0000000000000000
000000000000027c: 0x0000000000000000
And at some flashing attempts, it manages to boot, but with some filesystem errors.
Most attempts do not get filesystem errors if I go back to the slot-A (via UEFI setup), and run sudo fsck -f /dev/mmcblk0p2.
I also tried the process above a bit more like the flash.sh does it, using a loop device and using a double tar to copy from the downloaded partition file to a new fresh one, just in case, but nothing appears to change.
So something is wrong, but cannot tell what, other than this used to work with BSP 32.7.1 (lots of things get broken now… not sure if I should blame the UEFI or if there is some hidden thing that is not documented or I don’t know about).
Anyideas?