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

CycloneBOOT standalone bootloader configuration and state machine. More...

#include "boot_config.h"
#include "core/cboot_error.h"
#include "core/verify.h"
#include "modules/memory/memory.h"
#include "os_port.h"
#include "update/update_transport.h"
#include "standalone/boot_recovery.h"
#include "standalone/boot_trigger.h"
#include "update/update.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_RUNTIME_SIGNATURE_CHECK_SUPPORT   DISABLED
 
#define BOOT_RUNTIME_INTEGRITY_CHECK_SUPPORT   DISABLED
 
#define BOOT_TRIGGER_MAILBOX   DISABLED
 
#define BOOT_TRIGGER_WINDOW   DISABLED
 
#define BOOT_TRIGGER_GPIO   ENABLED
 
#define BOOT_TRIGGER_NO_APP   DISABLED
 
#define BOOT_TRIGGER_RESET_CAUSE   DISABLED
 
#define BOOT_TRIGGER_WINDOW_MS   10000
 
#define BOOT_RECV_BUFFER_SIZE   512
 
#define BOOT_RECOVERY_SUPPORT   DISABLED
 
#define BOOT_RECOVERY_AUTO_MODE   DISABLED
 
#define BOOT_RECOVERY_MANUAL_MODE   DISABLED
 
#define BOOT_COUNTER_SUPPORT   DISABLED
 
#define BOOT_COUNTER_MAX_ATTEMPTS   3
 
#define BOOT_FLAG_SUPPORT   DISABLED
 
#define BOOT_FACTORY_SLOT_SUPPORT   DISABLED
 

Enumerations

enum  BootState {
  BOOT_STATE_INIT = 0 , BOOT_STATE_TRIGGER , BOOT_STATE_CHECK_RESIDENT , BOOT_STATE_LISTEN ,
  BOOT_STATE_RECV , BOOT_STATE_INSTALL , BOOT_STATE_RECOVER , BOOT_STATE_BOOT ,
  BOOT_STATE_RESET , BOOT_STATE_ERROR
}
 Standalone bootloader states definition.
 

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 bootCheckResidentImage (const Slot *slot)
 Checks the resident image before it is booted. This is a security gate, not a seam: it is deliberately not replaceable.
 

Detailed Description

CycloneBOOT standalone bootloader configuration and state machine.

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

◆ bootCheckResidentImage()

cboot_error_t bootCheckResidentImage ( const Slot *  slot)

Checks the resident image before it is booted. This is a security gate, not a seam: it is deliberately not replaceable.

Parameters
[in]slotSlot holding the image to be checked
Returns
Error code.

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