mirror of https://github.com/wolfSSL/wolfBoot.git
Changed RSA4096 to use SP math. Fix to disable dynamic stacks `WOLFSSL_SP_NO_DYN_STACK`. Added G0 details. Update submodules.
parent
27d19d75b6
commit
c14e70a12c
4
arch.mk
4
arch.mk
|
@ -2,10 +2,6 @@
|
||||||
|
|
||||||
UPDATE_OBJS:=./src/update_flash.o
|
UPDATE_OBJS:=./src/update_flash.o
|
||||||
|
|
||||||
ifeq ($(SIGN),RSA4096)
|
|
||||||
SPMATH=0
|
|
||||||
endif
|
|
||||||
|
|
||||||
# check for FASTMATH or SP_MATH
|
# check for FASTMATH or SP_MATH
|
||||||
ifeq ($(SPMATH),1)
|
ifeq ($(SPMATH),1)
|
||||||
MATH_OBJS:=./lib/wolfssl/wolfcrypt/src/sp_int.o
|
MATH_OBJS:=./lib/wolfssl/wolfcrypt/src/sp_int.o
|
||||||
|
|
|
@ -179,16 +179,39 @@ Example 128KB partitioning on STM32-G070:
|
||||||
#define WOLFBOOT_PARTITION_SWAP_ADDRESS 0x1E000
|
#define WOLFBOOT_PARTITION_SWAP_ADDRESS 0x1E000
|
||||||
```
|
```
|
||||||
|
|
||||||
### Building
|
### Building STM32G0
|
||||||
|
|
||||||
Use `make TARGET=stm32g0`. The option `CORTEX_M0` is automatically selected for this target.
|
Reference configuration (see `./config/examples/stm32g0.config`).
|
||||||
|
You can copy this to wolfBoot root as `.config`: `cp ./config/examples/stm32g0.config .config`.
|
||||||
|
To build you can use `make`.
|
||||||
|
|
||||||
|
The TARGET for this is `stm32g0`: `make TARGET=stm32g0`.
|
||||||
|
The option `CORTEX_M0` is automatically selected for this target.
|
||||||
The option `NVM_FLASH_WRITEONCE=1` is mandatory on this target, since the IAP driver does not support
|
The option `NVM_FLASH_WRITEONCE=1` is mandatory on this target, since the IAP driver does not support
|
||||||
multiple writes after each erase operation.
|
multiple writes after each erase operation.
|
||||||
|
|
||||||
Compile with:
|
Compile requirements:
|
||||||
|
|
||||||
`make TARGET=stm32g0 NVM_FLASH_WRITEONCE=1`
|
`make TARGET=stm32g0 NVM_FLASH_WRITEONCE=1`
|
||||||
|
|
||||||
|
### Debugging STM32G0
|
||||||
|
|
||||||
|
Use `make DEBUG=1` and reload firmware.
|
||||||
|
|
||||||
|
```
|
||||||
|
st-flash write factory.bin 0x08000000
|
||||||
|
|
||||||
|
# Start GDB server
|
||||||
|
st-util -p 3333
|
||||||
|
```
|
||||||
|
|
||||||
|
wolfBoot has a .gdbinit to configure GDB
|
||||||
|
|
||||||
|
```
|
||||||
|
arm-none-eabi-gdb
|
||||||
|
add-symbol-file test-app/image.elf 0x08008100
|
||||||
|
mon reset init
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
## STM32WB55
|
## STM32WB55
|
||||||
|
|
||||||
|
|
|
@ -69,6 +69,8 @@
|
||||||
# define WOLFSSL_SP_SMALL
|
# define WOLFSSL_SP_SMALL
|
||||||
# define SP_WORD_SIZE 32
|
# define SP_WORD_SIZE 32
|
||||||
# define WOLFSSL_HAVE_SP_ECC
|
# define WOLFSSL_HAVE_SP_ECC
|
||||||
|
# define WOLFSSL_SP_NO_MALLOC
|
||||||
|
# define WOLFSSL_SP_NO_DYN_STACK
|
||||||
|
|
||||||
/* ECC options disabled to reduce size */
|
/* ECC options disabled to reduce size */
|
||||||
# define NO_ECC_SIGN
|
# define NO_ECC_SIGN
|
||||||
|
@ -86,26 +88,35 @@
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef WOLFBOOT_SIGN_RSA2048
|
#ifdef WOLFBOOT_SIGN_RSA2048
|
||||||
# define HAVE_RSA
|
|
||||||
# define RSA_LOW_MEM
|
# define RSA_LOW_MEM
|
||||||
# define WOLFSSL_RSA_VERIFY_INLINE
|
# define WOLFSSL_RSA_VERIFY_INLINE
|
||||||
|
# define FP_MAX_BITS (2048 * 2)
|
||||||
|
/* sp math */
|
||||||
# define WOLFSSL_HAVE_SP_RSA
|
# define WOLFSSL_HAVE_SP_RSA
|
||||||
# define WOLFSSL_SP
|
# define WOLFSSL_SP
|
||||||
# define WOLFSSL_SP_SMALL
|
# define WOLFSSL_SP_SMALL
|
||||||
# define WOLFSSL_SP_MATH
|
# define WOLFSSL_SP_MATH
|
||||||
# define SP_WORD_SIZE 32
|
# define SP_WORD_SIZE 32
|
||||||
# define WOLFSSL_SP_NO_3072
|
# define WOLFSSL_SP_NO_3072
|
||||||
|
# define WOLFSSL_SP_NO_MALLOC
|
||||||
|
# define WOLFSSL_SP_NO_DYN_STACK
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef WOLFBOOT_SIGN_RSA4096
|
#ifdef WOLFBOOT_SIGN_RSA4096
|
||||||
# define HAVE_RSA
|
|
||||||
# define RSA_LOW_MEM
|
# define RSA_LOW_MEM
|
||||||
# define WOLFSSL_RSA_PUBLIC_ONLY
|
|
||||||
# define WOLFSSL_RSA_VERIFY_INLINE
|
# define WOLFSSL_RSA_VERIFY_INLINE
|
||||||
# define FP_MAX_BITS (4096 * 2)
|
# define FP_MAX_BITS (4096 * 2)
|
||||||
# define WC_RSA_BLINDING
|
/* sp math */
|
||||||
# define USE_FAST_MATH
|
# define WOLFSSL_HAVE_SP_RSA
|
||||||
# define TFM_TIMING_RESISTANT
|
# define WOLFSSL_SP
|
||||||
|
# define WOLFSSL_SP_SMALL
|
||||||
|
# define WOLFSSL_SP_MATH
|
||||||
|
# define SP_WORD_SIZE 32
|
||||||
|
# define WOLFSSL_SP_4096
|
||||||
|
# define WOLFSSL_SP_NO_2048
|
||||||
|
# define WOLFSSL_SP_NO_3072
|
||||||
|
# define WOLFSSL_SP_NO_MALLOC
|
||||||
|
# define WOLFSSL_SP_NO_DYN_STACK
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef WOLFBOOT_HASH_SHA3_384
|
#ifdef WOLFBOOT_HASH_SHA3_384
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
Subproject commit 30c4ace7cc7a19d8100b5cfea85bd30dae99194c
|
Subproject commit c4810e1b070ff950b6274e4ade0960d0bc010bf0
|
|
@ -1 +1 @@
|
||||||
Subproject commit b11b08bb100b4be303842f14d700daea646133c1
|
Subproject commit 761bebc4a0ea3305f5a44d257bb7c37f774e7f3c
|
|
@ -75,7 +75,6 @@ ifeq ($(SIGN),RSA4096)
|
||||||
./lib/wolfssl/wolfcrypt/src/rsa.o \
|
./lib/wolfssl/wolfcrypt/src/rsa.o \
|
||||||
./lib/wolfssl/wolfcrypt/src/asn.o \
|
./lib/wolfssl/wolfcrypt/src/asn.o \
|
||||||
./lib/wolfssl/wolfcrypt/src/hash.o \
|
./lib/wolfssl/wolfcrypt/src/hash.o \
|
||||||
./lib/wolfssl/wolfcrypt/src/wolfmath.o \
|
|
||||||
./lib/wolfssl/wolfcrypt/src/wc_port.o \
|
./lib/wolfssl/wolfcrypt/src/wc_port.o \
|
||||||
./src/xmalloc_rsa.o
|
./src/xmalloc_rsa.o
|
||||||
PUBLIC_KEY_OBJS=./src/rsa4096_pub_key.o
|
PUBLIC_KEY_OBJS=./src/rsa4096_pub_key.o
|
||||||
|
|
Loading…
Reference in New Issue