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

CycloneBOOT 2nd Stage Bootloader management. More...

#include "boot_config.h"
#include "core/cboot_error.h"
#include "core/crypto.h"
#include "core/flash.h"
#include "core/verify.h"

Go to the source code of this file.

Classes

struct  BootSettings
 First-stage bootloader user settings. More...
 
struct  BootContext
 First-stage bootloader context. More...
 

Macros

#define BOOT_OFFSET   0x10000
 
#define BOOT_FALLBACK_SUPPORT   DISABLED
 
#define BOOT_ANTI_ROLLBACK_SUPPORT   DISABLED
 
#define BOOT_EXT_MEM_ENCRYPTION_SUPPORT   DISABLED
 
#define BOOT_RUNTIME_INTEGRITY_CHECK_SUPPORT   DISABLED
 
#define BOOT_INTEGRITY_CHECK_ALGO   CRC32_HASH_ALGO
 
#define HASH_ALGO_CRC32   CRC32_HASH_ALGO
 
#define HASH_ALGO_SHA1   SHA1_HASH_ALGO
 
#define HASH_ALGO_SHA224   SHA224_HASH_ALGO
 
#define HASH_ALGO_SHA256   SHA256_HASH_ALGO
 
#define HASH_ALGO_SHA384   SHA384_HASH_ALGO
 
#define HASH_ALGO_SHA512   SHA512_HASH_ALGO
 
#define BOOT_RUNTIME_SIGNATURE_CHECK_SUPPORT   DISABLED
 

Enumerations

enum  BootState {
  BOOT_STATE_IDLE , BOOT_STATE_RUN_APP , BOOT_STATE_UPDATE_APP , BOOT_STATE_FALLBACK_APP ,
  BOOT_STATE_ERROR
}
 Bootloader States definition.
 

Functions

cboot_error_t bootFsm (BootContext *context)
 Bootloader Task routine.
 
void bootGetDefaultSettings (BootSettings *settings)
 Initialize first-stage bootloader settings with default values.
 
cboot_error_t bootInit (BootContext *context, BootSettings *settings)
 Initialize the first-stage bootloader context from user settings.
 
cboot_error_t bootCreateBackupSlot (BootContext *context)
 
cboot_error_t bootUpdateApp (BootContext *context, Slot *slot)
 Update current application. Basically it decrypt/copy an image from the external flash memory into the internal flash memory.
 
uint32_t mcuGetVtorOffset (void)
 Return mcu vector table offset.
 
void mcuSystemReset (void)
 Reset MCU system.
 
void mcuJumpToApplication (uint32_t address)
 Jump to the application at the given address.
 

Detailed Description

CycloneBOOT 2nd Stage Bootloader management.

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

Function Documentation

◆ bootFsm()

cboot_error_t bootFsm ( BootContext *  context)

Bootloader Task routine.

Parameters
[in]contextPointer to Bootloader context
Returns
cboot_error_t

Bootloader Task routine.

Parameters
[in,out]contextPointer to the bootloader context
Returns
Error code.

◆ bootGetDefaultSettings()

void bootGetDefaultSettings ( BootSettings *  settings)

Initialize first-stage bootloader settings with default values.

Parameters
[in,out]settingsPointer to the bootloader settings

Initialize first-stage bootloader settings with default values.

Parameters
[in,out]settingsStructure that contains Bootloader settings

Initialize first-stage bootloader settings with default values.

Parameters
[in,out]settingsPointer to the settings to be initialized

◆ bootInit()

cboot_error_t bootInit ( BootContext *  context,
BootSettings *  settings 
)

Initialize the first-stage bootloader context from user settings.

Parameters
[in,out]contextPointer to the bootloader context
[in]settingsPointer to the user settings
Returns
cboot_error_t

Initialize the first-stage bootloader context from user settings.

Parameters
[in,out]contextBootloader context
[in]settingsBootloader user settings
Returns
Status code

Initialize the first-stage bootloader context from user settings.

Parameters
[in,out]contextPointer to the bootloader context
[in]settingsPointer to the bootloader user settings
Returns
Error code.

◆ bootUpdateApp()

cboot_error_t bootUpdateApp ( BootContext *  context,
Slot *  slot 
)

Update current application. Basically it decrypt/copy an image from the external flash memory into the internal flash memory.

Parameters
[in]contextPointer to Bootloader context
[in]slotPointer to the slot in the external flash memory that contains the new application
Returns
Status code

◆ mcuGetVtorOffset()

uint32_t mcuGetVtorOffset ( void  )
extern

Return mcu vector table offset.

Returns
VTOR offset value

Return mcu vector table offset.

Returns
VTOR offset value

◆ mcuJumpToApplication()

void mcuJumpToApplication ( uint32_t  address)
extern

Jump to the application at the given address.

Parameters
[in]addressApplication start address

◆ mcuSystemReset()

void mcuSystemReset ( void  )
extern

Reset MCU system.

Reset MCU system.