Skip to content

Open Source Embedded Bootloader Framework

License

Notifications You must be signed in to change notification settings

matt001k/polyglot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

polyglot

Open Source Embedded Bootloader Framework

polyglot offers a scalable, secure way to load applications to embedded devices. It uses an abstract "serial" layer that allows for any type of serial connection to be used as a way to load firmware. For example, this serial line may be USB, Bluetooth Connection, TCP Socket, etc. as long as it follows the requirements of the callback functions laid out in the bootloader's configuration.

polyglot utilzies AES-CBC encryption/decryption and SHA256 for signing firmware images. These functionalities are all configurable in firmware through the the bootloader's configuration.

Below describes the list of commands available to send to the device.

Bootloader Commands

The following describes the bootloader's flow when loading an application:

Bootloader Flow

CMake Integration

In order to integrate the project with CMake the following must be included:

set(executable_name example)
add_executable(${executable_name})
include(path/to/polyglot/firmware/polyglot.cmake)
setup_polyglot(
    ${path_to_ecdh_pem}
    ${executable_name}
)

...

add_subdirectory(${path/to/polyglot/firmware})

An executable must be added for the bootloader to the project. Then include the path to the polyglot.cmake file. A function setup_polyglot is required with the following variables:

  • Path to directory with the ECDH public and private PEM key files used for signing the bootloader
  • Executable name of the bootloader

Lastly the subdirectory must be added for polyglot to build the library.

About

Open Source Embedded Bootloader Framework

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published