summaryrefslogtreecommitdiffstatshomepage
path: root/ports/esp32/esp32_partition.c
diff options
context:
space:
mode:
authorThorsten von Eicken <tve@voneicken.com>2020-04-01 22:59:08 -0700
committerDamien George <damien.p.george@gmail.com>2020-05-03 15:00:45 +1000
commit952ff8a8ea9ae6128ff5225b180d8daaacf447e4 (patch)
treec69c41d01035ec4ee279a43f460c821cf1af04f3 /ports/esp32/esp32_partition.c
parent7d97d241e861ba4cbd44d3695d4db6184974f8f9 (diff)
downloadmicropython-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.c10
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) },