git clone https://github.com/wolfSSL/wolfBoot.git
cd wolfBoot
git submodule init
git submodule update
Download these: https://github.com/wolfSSL/wolfBoot/archive/master.zip https://github.com/wolfSSL/wolfssl/archive/master.zip
- Extract wolfBoot
cd wolfBoot/lib
- Extract wolfSSL (should be named
lib/wolfssl
)
Directory should look like:
wolfBoot
-> config
-> examples (sample configurations)
-> docs (markdown docs)
-> hal (Hardware target abstractions)
-> spi
-> uart
-> IDE
-> include
-> lib (wolfSSL and wolfTPM submodules)
-> wolfssl
-> src
-> wolfcrypt/src
-> src
-> image.c (crypto verify/hash)
-> loader.c (main)
-> libwolfboot.c (User application API’s)
-> update_*.c (flash/ram wolfBoot_start)
-> test-app (example applications)
-> tools
-> keytools (signing and key generation tools)
Use make config
to walk-through setting up the platform, architecture and partition settings.
OR
Use the config/examples
as a template to wolfBoot root as .config
.
Example: cp ./config/examples/zynqmp.config .config
Build the key tools: make keytools
The key generation is handled the first time you use make
, however we do provide some tools to help use existing keys.
See tools in tools/keytool
. Public key(s) are populated into the src/keystore.c
.
The signing key used goes into wolfBoot root (example rsa4096.der
).
make
The “make [target]”
keytools
: Build the C version of the key toolswolfboot.bin
: Build the .elf and .bin version of the bootloader onlytest-app/image.bin
: Builds the test applicationtest-app/image_v1_signed.bin
: Builds the test application signed with version 1factory.bin
: Builds bootloader and test application signed and appended together
Note: Default is “factory.bin”
QNX Example:
source ~/qnx700/qnxsdp-env.sh
make CROSS_COMPILE=aarch64-unknown-nto-qnx7.0.0-