Hi all, I have a imx8qxp on a custom board and want to update the m4 image over a Linux System running on the A35. As far as I understand the datasheets and documentations, this is only possible with replacing the whole flash.bin (generated with mkimage tool) with dd on the eMMC. Is this correct, or is there a other possibility I don't see? If this is the only way, is there a possibility to keep a "fallback" of the flash.bin, which could be loaded, when the new one fails?
By now i got following update process working:
- boot linux (with flash.bin from eMMC "mmcblk0boot0")
- use "dd" to write a new flash.bin to "mmcblk0boot1" with offset 32k.
- switch boot partitions with "mmc bootpart enable 2 0 /dev/mmcblk0"
- power reset to boot with new image.
This process is fine, as long i can ensure only valid images are written. But if not, the device can only be "unbricked" with flashing a valid one (with uuu) over USB. Unfortunately this is planned to be deactivated on final device after the initial setup.
As per your update, my understanding is that you're attempting a primary and secondary boot in your test, this look fine.
Also, if you’re going to disable serial downloader, you may try with recovery boot, from RM chapter 5 system boot:
Recovery Boot Device:
• After failing to boot from the Primary Boot Device, the ROM will attempt to boot from another boot device. For this chip, the ROM will attempt to boot from USDHC1 port if the Primary/Secondary boot fails.