Skip to content

Commit 0aa5ce0

Browse files
authored
Merge pull request #420 from danielinux/stm32h5
Support for STM32H5
2 parents dc92ac3 + 3ec9821 commit 0aa5ce0

37 files changed

+2004
-1105
lines changed

.github/workflows/test-configs.yml

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -239,6 +239,24 @@ jobs:
239239
arch: arm
240240
config-file: ./config/examples/stm32g0.config
241241

242+
stm32h5_test:
243+
uses: ./.github/workflows/test-build.yml
244+
with:
245+
arch: arm
246+
config-file: ./config/examples/stm32h5.config
247+
248+
stm32h5_dualbank_test:
249+
uses: ./.github/workflows/test-build.yml
250+
with:
251+
arch: arm
252+
config-file: ./config/examples/stm32h5-dualbank.config
253+
254+
stm32h5_wolfcrypt_tz:
255+
uses: ./.github/workflows/test-build.yml
256+
with:
257+
arch: arm
258+
config-file: ./config/examples/stm32h5-wolfcrypt-tz.config
259+
242260
stm32h7_test:
243261
uses: ./.github/workflows/test-build.yml
244262
with:
@@ -283,6 +301,12 @@ jobs:
283301
arch: arm
284302
config-file: ./config/examples/stm32l5.config
285303

304+
stm32l5_wolfcrypt_tz:
305+
uses: ./.github/workflows/test-build.yml
306+
with:
307+
arch: arm
308+
config-file: ./config/examples/stm32l5-wolfcrypt-tz.config
309+
286310
stm32u5_nonsecure_dualbank_test:
287311
uses: ./.github/workflows/test-build.yml
288312
with:
@@ -295,6 +319,12 @@ jobs:
295319
arch: arm
296320
config-file: ./config/examples/stm32u5.config
297321

322+
stm32u5_wolfcrypt_tz:
323+
uses: ./.github/workflows/test-build.yml
324+
with:
325+
arch: arm
326+
config-file: ./config/examples/stm32u5-wolfcrypt-tz.config
327+
298328
stm32wb_delta_enc_ext_test:
299329
uses: ./.github/workflows/test-build.yml
300330
with:

Makefile

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,7 @@ endif
7878
MAIN_TARGET=factory.bin
7979
TARGET_H_TEMPLATE:=include/target.h.in
8080

81+
ifeq ($(TZEN),1)
8182
ifeq ($(TARGET),stm32l5)
8283
# Don't build a contiguous image
8384
MAIN_TARGET:=wolfboot.bin test-app/image_v1_signed.bin
@@ -88,6 +89,12 @@ ifeq ($(TARGET),stm32u5)
8889
MAIN_TARGET:=wolfboot.bin test-app/image_v1_signed.bin
8990
endif
9091

92+
ifeq ($(TARGET),stm32h5)
93+
# Don't build a contiguous image
94+
MAIN_TARGET:=wolfboot.bin test-app/image_v1_signed.bin
95+
endif
96+
endif # TZEN=1
97+
9198
ifeq ($(TARGET),x86_64_efi)
9299
MAIN_TARGET:=wolfboot.efi
93100
endif

