diff options
author | Thorsten von Eicken <tve@voneicken.com> | 2020-04-01 22:59:08 -0700 |
---|---|---|
committer | Damien George <damien.p.george@gmail.com> | 2020-05-03 15:00:45 +1000 |
commit | 952ff8a8ea9ae6128ff5225b180d8daaacf447e4 (patch) | |
tree | c69c41d01035ec4ee279a43f460c821cf1af04f3 /ports/esp32/esp32_partition.c | |
parent | 7d97d241e861ba4cbd44d3695d4db6184974f8f9 (diff) | |
download | micropython-952ff8a8ea9ae6128ff5225b180d8daaacf447e4.tar.gz micropython-952ff8a8ea9ae6128ff5225b180d8daaacf447e4.zip |
esp32: Improve support for OTA updates.
This commit adds several small items to improve the support for OTA
updates on an esp32:
- a partition table for 4MB flash modules that has two OTA partitions ready
to go to do updates
- a GENERIC_OTA board that uses that partition table and that enables
automatic roll-back in the bootloader
- a new esp32.Partition.mark_app_valid_cancel_rollback() class-method to
signal that the boot is successful and should not be rolled back at the
next reset
- an automated test for doing an OTA update
- documentation updates
Diffstat (limited to 'ports/esp32/esp32_partition.c')
-rw-r--r-- | ports/esp32/esp32_partition.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/ports/esp32/esp32_partition.c b/ports/esp32/esp32_partition.c index cbb62206fa..dc2bdd7120 100644 --- a/ports/esp32/esp32_partition.c +++ b/ports/esp32/esp32_partition.c @@ -209,6 +209,15 @@ STATIC mp_obj_t esp32_partition_get_next_update(mp_obj_t self_in) { } STATIC MP_DEFINE_CONST_FUN_OBJ_1(esp32_partition_get_next_update_obj, esp32_partition_get_next_update); +STATIC mp_obj_t esp32_partition_mark_app_valid_cancel_rollback(mp_obj_t cls_in) { + check_esp_err(esp_ota_mark_app_valid_cancel_rollback()); + return mp_const_none; +} +STATIC MP_DEFINE_CONST_FUN_OBJ_1(esp32_partition_mark_app_valid_cancel_rollback_fun_obj, + esp32_partition_mark_app_valid_cancel_rollback); +STATIC MP_DEFINE_CONST_CLASSMETHOD_OBJ(esp32_partition_mark_app_valid_cancel_rollback_obj, + MP_ROM_PTR(&esp32_partition_mark_app_valid_cancel_rollback_fun_obj)); + STATIC const mp_rom_map_elem_t esp32_partition_locals_dict_table[] = { { MP_ROM_QSTR(MP_QSTR_find), MP_ROM_PTR(&esp32_partition_find_obj) }, @@ -218,6 +227,7 @@ STATIC const mp_rom_map_elem_t esp32_partition_locals_dict_table[] = { { MP_ROM_QSTR(MP_QSTR_ioctl), MP_ROM_PTR(&esp32_partition_ioctl_obj) }, { MP_ROM_QSTR(MP_QSTR_set_boot), MP_ROM_PTR(&esp32_partition_set_boot_obj) }, + { MP_ROM_QSTR(MP_QSTR_mark_app_valid_cancel_rollback), MP_ROM_PTR(&esp32_partition_mark_app_valid_cancel_rollback_obj) }, { MP_ROM_QSTR(MP_QSTR_get_next_update), MP_ROM_PTR(&esp32_partition_get_next_update_obj) }, { MP_ROM_QSTR(MP_QSTR_BOOT), MP_ROM_INT(ESP32_PARTITION_BOOT) }, |