Skip to content

Commit 030015c

Browse files
committed
Merge branch 'master' of https://github.com/wolfSSL/wolfBoot into pr-cmake-improvements
2 parents e2c1e14 + 530619e commit 030015c

File tree

113 files changed

+3585
-668
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

113 files changed

+3585
-668
lines changed

.github/workflows/test-configs.yml

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -320,6 +320,12 @@ jobs:
320320
arch: arm
321321
config-file: ./config/examples/stm32h5-tz.config
322322

323+
stm32h5_tz_tpm_test:
324+
uses: ./.github/workflows/test-build.yml
325+
with:
326+
arch: arm
327+
config-file: ./config/examples/stm32h5-tz-tpm.config
328+
323329
stm32h5_tz_dualbank_test:
324330
uses: ./.github/workflows/test-build.yml
325331
with:
@@ -463,6 +469,13 @@ jobs:
463469

464470
# TODO: ti-tms570lc435.config requires CCS_ROOT
465471

472+
# Cannot run on CI without the SDK (see VORAGO_SDK_DIR)
473+
# vorago_va416x0_test:
474+
# uses: ./.github/workflows/test-build.yml
475+
# with:
476+
# arch: arm
477+
# config-file: ./config/examples/vorago_va416x0.config
478+
466479
x86_64_efi_test:
467480
uses: ./.github/workflows/test-build.yml
468481
with:

.github/workflows/test-renode-nrf52.yml

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -61,16 +61,23 @@ jobs:
6161

6262
# LMS TEST
6363
- name: Renode Tests LMS-8-5-5
64-
run: ./tools/renode/docker-test.sh "SIGN=LMS LMS_LEVELS=2 LMS_HEIGHT=5 LMS_WINTERNITZ=8 WOLFBOOT_SMALL_STACK=0 IMAGE_SIGNATURE_SIZE=2644 IMAGE_HEADER_SIZE=5288"
64+
run: ./tools/renode/docker-test.sh "SIGN=LMS LMS_LEVELS=2 LMS_HEIGHT=5 LMS_WINTERNITZ=8 WOLFBOOT_SMALL_STACK=0 IMAGE_SIGNATURE_SIZE=2644 IMAGE_HEADER_SIZE=5288 WOLFBOOT_SECTOR_SIZE=0x2000"
6565

6666
# XMSS TEST
6767
- name: Renode Tests XMSS-SHA2_10_256
68-
run: ./tools/renode/docker-test.sh "SIGN=XMSS XMSS_PARAMS='XMSS-SHA2_10_256' WOLFBOOT_SMALL_STACK=0 IMAGE_SIGNATURE_SIZE=2500 IMAGE_HEADER_SIZE=5000"
68+
run: ./tools/renode/docker-test.sh "SIGN=XMSS XMSS_PARAMS='XMSS-SHA2_10_256' WOLFBOOT_SMALL_STACK=0 IMAGE_SIGNATURE_SIZE=2500 IMAGE_HEADER_SIZE=5000 WOLFBOOT_SECTOR_SIZE=0x2000"
6969

70-
# ML-DSA TEST
70+
# ML-DSA Level 2 TEST
7171
- name: Renode Tests ML-DSA-44
72-
run: ./tools/renode/docker-test.sh "SIGN=ML_DSA ML_DSA_LEVEL=2 WOLFBOOT_SMALL_STACK=0 IMAGE_SIGNATURE_SIZE=2420 IMAGE_HEADER_SIZE=4840"
72+
run: ./tools/renode/docker-test.sh "SIGN=ML_DSA ML_DSA_LEVEL=2 WOLFBOOT_SMALL_STACK=0 IMAGE_SIGNATURE_SIZE=2420 IMAGE_HEADER_SIZE=4840 WOLFBOOT_SECTOR_SIZE=0x2000"
7373

