feat(app_update): esp_ota_mark_app_invalid_rollback() without reboot

This commit is contained in:
Nebojsa Cvetkovic
2024-12-12 23:23:25 +00:00
committed by nilesh.kale
parent e44c525da2
commit ef1ee48773
3 changed files with 28 additions and 8 deletions

View File

@@ -867,8 +867,7 @@ static esp_err_t esp_ota_current_ota_is_workable(bool valid)
if (err != ESP_OK) {
return err;
}
ESP_LOGI(TAG, "Rollback to previously worked partition. Restart.");
esp_restart();
ESP_LOGI(TAG, "Rollback to previously worked partition.");
}
} else {
ESP_LOGE(TAG, "Running firmware is factory");
@@ -882,11 +881,20 @@ esp_err_t esp_ota_mark_app_valid_cancel_rollback(void)
return esp_ota_current_ota_is_workable(true);
}
esp_err_t esp_ota_mark_app_invalid_rollback_and_reboot(void)
esp_err_t esp_ota_mark_app_invalid_rollback(void)
{
return esp_ota_current_ota_is_workable(false);
}
esp_err_t esp_ota_mark_app_invalid_rollback_and_reboot(void)
{
esp_err_t ret = esp_ota_mark_app_invalid_rollback();
if (ret == ESP_OK) {
esp_restart();
}
return ret;
}
static bool check_invalid_otadata (const esp_ota_select_entry_t *s) {
return s->ota_seq != UINT32_MAX &&
s->crc == bootloader_common_ota_select_crc(s) &&