CycloneBOOT 2.6.6
Secure Bootloader for ARM Cortex-M MCU
Loading...
Searching...
No Matches
Secure Bootloader and Firmware Update

CycloneBOOT is a secure bootloader and firmware update library for STM32 and Microchip SAM microcontrollers (Arm Cortex-M). It receives, verifies, decrypts and installs firmware updates, checks the application before every start, and returns to the previous firmware when an update fails.

To try it on a board and integrate it into a project, see Getting Started.

Features

  • Update images checked by an integrity check (CRC32, MD5, SHA-1, SHA-2), HMAC authentication, or an RSA (2048 to 4096 bits) or ECDSA (P-256, P-384, P-521) signature
  • AES-CBC encrypted update images, and encryption of images held in external memory
  • Verified boot: the bootloader checks the signature or the hash of the application before every start
  • Anti-rollback: an image older than the running firmware is refused
  • Fallback to the previous firmware, and resumed installation after a power loss
  • Optional first-stage bootloader, so that the second-stage bootloader can be updated in the field
  • Internal flash and external NOR flash (Quad-SPI, Octal-SPI), including execute-in-place (XiP)
  • No dynamic memory allocation
  • ImageBuilder, a command-line tool for Linux and Windows that builds signed and encrypted update images and generates signing keys

Update Modes

Mode Components Use it when Demo folder
Dual-bank Update library in the application; the MCU swaps flash banks The MCU has dual-bank flash and no bootloader is wanted iap_dual_bank
Hybrid Update library in the application, bootloader at the flash base Verified boot, fallback or external memory is needed, on any MCU hybrid_app_bl
Standalone Bootloader that receives the update itself (UART, TFTP, HTTP) The application carries no update code, or the device must recover without a working application standalone_bl

Demo folders are demo/<vendor>/<board>/<mode>/. An overview of the boards and protocols is at https://www.oryx-embedded.com/resources/open-source-secure-bootloader-demos.html

Supported Devices

MCU family Flash and MCU drivers
STM32 C0, C5, F4, F7, G0, G4, H5, H7, H7RS, L4, L5, N6, U0, U3, U5, WB
Microchip SAM D5x/E5x, E7x
External NOR flash AT25SF128A, M29W128GL, MT25TL01G, MX25L512, MX25LM51245G, MX25UM51245G, MX66UW1G45G, N25Q512A

A new MCU family needs a flash driver and an MCU driver, in src/cyclone_boot/drivers/.

Download and License

CycloneBOOT Open, with the full source code, the demos and ImageBuilder, is available under the GNU General Public License v2.0 or later: https://www.oryx-embedded.com/download/CycloneBOOT.html

Commercial editions (Lite, Pro, Ultimate) are available for closed-source products: https://www.oryx-embedded.com/licensing/commercial/CycloneBOOT.html