74+
# ML-DSA Level 3 TEST
75+
- name: Renode Tests ML-DSA-65
76+
run: ./tools/renode/docker-test.sh "SIGN=ML_DSA ML_DSA_LEVEL=3 WOLFBOOT_SMALL_STACK=0 IMAGE_SIGNATURE_SIZE=3309 IMAGE_HEADER_SIZE=8192 WOLFBOOT_SECTOR_SIZE=0x2000"
77+
78+
# ML-DSA Level 5 TEST
79+
- name: Renode Tests ML-DSA-87
80+
run: ./tools/renode/docker-test.sh "SIGN=ML_DSA ML_DSA_LEVEL=5 WOLFBOOT_SMALL_STACK=0 IMAGE_SIGNATURE_SIZE=4627 IMAGE_HEADER_SIZE=12288 WOLFBOOT_SECTOR_SIZE=0x3000"
7481

7582
- name: Upload Output Dir
7683
uses: actions/upload-artifact@v4

.github/workflows/test-sunnyday-simulator.yml

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -104,12 +104,12 @@ jobs:
104104
- name: Run dualbank swap simulation
105105
run: |
106106
tools/scripts/sim-dualbank-swap-update.sh
107-
107+
108108
- name: Cleanup before WOLFBOOT_SMALL_STACK test
109109
run: |
110110
make keysclean
111111
mv .config.orig .config
112-
112+
113113
- name: Build wolfboot.elf (ECC256, WOLFBOOT_SMALL_STACK)
114114
run: |
115115
make clean && make test-sim-internal-flash-with-update SIGN=ECC256 WOLFBOOT_SMALL_STACK=1 SPMATH=1
@@ -617,10 +617,18 @@ jobs:
617617
run: |
618618
tools/scripts/sim-pq-sunnyday-update.sh config/examples/sim-xmss.config
619619
620-
- name: Run sunny day ML-DSA update test
620+
- name: Run sunny day ML-DSA level 2 update test
621621
run: |
622622
tools/scripts/sim-pq-sunnyday-update.sh config/examples/sim-ml-dsa.config
623623
624+
- name: Run sunny day ML-DSA level 3 update test
625+
run: |
626+
tools/scripts/sim-pq-sunnyday-update.sh config/examples/sim-ml-dsa3.config
627+
628+
- name: Run sunny day ML-DSA level 5 update test
629+
run: |
630+
tools/scripts/sim-pq-sunnyday-update.sh config/examples/sim-ml-dsa5.config
631+
624632
# 64 Bit simulator, Hybrid auth ML_DSA + ECDSA
625633
#
626634
- name: make clean

Makefile

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -104,8 +104,12 @@ CFLAGS+= \
104104

105105
# Setup default optimizations (for GCC)
106106
ifeq ($(USE_GCC_HEADLESS),1)
107-
CFLAGS+=-Wall -Wextra -Wno-main -ffreestanding -Wno-unused -nostartfiles
107+
CFLAGS+=-Wall -Wextra -Wno-main -ffreestanding -nostartfiles
108108
CFLAGS+=-ffunction-sections -fdata-sections -fomit-frame-pointer
109+
# Allow unused parameters and functions
110+
CFLAGS+=-Wno-unused-parameter -Wno-unused-function
111+
# Error on unused variables
112+
CFLAGS+=-Wunused-variable
109113
LDFLAGS+=-Wl,-gc-sections -Wl,-Map=wolfboot.map -ffreestanding -nostartfiles
110114
# Not setting LDFLAGS directly since it is passed to the test-app
111115
LSCRIPT_FLAGS+=-T $(LSCRIPT)
@@ -402,6 +406,10 @@ $(LSCRIPT): $(LSCRIPT_IN) FORCE
402406
sed -e "s/@ARCH_FLASH_OFFSET@/$(ARCH_FLASH_OFFSET)/g" | \
403407
sed -e "s/@BOOTLOADER_PARTITION_SIZE@/$(BOOTLOADER_PARTITION_SIZE)/g" | \
404408
sed -e "s/@WOLFBOOT_ORIGIN@/$(WOLFBOOT_ORIGIN)/g" | \
409+
sed -e "s/@WOLFBOOT_KEYVAULT_ADDRESS@/$(WOLFBOOT_KEYVAULT_ADDRESS)/g" | \
410+
sed -e "s/@WOLFBOOT_KEYVAULT_SIZE@/$(WOLFBOOT_KEYVAULT_SIZE)/g" | \
411+
sed -e "s/@WOLFBOOT_NSC_ADDRESS@/$(WOLFBOOT_NSC_ADDRESS)/g" | \
412+
sed -e "s/@WOLFBOOT_NSC_SIZE@/$(WOLFBOOT_NSC_SIZE)/g" | \
405413
sed -e "s/@WOLFBOOT_PARTITION_BOOT_ADDRESS@/$(WOLFBOOT_PARTITION_BOOT_ADDRESS)/g" | \
406414
sed -e "s/@WOLFBOOT_PARTITION_SIZE@/$(WOLFBOOT_PARTITION_SIZE)/g" | \
407415
sed -e "s/@WOLFBOOT_PARTITION_UPDATE_ADDRESS@/$(WOLFBOOT_PARTITION_UPDATE_ADDRESS)/g" | \
@@ -465,7 +473,7 @@ utilsclean: clean
465473
$(Q)$(MAKE) -C tools/test-update-server -s clean
466474
$(Q)$(MAKE) -C tools/uart-flash-server -s clean
467475
$(Q)$(MAKE) -C tools/unit-tests -s clean
468-
$(Q)if [ "$(WOLFHSM_CLIENT)" = "1" ]; then $(MAKE) -C lib/wolfHSM/tools/whnvmtool -s clean; fi
476+
$(Q)if [ "$(WOLFHSM_CLIENT)" = "1" ]; then $(MAKE) -C $(WOLFBOOT_LIB_WOLFHSM)/tools/whnvmtool -s clean; fi
469477
$(Q)$(MAKE) -C tools/keytools/otp -s clean
470478
$(Q)$(MAKE) -C tools/squashelf -s clean
471479