arch.mk

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -146,8 +146,6 @@ ifeq ($(ARCH),ARM)
146146
WOLFBOOT_ORIGIN=0x0C000000
147147
else
148148
WOLFBOOT_ORIGIN=0x08000000
149-
endif
150-
ifneq ($(TZEN),1)
151149
LSCRIPT_IN=hal/$(TARGET)-ns.ld
152150
endif
153151
endif
@@ -160,6 +158,20 @@ ifeq ($(ARCH),ARM)
160158
WOLFBOOT_ORIGIN=0x0C000000
161159
else
162160
WOLFBOOT_ORIGIN=0x08000000
161+
LSCRIPT_IN=hal/$(TARGET)-ns.ld
162+
endif
163+
SPI_TARGET=stm32
164+
endif
165+
166+
ifeq ($(TARGET),stm32h5)
167+
CORTEX_M33=1
168+
CFLAGS+=-Ihal
169+
ARCH_FLASH_OFFSET=0x08000000
170+
ifeq ($(TZEN),1)
171+
WOLFBOOT_ORIGIN=0x0C000000
172+
else
173+
WOLFBOOT_ORIGIN=0x08000000
174+
LSCRIPT_IN=hal/$(TARGET)-ns.ld
163175
endif
164176
SPI_TARGET=stm32
165177
endif
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
ARCH?=ARM
2+
TZEN?=0
3+
TARGET?=stm32h5
4+
SIGN?=ECC256
5+
HASH?=SHA256
6+
DEBUG?=0
7+
VTOR?=1
8+
CORTEX_M0?=0
9+
CORTEX_M33?=1
10+
NO_ASM?=0
11+
NO_MPU=1
12+
EXT_FLASH?=0
13+
SPI_FLASH?=0
14+
ALLOW_DOWNGRADE?=0
15+
NVM_FLASH_WRITEONCE?=1
16+
WOLFBOOT_VERSION?=1
17+
V?=0
18+
SPMATH?=1
19+
RAM_CODE?=0
20+
DUALBANK_SWAP?=1
21+
WOLFBOOT_PARTITION_SIZE?=0xC0000
22+
WOLFBOOT_SECTOR_SIZE?=0x2000
23+
WOLFBOOT_PARTITION_BOOT_ADDRESS?=0x08040000
24+
WOLFBOOT_PARTITION_UPDATE_ADDRESS?=0x8140000
25+
WOLFBOOT_PARTITION_SWAP_ADDRESS?=0xFFFFFFFF
26+
FLAGS_HOME=0
27+
DISABLE_BACKUP=0
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
ARCH?=ARM
2+
TZEN?=1
3+
TARGET?=stm32h5
4+
SIGN?=ECC256
5+
HASH?=SHA256
6+
DEBUG?=0
7+
VTOR?=1
8+
CORTEX_M0?=0
9+
CORTEX_M33?=1
10+
NO_ASM?=0
11+
NO_MPU=1
12+
EXT_FLASH?=0
13+
SPI_FLASH?=0
14+
ALLOW_DOWNGRADE?=0
15+
NVM_FLASH_WRITEONCE?=1
16+
WOLFBOOT_VERSION?=1
17+
V?=0
18+
SPMATH?=1
19+
RAM_CODE?=0
20+
DUALBANK_SWAP?=0
21+
WOLFBOOT_PARTITION_SIZE?=0xC0000
22+
WOLFBOOT_SECTOR_SIZE?=0x2000
23+
WOLFBOOT_PARTITION_BOOT_ADDRESS?=0x08040000
24+
WOLFBOOT_PARTITION_UPDATE_ADDRESS?=0x8140000
25+
WOLFBOOT_PARTITION_SWAP_ADDRESS?=0x08010000
26+
FLAGS_HOME=0
27+
DISABLE_BACKUP=0
28+
WOLFCRYPT_TZ=1
29+
WOLFCRYPT_TZ_PKCS11=1

config/examples/stm32h5.config

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
ARCH?=ARM
2+
TZEN?=1
3+
TARGET?=stm32h5
4+
SIGN?=ECC256
5+
HASH?=SHA256
6+
DEBUG?=0
7+
VTOR?=1
8+
CORTEX_M0?=0
9+
CORTEX_M33?=1
10+
NO_ASM?=0
11+
NO_MPU=1
12+
EXT_FLASH?=0
13+
SPI_FLASH?=0
14+
ALLOW_DOWNGRADE?=0
15+
NVM_FLASH_WRITEONCE?=1
16+
WOLFBOOT_VERSION?=1
17+
V?=0
18+
SPMATH?=1
19+
RAM_CODE?=0
20+
DUALBANK_SWAP?=0
21+
WOLFBOOT_PARTITION_SIZE?=0xC0000
22+
WOLFBOOT_SECTOR_SIZE?=0x2000
23+
WOLFBOOT_PARTITION_BOOT_ADDRESS?=0x08040000
24+
WOLFBOOT_PARTITION_UPDATE_ADDRESS?=0x8140000
25+
WOLFBOOT_PARTITION_SWAP_ADDRESS?=0x08010000
26+
FLAGS_HOME=0
27+
DISABLE_BACKUP=0

