CycloneBOOT 2.6.6
Secure Bootloader for ARM Cortex-M MCU
Loading...
Searching...
No Matches
boot_recovery.h File Reference

CycloneBOOT standalone bootloader recovery. More...

#include "boot_config.h"
#include "core/cboot_error.h"
#include "os_port.h"

Go to the source code of this file.

Enumerations

enum  RecoveryReason {
  RECOVERY_REASON_IMAGE_INVALID = 0 , RECOVERY_REASON_INSTALL_FAILED , RECOVERY_REASON_NO_IMAGE , RECOVERY_REASON_BOOT_FAILURES ,
  RECOVERY_REASON_NOT_CONFIRMED , RECOVERY_REASON_REQUESTED
}
 Reason recovery was entered. More...
 
enum  RecoveryAction { RECOVERY_ACTION_ENTER_UPDATE = 0 , RECOVERY_ACTION_RESTORE_FACTORY , RECOVERY_ACTION_HALT }
 What the bootloader does about it. More...
 

Functions

cboot_error_t bootRecoveryCheckBootFailures (bool_t *exhausted)
 Checks whether the boot attempt limit has been reached.
 
cboot_error_t bootRecoveryGetAction (RecoveryReason reason, RecoveryAction *action)
 Selects the recovery action for a given reason. The hook decides, then any action the build cannot honour is refused.
 
cboot_error_t bootRecoveryHook (RecoveryReason reason, RecoveryAction *action)
 Recovery action callback. It is declared weak and may be replaced in the user code space. The default restores the factory image when the build provides one, and otherwise waits for a new image.
 

Detailed Description

CycloneBOOT standalone bootloader recovery.

License

SPDX-License-Identifier: GPL-2.0-or-later

Copyright (C) 2021-2026 Oryx Embedded SARL. All rights reserved.

This file is part of CycloneBOOT Open.

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.

Author
Oryx Embedded SARL (www.oryx-embedded.com)
Version
2.6.6

Enumeration Type Documentation

◆ RecoveryAction

What the bootloader does about it.

Enumerator
RECOVERY_ACTION_ENTER_UPDATE 

Wait for a new image.

RECOVERY_ACTION_RESTORE_FACTORY 

Restore the factory image over the application.

RECOVERY_ACTION_HALT 

Stop.

◆ RecoveryReason

Reason recovery was entered.

Enumerator
RECOVERY_REASON_IMAGE_INVALID 

Integrity or signature check failed.

RECOVERY_REASON_INSTALL_FAILED 

The install did not complete.

RECOVERY_REASON_NO_IMAGE 

No bootable image is resident.

RECOVERY_REASON_BOOT_FAILURES 

The boot attempt limit was reached.

RECOVERY_REASON_NOT_CONFIRMED 

The application never confirmed the update.

RECOVERY_REASON_REQUESTED 

The application requested recovery.

Function Documentation

◆ bootRecoveryCheckBootFailures()

cboot_error_t bootRecoveryCheckBootFailures ( bool_t *  exhausted)

Checks whether the boot attempt limit has been reached.

Parameters
[out]exhaustedTRUE when the limit is reached
Returns
Error code.

◆ bootRecoveryGetAction()

cboot_error_t bootRecoveryGetAction ( RecoveryReason  reason,
RecoveryAction *  action 
)

Selects the recovery action for a given reason. The hook decides, then any action the build cannot honour is refused.

Parameters
[in]reasonReason recovery was entered
[out]actionAction to be performed
Returns
Error code.

◆ bootRecoveryHook()

cboot_error_t bootRecoveryHook ( RecoveryReason  reason,
RecoveryAction *  action 
)

Recovery action callback. It is declared weak and may be replaced in the user code space. The default restores the factory image when the build provides one, and otherwise waits for a new image.

Parameters
[in]reasonReason recovery was entered
[out]actionAction to be performed
Returns
Error code.