Date
1 - 2 of 2
Firmware Recovery: How to change mcuboot slot during runtime #mcumgr #mcuboot #fota
Hi Zephyr developers/users
I'm working on an OTA firmware upgrade application.
I just wanted to find out, if there is any way to change slots during the zephyr application's runtime?
An example would be as follows:
Firmware upgrade process is seen as successful.
During Runtime the code detects an error with a peripheral (GSM modem), and therefore cannot download a new image OTA.
The image needs to rollback to old firmware. How do I accomplish this?
With thanks
Brenton
I'm working on an OTA firmware upgrade application.
I just wanted to find out, if there is any way to change slots during the zephyr application's runtime?
An example would be as follows:
Firmware upgrade process is seen as successful.
During Runtime the code detects an error with a peripheral (GSM modem), and therefore cannot download a new image OTA.
The image needs to rollback to old firmware. How do I accomplish this?
With thanks
Brenton
Martin Kozusky
Hi,
so you have FW update solved, using boot_request_upgrade(BOOT_UPGRADE_TEST), mcuboot swaps the data between slots and starts your new FW? And then you want to rollback?
Then I think you should check all the firmware functionality before you call boot_write_img_confirmed() after the swap, if you don't call it, mcuboot should rollback automaticaly after next reboot (if you called boot_request_upgrade with BOOT_UPGRADE_TEST). Or may be try to call boot_request_upgrade() again?
so you have FW update solved, using boot_request_upgrade(BOOT_UPGRADE_TEST), mcuboot swaps the data between slots and starts your new FW? And then you want to rollback?
Then I think you should check all the firmware functionality before you call boot_write_img_confirmed() after the swap, if you don't call it, mcuboot should rollback automaticaly after next reboot (if you called boot_request_upgrade with BOOT_UPGRADE_TEST). Or may be try to call boot_request_upgrade() again?
Martin
Dne 01.02.2022 v 9:29 Brenton Chetty
napsal(a):
Hi Zephyr developers/users
I'm working on an OTA firmware upgrade application.
I just wanted to find out, if there is any way to change slots during the zephyr application's runtime?
An example would be as follows:
Firmware upgrade process is seen as successful.
During Runtime the code detects an error with a peripheral (GSM modem), and therefore cannot download a new image OTA.
The image needs to rollback to old firmware. How do I accomplish this?
With thanks
Brenton