config/examples/stm32l5.config

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
ARCH?=ARM
2-
TZEN?=1
2+
TZEN?=0
33
TARGET?=stm32l5
44
SIGN?=ECC256
55
HASH?=SHA256
@@ -17,11 +17,12 @@ WOLFBOOT_VERSION?=1
1717
V?=0
1818
SPMATH?=1
1919
RAM_CODE?=0
20-
DUALBANK_SWAP?=0
21-
WOLFBOOT_PARTITION_SIZE?=0x1F800
22-
WOLFBOOT_SECTOR_SIZE?=0x800
23-
WOLFBOOT_PARTITION_BOOT_ADDRESS?=0x08040000
24-
WOLFBOOT_PARTITION_UPDATE_ADDRESS?=0x805F800
25-
WOLFBOOT_PARTITION_SWAP_ADDRESS?=0x0807F000
26-
FLAGS_HOME=0
27-
DISABLE_BACKUP=0
20+
DUALBANK_SWAP?=1
21+
WOLFBOOT_PARTITION_SIZE?=0x30000
22+
WOLFBOOT_SECTOR_SIZE?=0x2000
23+
WOLFBOOT_PARTITION_BOOT_ADDRESS?=0x08010000
24+
WOLFBOOT_PARTITION_UPDATE_ADDRESS?=0x08110000
25+
WOLFBOOT_PARTITION_SWAP_ADDRESS?=0xFFFFFFFF
26+
27+
# Use a larger image header size to enforce alignment requirements for the interrupt vector table
28+
IMAGE_HEADER_SIZE?=1024

config/examples/stm32u5-nonsecure-dualbank.config

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ TZEN?=0
33
TARGET?=stm32u5
44
SIGN?=ECC256
55
HASH?=SHA256
6-
DEBUG?=1
6+
DEBUG?=0
77
VTOR?=1
88
CORTEX_M0?=0
99
CORTEX_M33?=1
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
ARCH?=ARM
2+
TZEN?=1
3+
TARGET?=stm32u5
4+
SIGN?=ECC256
5+
HASH?=SHA256
6+
DEBUG?=0
7+
VTOR?=1
8+
CORTEX_M0?=0
9+
CORTEX_M33?=1
10+
NO_ASM?=0
11+
NO_MPU=1
12+
EXT_FLASH?=0
13+
SPI_FLASH?=0
14+
ALLOW_DOWNGRADE?=0
15+
NVM_FLASH_WRITEONCE?=1
16+
WOLFBOOT_VERSION?=1
17+
V?=0
18+
SPMATH?=1
19+
RAM_CODE?=0
20+
DUALBANK_SWAP?=0
21+
WOLFBOOT_PARTITION_SIZE?=0x1F800
22+
WOLFBOOT_SECTOR_SIZE?=0x800
23+
WOLFBOOT_PARTITION_BOOT_ADDRESS?=0x08040000
24+
WOLFBOOT_PARTITION_UPDATE_ADDRESS?=0x805F800
25+
WOLFBOOT_PARTITION_SWAP_ADDRESS?=0x0807F000
26+
FLAGS_HOME=0
27+
DISABLE_BACKUP=0
28+
WOLFCRYPT_TZ=1
29+
WOLFCRYPT_TZ_PKCS11=1

config/examples/stm32u5.config

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ TZEN?=1
33
TARGET?=stm32u5
44
SIGN?=ECC256
55
HASH?=SHA256
6-
DEBUG?=1
6+
DEBUG?=0
77
VTOR?=1
88
CORTEX_M0?=0
99
CORTEX_M33?=1
@@ -18,13 +18,10 @@ V?=0
1818
SPMATH?=1
1919
RAM_CODE?=0
2020
DUALBANK_SWAP?=0
21-
WOLFBOOT_PARTITION_SIZE?=0x20000
22-
WOLFBOOT_SECTOR_SIZE?=0x2000
23-
WOLFBOOT_PARTITION_BOOT_ADDRESS?=0x08100000
24-
WOLFBOOT_PARTITION_UPDATE_ADDRESS?=0x817F000
25-
WOLFBOOT_PARTITION_SWAP_ADDRESS?=0x81FE000
21+
WOLFBOOT_PARTITION_SIZE?=0x1F800
22+
WOLFBOOT_SECTOR_SIZE?=0x800
23+
WOLFBOOT_PARTITION_BOOT_ADDRESS?=0x08040000
24+
WOLFBOOT_PARTITION_UPDATE_ADDRESS?=0x805F800
25+
WOLFBOOT_PARTITION_SWAP_ADDRESS?=0x0807F000
2626
FLAGS_HOME=0
2727
DISABLE_BACKUP=0
28-
29-
# Use a larger image header size to enforce alignment requirements for the interrupt vector table
30-
IMAGE_HEADER_SIZE?=1024

0 commit comments

Comments
 (0)