1
1
# wolfBoot
2
+
2
3
wolfSSL Secure Bootloader ([ Home page] ( https://www.wolfssl.com/products/wolfboot/ ) )
3
4
4
5
wolfBoot is a portable, OS-agnostic, secure bootloader solution for 32-bit microcontrollers,
@@ -8,7 +9,6 @@ Due to the minimalist design of the bootloader and the tiny HAL API, wolfBoot is
8
9
from any OS or bare-metal application, and can be easily ported and integrated in existing embedded software
9
10
projects to provide a secure firmware update mechanism.
10
11
11
-
12
12
## Features
13
13
- Multi-slot partitioning of the flash device
14
14
- Integrity verification of the firmware image(s)
@@ -93,16 +93,19 @@ For more detailed information about firmware update implementation, see [Firmwar
93
93
94
94
### Makefile
95
95
96
- To build using the Makefile, create a ` .config ` file with your build specifications in the wolfBoot root directory. You can find a
96
+ To build using the Makefile, create a ` .config ` file with your build specifications in the wolfBoot root directory. You can find a
97
97
number of examples that you can use inside [ config/examples] ( config/examples ) . Then run ` make keytools ` to generate the signing
98
- and key generation tools. If you have wolfCrypt-py installed and would like to use it, you can skip this step.
98
+ and key generation tools. If you have wolfCrypt-py installed and would like to use it, you can skip this step.
99
+
100
+ Documentation for the flash configuration options used in ` .config ` can be found in [ docs/compile.md] ( docs/compile.md ) .
99
101
100
102
For example, to build using our provided ` stm32h7.config ` :
103
+
101
104
```
102
105
cp config/examples/stm32h7.config .config
103
106
make keytools
104
107
make
105
- ```
108
+ ```
106
109
107
110
### CMake
108
111
@@ -116,7 +119,7 @@ $ mkdir build
116
119
$ cd build
117
120
$ cmake -DWOLFBOOT_TARGET=stm32h7 -DBUILD_TEST_APPS=yes -DWOLFBOOT_PARTITION_BOOT_ADDRESS=0x8020000 -DWOLFBOOT_SECTOR_SIZE=0x20000 -DWOLFBOOT_PARTITION_SIZE=0xD0000 -DWOLFBOOT_PARTITION_UPDATE_ADDRESS=0x80F0000 -DWOLFBOOT_PARTITION_SWAP_ADDRESS=0x81C0000 ..
118
121
$ make
119
- ```
122
+ ```
120
123
121
124
The output should look something like:
122
125
```
@@ -174,7 +177,7 @@ Selected cipher: ECC256
174
177
Selected hash : SHA256
175
178
Public key: /home/user/wolfBoot/build/wolfboot_signing_private_key.der
176
179
Output image: /home/user/wolfBoot/build/test-app/image_v1_signed.bin
177
- Target partition id : 1
180
+ Target partition id : 1
178
181
Calculating SHA256 digest...
179
182
Signing the digest...
180
183
Output image(s) successfully created.
@@ -206,7 +209,7 @@ Selected cipher: ECC256
206
209
Selected hash : SHA256
207
210
Public key: /home/user/wolfBoot/build/wolfboot_signing_private_key.der
208
211
Output image: /home/user/wolfBoot/build/test-app/image_v1_signed.bin
209
- Target partition id : 1
212
+ Target partition id : 1
210
213
Calculating SHA256 digest...
211
214
Signing the digest...
212
215
Output image(s) successfully created.
@@ -223,12 +226,12 @@ Signing and hashing algorithms can be specified with `-DSIGN=<alg>` and `-DHASH=
223
226
options to configuring wolfBoot, add ` -LAH ` to your cmake command, along with the partition specifications.
224
227
```
225
228
$ cmake -DWOLFBOOT_TARGET=stm32h7 -DWOLFBOOT_PARTITION_BOOT_ADDRESS=0x8020000 -DWOLFBOOT_SECTOR_SIZE=0x20000 -DWOLFBOOT_PARTITION_SIZE=0xD0000 -DWOLFBOOT_PARTITION_UPDATE_ADDRESS=0x80F0000 -DWOLFBOOT_PARTITION_SWAP_ADDRESS=0x81C0000 -LAH ..
226
- ```
229
+ ```
227
230
228
231
##### stm32f4
229
232
```
230
233
$ cmake -DWOLFBOOT_TARGET=stm32f4 -DWOLFBOOT_PARTITION_SIZE=0x20000 -DWOLFBOOT_SECTOR_SIZE=0x20000 -DWOLFBOOT_PARTITION_BOOT_ADDRESS=0x08020000 -DWOLFBOOT_PARTITION_UPDATE_ADDRESS=0x08040000 -DWOLFBOOT_PARTITION_SWAP_ADDRESS=0x08060000 ..
231
- ```
234
+ ```
232
235
233
236
##### stm32u5
234
237
```
0 commit comments