I am working with the NAND boot procedure and firmware upgrade code of a bf524 based device.
What we need is a safe way to upgrade even if the power is lost during upgrade procedure.
The best way I can think of would be to put static init code in block 0 and the actual firmware starting from block 1 using Block Skip Mode for the boot procedure. That way we could put some basic recovery functionality in the init code to recover from broken firmware upgrade.
What would be the best way to re-direct the boot loader to a specific NAND-block from my init-code / startup program?
a. Set something inside the ADI_BOOT_NAND or ADI_BOOT_DATA structures?
b. Call bfrom_NandBoot() from the init code / startup program?
Anything special to think about?
Suggestions are appreciated!