wolfBoot/INSTALL.md

89 lines
2.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# wolfBoot Setup Instructions
## Gathering Sources
### Git Command Line
```sh
git clone https://github.com/wolfSSL/wolfBoot.git
cd wolfBoot
git submodule init
git submodule update
```
### Using browser only
Download these:
https://github.com/wolfSSL/wolfBoot/archive/master.zip
https://github.com/wolfSSL/wolfssl/archive/master.zip
1. Extract wolfBoot
2. `cd wolfBoot/lib`
3. 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 APIs)
-> update_*.c (flash/ram wolfBoot_start)
-> test-app (example applications)
-> tools
-> keytools (signing and key generation tools)
```
## Configuration
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`
## Setup the Key
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`).
## Building
```sh
make
```
The “make [target]”
* `keytools`: Build the C version of the key tools
* `wolfboot.bin`: Build the .elf and .bin version of the bootloader only
* `test-app/image.bin`: Builds the test application
* `test-app/image_v1_signed.bin`: Builds the test application signed with version 1
* `factory.bin`: Builds bootloader and test application signed and appended together
Note: Default is “factory.bin”
## Building with Cross Compile
QNX Example:
```sh
source ~/qnx700/qnxsdp-env.sh
make CROSS_COMPILE=aarch64-unknown-nto-qnx7.0.0-
```