@@ -480,6 +488,8 @@ include/target.h: $(TARGET_H_TEMPLATE) FORCE
480488
$(Q)cat $(TARGET_H_TEMPLATE) | \
481489
sed -e "s/@WOLFBOOT_PARTITION_SIZE@/$(WOLFBOOT_PARTITION_SIZE)/g" | \
482490
sed -e "s/@WOLFBOOT_SECTOR_SIZE@/$(WOLFBOOT_SECTOR_SIZE)/g" | \
491+
sed -e "s/@WOLFBOOT_NSC_ADDRESS@/$(WOLFBOOT_NSC_ADDRESS)/g" | \
492+
sed -e "s/@WOLFBOOT_NSC_SIZE@/$(WOLFBOOT_NSC_SIZE)/g" | \
483493
sed -e "s/@WOLFBOOT_PARTITION_BOOT_ADDRESS@/$(WOLFBOOT_PARTITION_BOOT_ADDRESS)/g" | \
484494
sed -e "s/@WOLFBOOT_PARTITION_UPDATE_ADDRESS@/$(WOLFBOOT_PARTITION_UPDATE_ADDRESS)/g" | \
485495
sed -e "s/@WOLFBOOT_PARTITION_SWAP_ADDRESS@/$(WOLFBOOT_PARTITION_SWAP_ADDRESS)/g" | \
@@ -531,6 +541,7 @@ cppcheck:
531541
cppcheck -f --enable=warning --enable=portability \
532542
--suppress="ctunullpointer" --suppress="nullPointer" \
533543
--suppress="objectIndex" --suppress="comparePointers" \
544+
--check-level=exhaustive \
534545
--error-exitcode=89 --std=c89 src/*.c hal/*.c hal/spi/*.c hal/uart/*.c
535546

536547
otp: tools/keytools/otp/otp-keystore-primer.bin FORCE

arch.mk

Lines changed: 53 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -101,12 +101,14 @@ ifeq ($(ARCH),AARCH64)
101101
MATH_OBJS += $(WOLFBOOT_LIB_WOLFSSL)/wolfcrypt/src/sp_c32.o
102102
MATH_OBJS += $(WOLFBOOT_LIB_WOLFSSL)/wolfcrypt/src/sp_arm64.o
103103
endif
104-
ifeq ($(NO_ARM_ASM),0)
104+
ifneq ($(NO_ARM_ASM),1)
105105
ARCH_FLAGS=-mstrict-align
106106
CFLAGS+=$(ARCH_FLAGS) -DWOLFSSL_ARMASM -DWOLFSSL_ARMASM_INLINE -DWC_HASH_DATA_ALIGNMENT=8 -DWOLFSSL_AARCH64_PRIVILEGE_MODE
107107
WOLFCRYPT_OBJS += $(WOLFBOOT_LIB_WOLFSSL)/wolfcrypt/src/cpuid.o \
108108
$(WOLFBOOT_LIB_WOLFSSL)/wolfcrypt/src/port/arm/armv8-sha512-asm_c.o \
109-
$(WOLFBOOT_LIB_WOLFSSL)/wolfcrypt/src/port/arm/armv8-sha3-asm_c.o
109+
$(WOLFBOOT_LIB_WOLFSSL)/wolfcrypt/src/port/arm/armv8-sha3-asm_c.o \
110+
$(WOLFBOOT_LIB_WOLFSSL)/wolfcrypt/src/port/arm/armv8-aes-asm_c.o \
111+
$(WOLFBOOT_LIB_WOLFSSL)/wolfcrypt/src/port/arm/armv8-sha256-asm_c.o
110112
endif
111113
endif
112114

@@ -190,13 +192,14 @@ ifeq ($(ARCH),ARM)
190192
ARCH_FLASH_OFFSET=0x08000000
191193
SPI_TARGET=stm32
192194
ifneq ($(PKA),0)
193-
PKA_EXTRA_OBJS+= $(STM32CUBE)/Drivers/STM32WBxx_HAL_Driver/Src/stm32wbxx_hal_pka.o $(WOLFBOOT_LIB_WOLFSSL)/wolfcrypt/src/port/st/stm32.o
194-
PKA_EXTRA_CFLAGS+=-DWOLFSSL_STM32_PKA -I$(STM32CUBE)/Drivers/STM32WBxx_HAL_Driver/Inc \
195-
-Isrc -I$(STM32CUBE)/Drivers/BSP/P-NUCLEO-WB55.Nucleo/ -I$(STM32CUBE)/Drivers/CMSIS/Device/ST/STM32WBxx/Include \
196-
-I$(STM32CUBE)/Drivers/STM32WBxx_HAL_Driver/Inc/ \
197-
-I$(STM32CUBE)/Drivers/CMSIS/Include \
198-
-Ihal \
199-
-DSTM32WB55xx
195+
PKA_EXTRA_OBJS+= $(STM32CUBE)/Drivers/STM32WBxx_HAL_Driver/Src/stm32wbxx_hal_pka.o $(WOLFBOOT_LIB_WOLFSSL)/wolfcrypt/src/port/st/stm32.o
196+
PKA_EXTRA_CFLAGS+=-DWOLFSSL_STM32WB -DWOLFSSL_STM32_PKA -DWOLFSSL_STM32_CUBEMX -DNO_STM32_HASH -DSTM32WB55xx
197+
PKA_EXTRA_CFLAGS+=-Isrc -Ihal \
198+
-I$(STM32CUBE)/Drivers/STM32WBxx_HAL_Driver/Inc \
199+
-I$(STM32CUBE)/Drivers/BSP/P-NUCLEO-WB55.Nucleo/ \
200+
-I$(STM32CUBE)/Drivers/CMSIS/Device/ST/STM32WBxx/Include \
201+
-I$(STM32CUBE)/Drivers/STM32WBxx_HAL_Driver/Inc \
202+
-I$(STM32CUBE)/Drivers/CMSIS/Include
200203
endif
201204
endif
202205

@@ -250,7 +253,6 @@ ifeq ($(ARCH),ARM)
250253
WOLFBOOT_ORIGIN=0x10000000
251254
ifeq ($(TZEN),1)
252255
LSCRIPT_IN=hal/$(TARGET).ld
253-
CFLAGS+=-DTZEN
254256
else
255257
LSCRIPT_IN=hal/$(TARGET)-ns.ld
256258
endif
@@ -266,6 +268,26 @@ ifeq ($(ARCH),ARM)
266268
CFLAGS+=-DWOLFBOOT_USE_STDLIBC
267269
endif
268270

271+
ifeq ($(TARGET),va416x0)
272+
CFLAGS+=-I$(WOLFBOOT_ROOT)/hal/vorago/ \
273+
-I$(VORAGO_SDK_DIR)/common/drivers/hdr/ \
274+
-I$(VORAGO_SDK_DIR)/common/mcu/hdr/ \
275+
-I$(VORAGO_SDK_DIR)/common/utils/hdr/
276+
SDK_OBJS=$(VORAGO_SDK_DIR)/common/drivers/src/va416xx_hal.o \
277+
$(VORAGO_SDK_DIR)/common/drivers/src/va416xx_hal_spi.o \
278+
$(VORAGO_SDK_DIR)/common/drivers/src/va416xx_hal_clkgen.o \
279+
$(VORAGO_SDK_DIR)/common/drivers/src/va416xx_hal_ioconfig.o \
280+
$(VORAGO_SDK_DIR)/common/drivers/src/va416xx_hal_irqrouter.o \
281+
$(VORAGO_SDK_DIR)/common/drivers/src/va416xx_hal_uart.o \
282+
$(VORAGO_SDK_DIR)/common/drivers/src/va416xx_hal_timer.o \
283+
$(VORAGO_SDK_DIR)/common/mcu/src/system_va416xx.o
284+
ifeq ($(USE_HAL_SPI_FRAM),1)
285+
SDK_OBJS+=$(VORAGO_SDK_DIR)/common/utils/src/spi_fram.o
286+
CFLAGS+=-DUSE_HAL_SPI_FRAM
287+
endif
288+
OBJS+=$(SDK_OBJS)
289+
endif
290+
269291
## Cortex CPU
270292

271293
ifeq ($(CORTEX_A5),1)
@@ -303,7 +325,6 @@ else
303325
$(WOLFBOOT_LIB_WOLFSSL)/wolfcrypt/src/port/arm/thumb2-chacha-asm.o \
304326
$(WOLFBOOT_LIB_WOLFSSL)/wolfcrypt/src/port/arm/thumb2-chacha-asm_c.o
305327

306-
307328
CORTEXM_ARM_EXTRA_CFLAGS+=-DWOLFSSL_ARMASM -DWOLFSSL_ARMASM_NO_HW_CRYPTO \
308329
-DWOLFSSL_ARMASM_NO_NEON -DWOLFSSL_ARMASM_THUMB2
309330
endif
@@ -400,10 +421,6 @@ endif
400421
endif
401422
endif
402423

403-
ifeq ($(TZEN),1)
404-
CFLAGS+=-DTZEN
405-
endif
406-
407424

408425
## Renesas RX
409426
ifeq ($(ARCH),RENESAS_RX)
@@ -673,6 +690,12 @@ ifeq ($(TARGET),mcxw)
673690
$(MCUXPRESSO_DRIVERS)/drivers/fsl_romapi.o
674691
endif
675692

693+
ifeq ($(TARGET),nrf5340_net)
694+
# Net core doesn't support DSP and FP
695+
CFLAGS+=-mcpu=cortex-m33+nodsp+nofp
696+
LDFLAGS+=-mcpu=cortex-m33+nodsp+nofp
697+
endif
698+
676699
ifeq ($(TARGET),imx_rt)
677700
CFLAGS+=\
678701
-I$(MCUXPRESSO_DRIVERS) \
@@ -1160,15 +1183,15 @@ ifeq ($(ARCH), AURIX_TC3)
11601183
# Common wolfHSM port files
11611184
CFLAGS += -I$(WOLFHSM_INFINEON_TC3XX)/port -DWOLFHSM_CFG_DMA
11621185
OBJS += $(WOLFHSM_INFINEON_TC3XX)/port/tchsm_common.o \
1163-
$(WOLFHSM_INFINEON_TC3XX)/port/tchsm_hsmhost.o
1186+
$(WOLFHSM_INFINEON_TC3XX)/port/tchsm_hsmhost.o
11641187
# General wolfHSM files
11651188
OBJS += $(WOLFBOOT_LIB_WOLFHSM)/src/wh_transport_mem.o
11661189

11671190
# NVM image generation variables
11681191
WH_NVM_BIN ?= whNvmImage.bin
11691192
WH_NVM_HEX ?= whNvmImage.hex
11701193
WH_NVM_PART_SIZE ?= 0x8000
1171-
# Default to base of HSM DFLASH1
1194+
# Default to base of HSM DFLASH1
11721195
WH_NVM_BASE_ADDRESS ?= 0xAFC00000
11731196

11741197
# Select config file based on certificate chain verification
@@ -1205,25 +1228,25 @@ ifeq ($(ARCH), AURIX_TC3)
12051228

12061229
LSCRIPT_IN=hal/$(TARGET)_hsm.ld
12071230

1208-
# wolfHSM port server-specific files
1231+
# wolfHSM port server-specific files
12091232
ifeq ($(WOLFHSM_SERVER),1)
12101233
USE_GCC_HEADLESS=0
12111234

12121235
CFLAGS += -I$(WOLFHSM_INFINEON_TC3XX)/port/server
12131236

12141237
OBJS += $(WOLFHSM_INFINEON_TC3XX)/port/server/port_halflash_df1.o \
1215-
$(WOLFHSM_INFINEON_TC3XX)/port/server/io.o \
1216-
$(WOLFHSM_INFINEON_TC3XX)/port/server/sysmem.o \
1217-
$(WOLFHSM_INFINEON_TC3XX)/port/server/tchsm_hh_hsm.o \
1218-
$(WOLFHSM_INFINEON_TC3XX)/port/server/tchsm_utils.o
1219-
1220-
# SW only for now, as we dont have the right protection macros
1221-
#$(WOLFHSM_INFINEON_TC3XX)/port/server/ccb_hsm.o \
1222-
#$(WOLFHSM_INFINEON_TC3XX)/port/server/tchsm_hash.o \
1223-
#$(WOLFHSM_INFINEON_TC3XX)/port/server/tchsm_aes.o \
1224-
#$(WOLFHSM_INFINEON_TC3XX)/port/server/tchsm_cmac.o \
1225-
#$(WOLFHSM_INFINEON_TC3XX)/port/server/tchsm_pk.o \
1226-
#$(WOLFHSM_INFINEON_TC3XX)/port/server/tchsm_trng.o
1238+
$(WOLFHSM_INFINEON_TC3XX)/port/server/io.o \
1239+
$(WOLFHSM_INFINEON_TC3XX)/port/server/sysmem.o \
1240+
$(WOLFHSM_INFINEON_TC3XX)/port/server/tchsm_hh_hsm.o \
1241+
$(WOLFHSM_INFINEON_TC3XX)/port/server/tchsm_utils.o
1242+
1243+
# SW only for now, as we dont have the right protection macros
1244+
#$(WOLFHSM_INFINEON_TC3XX)/port/server/ccb_hsm.o \
1245+
#$(WOLFHSM_INFINEON_TC3XX)/port/server/tchsm_hash.o \
1246+
#$(WOLFHSM_INFINEON_TC3XX)/port/server/tchsm_aes.o \
1247+
#$(WOLFHSM_INFINEON_TC3XX)/port/server/tchsm_cmac.o \
1248+
#$(WOLFHSM_INFINEON_TC3XX)/port/server/tchsm_pk.o \
1249+
#$(WOLFHSM_INFINEON_TC3XX)/port/server/tchsm_trng.o
12271250
endif
12281251

12291252
# HSM BSP specific object files

config/examples/nrf5340.config

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,8 @@ QSPI_FLASH?=1
2626
# Flash is 4KB pages (app)
2727
WOLFBOOT_SECTOR_SIZE?=0x1000
2828

29-
# Application offset (reserve 48KB for wolfBoot)
30-
WOLFBOOT_PARTITION_BOOT_ADDRESS?=0xC000
29+
# Application offset (reserve 64KB for wolfBoot)
30+
WOLFBOOT_PARTITION_BOOT_ADDRESS?=0x10000
3131

3232
# Application Partition Size (952KB)
3333
WOLFBOOT_PARTITION_SIZE?=0xEE000

config/examples/nrf5340_net.config

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,8 @@ ARCH_FLASH_OFFSET=0x01000000
3030
# Flash is 2KB pages
3131
WOLFBOOT_SECTOR_SIZE?=0x800
3232

33-
# Application offset (reserve 48KB for wolfBoot)
34-
WOLFBOOT_PARTITION_BOOT_ADDRESS?=0x0100C000
33+
# Application offset (reserve 64KB for wolfBoot)
34+
WOLFBOOT_PARTITION_BOOT_ADDRESS?=0x01010000
3535

3636
# Application Partition Size (184KB)
3737
WOLFBOOT_PARTITION_SIZE?=0x2E000

config/examples/sim-ml-dsa-ecc-hybrid.config

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,8 @@ SIGN_SECONDARY=ECC384
1313

1414
# sizes should be multiple of system page size
1515
WOLFBOOT_PARTITION_SIZE=0x40000
16-
WOLFBOOT_SECTOR_SIZE=0x1000
16+
# sector size must be larger than IMAGE_HEADER_SIZE
17+
WOLFBOOT_SECTOR_SIZE=0x2000
1718
WOLFBOOT_PARTITION_BOOT_ADDRESS=0x80000
1819
# if on external flash, it should be multiple of system page size
1920
WOLFBOOT_PARTITION_UPDATE_ADDRESS=0x100000

config/examples/sim-ml-dsa.config

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ IMAGE_HEADER_SIZE=8192
4949
# ML_DSA_LEVEL=5
5050
# IMAGE_SIGNATURE_SIZE=4627
5151
# IMAGE_HEADER_SIZE=12288
52-
# This example needsd larger sector size.
52+
# NOTE: This example needs larger sector size.
5353
# WOLFBOOT_SECTOR_SIZE=0x3000
5454
#
5555

config/examples/sim-ml-dsa3.config

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
# ML-DSA signature example, based on sim.config example.
2+
#
3+
# The acceptable parameter values are those in FIPS 204:
4+
#
5+
# ML_DSA_LEVEL = {2, 3, 5}
6+
#
7+
# This corresponds to these security levels (from FIPS 204, Table 1.):
8+
#
9+
# Claimed Security Strength
10+
# ML-DSA-44 Category 2
11+
# ML-DSA-65 Category 3
12+
# ML-DSA-87 Category 5
13+
#
14+
# The signature, pub key, and priv key lengths are all a function
15+
# of this parameter. Refer to this table (from FIPS 204, Table 2.)
16+
# to configure your IMAGE_SIGNATURE_SIZE:
17+
#
18+
# Table 2. Sizes (in bytes) of keys and signatures of ML-DSA
19+
#
20+
# Private Key Public Key Signature Size
21+
# ML-DSA-44 2560 1312 2420
22+
# ML-DSA-65 4032 1952 3309
23+
# ML-DSA-87 4896 2592 4627
24+
#
25+
26+
ARCH=sim
27+
TARGET=sim
28+
SIGN=ML_DSA
29+
HASH=SHA256
30+
WOLFBOOT_SMALL_STACK=0
31+
SPI_FLASH=0
32+
DEBUG=0
33+
DELTA_UPDATES=0
34+
35+
#
36+
# ML-DSA config examples:
37+
#
38+
# Category 3:
39+
ML_DSA_LEVEL=3
40+
IMAGE_SIGNATURE_SIZE=3309
41+
IMAGE_HEADER_SIZE=8192
42+
43+
# sizes should be multiple of system page size
44+
WOLFBOOT_PARTITION_SIZE=0x40000
45+
WOLFBOOT_SECTOR_SIZE=0x2000
46+
WOLFBOOT_PARTITION_BOOT_ADDRESS=0x20000
47+
# if on external flash, it should be multiple of system page size
48+
WOLFBOOT_PARTITION_UPDATE_ADDRESS=0x60000
49+
WOLFBOOT_PARTITION_SWAP_ADDRESS=0xA0000
50+
51+
# required for keytools
52+
WOLFBOOT_FIXED_PARTITIONS=1

0 commit comments

Comments
 (0)