in components/ota_pal/source/ota_pal.c [735:778]
OtaPalImageState_t otaPal_GetPlatformImageState(OtaFileContext_t *const pFileContext)
{
OtaPalImageState_t eImageState = OtaPalImageStateUnknown;
uint32_t ota_flags;
(void)pFileContext;
LogInfo(("%s", __func__));
if ((ota_ctx.cur_ota != NULL) && (ota_ctx.data_write_len != 0))
{
/* Firmware update is complete or on-going, retrieve its status */
ota_flags = ota_ctx.valid_image == true ? ESP_OTA_IMG_NEW : ESP_OTA_IMG_INVALID;
}
else
{
esp_err_t ret = aws_esp_ota_get_boot_flags(&ota_flags, true);
if (ret != ESP_OK)
{
LogError(("Failed to get ota flags %d", ret));
return eImageState;
}
}
switch (ota_flags)
{
case ESP_OTA_IMG_PENDING_VERIFY:
/* Pending Commit means we're in the Self Test phase. */
eImageState = OtaPalImageStatePendingCommit;
break;
case ESP_OTA_IMG_VALID:
case ESP_OTA_IMG_NEW:
eImageState = OtaPalImageStateValid;
break;
default:
eImageState = OtaPalImageStateInvalid;
break;
}
return eImageState;
}