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

CycloneBOOT 1st Stage Bootloader managment. More...

#include "core/mcu.h"
#include "core/crc32.h"
#include "core/flash.h"
#include "core/cboot_error.h"
#include "image/image.h"
#include "modules/memory/memory.h"
#include "debug.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_FIRST_STAGE_RUNTIME_INTEGRITY_SUPPORT   DISABLED
 
#define BOOT_FIRST_STAGE_RUNTIME_SIGNATURE_SUPPORT   DISABLED
 
#define BOOT_FIRST_STAGE_RUNTIME_SIGNATURE_ECDSA   DISABLED
 
#define BOOT_FIRST_STAGE_RUNTIME_SIGNATURE_RSA   DISABLED
 
#define BOOT_ANTI_ROLLBACK_SUPPORT   DISABLED
 
#define BOOT_EXT_MEM_ENCRYPTION_SUPPORT   DISABLED
 

Functions

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 bootFsm (BootContext *context)
 Bootloader Task routine.
 
cboot_error_t getSecondStageBlIndex (BootContext *context, uint32_t *index)
 Get the image index of the second stage bootloader.
 
cboot_error_t checkForSecondStageBlUpdate (BootContext *context, uint32_t currentIndex, bool_t residentOk, bool_t *updateFound)
 Iterates over the available download slots.
 
cboot_error_t updateSecondStageBl (BootContext *context)
 Install the 2nd stage bootloader update.
 
Slot * bootGetActiveSlot (BootContext *context)
 Resolve the active second-stage (BOOT) slot in the primary memory.
 
void jumpToSecondStageBl (BootContext *context)
 Branching to the 2nd stage bootloader.
 

Detailed Description

CycloneBOOT 1st Stage Bootloader managment.

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.

◆ bootGetActiveSlot()

Slot * bootGetActiveSlot ( BootContext *  context)

Resolve the active second-stage (BOOT) slot in the primary memory.

Parameters
[in]contextPointer to Bootloader context
Returns
Pointer to the BOOT slot, or NULL if none is configured

◆ 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.

◆ checkForSecondStageBlUpdate()

cboot_error_t checkForSecondStageBlUpdate ( BootContext *  context,
uint32_t  currentIndex,
bool_t  residentOk,
bool_t *  updateFound 
)

Iterates over the available download slots.

Parameters
[in]contextPointer to Bootloader context
Returns
bool_t TRUE or FALSE based on the presence of a bootloader update

◆ getSecondStageBlIndex()

cboot_error_t getSecondStageBlIndex ( BootContext *  context,
uint32_t *  index 
)

Get the image index of the second stage bootloader.

Parameters
[in]contextPointer to Bootloader context
Returns
cboot_error_t

◆ jumpToSecondStageBl()

void jumpToSecondStageBl ( BootContext *  context)

Branching to the 2nd stage bootloader.

Parameters
[in]contextPointer to Bootloader context

◆ updateSecondStageBl()

cboot_error_t updateSecondStageBl ( BootContext *  context)

Install the 2nd stage bootloader update.

Parameters
[in]contextPointer to Bootloader context
Returns
cboot_error_t