Here is information and logs about the three cases.
Headers from imx-boot containers
output using od --width=4 -A x -t x1
NXP header is same for both containers.
v1 header:
...
000400 00 a0 00 87 OEM header
000404 10 00 00 00
000408 01 00 00 01 SW Version: 1, Fuse version 0
00040c 90 00 00 00
...
v1 u-boot git hash:
e65c48e
v2 header:
...
000400 00 a0 00 87 OEM header
000404 10 00 00 00
000408 02 00 00 01 SW Version: 2, Fuse version: 0
00040c 90 00 00 00
...
v2 u-boot git hash:
669f2a5
Logs
flash_bootloader.sh below is a simple script which flashes a given boot area (0 or 1).
Scenario 1: Bootarea1 v1, Bootarea 2 v2
v1 boots, see git hash in version string. Expecting v2 to boot.
Setup:
# ./flash_bootloader.sh 0 imx-boot-v1
3960+1 records in
3960+1 records out
# ./flash_bootloader.sh 1 imx-boot-v2
Boot log:
U-Boot SPL 2024.04+ge65c48e26ef+p0 (Jan 17 2025 - 08:03:10 +0000)
SOC: 0xa1009300
LC: 0x2040010
PMIC: Over Drive Voltage Mode
EA: Using gzipped ddr data from eeprom
M33 prepare ok
Normal Boot
Trying to boot from BOOTROM
Boot Stage: Primary boot
image offset 0x0, pagesize 0x200, ivt offset 0x0
Load image from 0x54800 by ROM_API
NOTICE: TRDC init done
NOTICE: BL31: v2.10.0 (release):android-14.0.0_2.2.0-rc2-0-g7c64d4e86
NOTICE: BL31: Built : 10:35:32, Aug 29 2024
U-Boot 2024.04+ge65c48e26ef+p0 (Jan 17 2025 - 08:03:10 +0000)
Reset Status: POR
CPU: NXP i.MX93(52) Rev1.1 A55 at 1700 MHz
CPU: Extended Industrial temperature grade (-40C to 125C) at 51C
Scenario 2: Bootarea1 v2, Bootarea2 v1
v2 boots, see git hash in version string
Setup:
# ./flash_bootloader.sh 0 imx-boot-v2
3960+1 records in
3960+1 records out
# ./flash_bootloader.sh 1 imx-boot-v1
3960+1 records in
3960+1 records out
Boot log:
U-Boot SPL 2024.04+g669f2a5bf5d+p0 (Jan 17 2025 - 14:34:22 +0000)
SOC: 0xa1009300
LC: 0x2040010
PMIC: Over Drive Voltage Mode
EA: Using gzipped ddr data from eeprom
M33 prepare ok
Normal Boot
Trying to boot from BOOTROM
Boot Stage: Primary boot
image offset 0x0, pagesize 0x200, ivt offset 0x0
Load image from 0x54800 by ROM_API
NOTICE: TRDC init done
NOTICE: BL31: v2.10.0 (release):android-14.0.0_2.2.0-rc2-0-g7c64d4e86
NOTICE: BL31: Built : 10:35:32, Aug 29 2024
U-Boot 2024.04+g669f2a5bf5d+p0 (Jan 17 2025 - 14:34:22 +0000)
Reset Status: POR
CPU: NXP i.MX93(52) Rev1.1 A55 at 1700 MHz
CPU: Extended Industrial temperature grade (-40C to 125C) at 50C
Scenario 3: Bootarea1 empty, Bootarea2 v2
v2 boots, see git hash in version string
Setup:
# ./flash_bootloader.sh 0 /dev/zero
dd: error writing '/dev/mmcblk0boot0': No space left on device
8193+0 records in
8192+0 records out
# ./flash_bootloader.sh 1 imx-boot-v2
3960+1 records in
3960+1 records out
Boot log:
U-Boot SPL 2024.04+g669f2a5bf5d+p0 (Jan 17 2025 - 14:34:22 +0000)
SOC: 0xa1009300
LC: 0x2040010
PMIC: Over Drive Voltage Mode
EA: Using gzipped ddr data from eeprom
M33 prepare ok
Normal Boot
Trying to boot from BOOTROM
Boot Stage: Secondary boot
image offset 0x0, pagesize 0x200, ivt offset 0x0
Load image from 0x54800 by ROM_API
NOTICE: TRDC init done
NOTICE: BL31: v2.10.0 (release):android-14.0.0_2.2.0-rc2-0-g7c64d4e86
NOTICE: BL31: Built : 10:35:32, Aug 29 2024
U-Boot 2024.04+g669f2a5bf5d+p0 (Jan 17 2025 - 14:34:22 +0000)
Reset Status: WDOG3
CPU: NXP i.MX93(52) Rev1.1 A55 at 1700 MHz
CPU: Extended Industrial temperature grade (-40C to 125C) at 51C