@@ -53,6 +53,18 @@ if("${WOLFBOOT_TARGET}" STREQUAL "stm32h7")
5353 set (APP_LSCRIPT_TEMPLATE ${CMAKE_CURRENT_SOURCE_DIR} /ARM-stm32h7.ld)
5454elseif ("${WOLFBOOT_TARGET} " STREQUAL "stm32u5" )
5555 set (APP_LSCRIPT_TEMPLATE ${CMAKE_CURRENT_SOURCE_DIR} /ARM-stm32u5.ld)
56+ elseif ("${WOLFBOOT_TARGET} " STREQUAL "stm32h5" )
57+ if (TZEN)
58+ set (APP_LSCRIPT_TEMPLATE ${CMAKE_CURRENT_SOURCE_DIR} /ARM-stm32h5-ns.ld)
59+ else ()
60+ set (APP_LSCRIPT_TEMPLATE ${CMAKE_CURRENT_SOURCE_DIR} /ARM-stm32h5.ld)
61+ endif ()
62+ elseif ("${WOLFBOOT_TARGET} " STREQUAL "stm32l5" )
63+ if (TZEN)
64+ set (APP_LSCRIPT_TEMPLATE ${CMAKE_CURRENT_SOURCE_DIR} /ARM-stm32l5-ns.ld)
65+ else ()
66+ set (APP_LSCRIPT_TEMPLATE ${CMAKE_CURRENT_SOURCE_DIR} /ARM-stm32l5.ld)
67+ endif ()
5668else ()
5769 set (APP_LSCRIPT_TEMPLATE ${CMAKE_CURRENT_SOURCE_DIR} /${ARCH} .ld)
5870endif ()
@@ -110,15 +122,108 @@ if(BUILD_TEST_APPS)
110122
111123 target_sources (image PRIVATE ${APP_SOURCES} )
112124
125+ # stm32h5-specific sources
126+ if ("${WOLFBOOT_TARGET} " STREQUAL "stm32h5" )
127+ target_sources (image PRIVATE
128+ ../hal/uart/uart_drv_stm32h5.c
129+ ../src/keystore.c
130+ )
131+ target_compile_definitions (image PRIVATE
132+ APP_HAS_SYSTICK
133+ RAMFUNCTION=__attribute__ \(\(used,section \(".ramcode" \),long_call \)\)
134+ )
135+ target_compile_options (image PRIVATE
136+ -ffunction-sections -fdata-sections -fno-common -mlong-calls
137+ )
138+ if (TZEN)
139+ target_sources (image PRIVATE
140+ wcs/wolfcrypt_secure.c
141+ )
142+ if (WOLFCRYPT_TZ)
143+ target_sources (image PRIVATE
144+ ../lib/wolfssl/wolfcrypt/src/logging.c
145+ ../lib/wolfssl/wolfcrypt/test/test.c
146+ ../lib/wolfssl/wolfcrypt/benchmark/benchmark.c
147+ )
148+ endif ()
149+ endif ()
150+ endif ()
151+
152+ # stm32l5-specific sources
153+ if ("${WOLFBOOT_TARGET} " STREQUAL "stm32l5" )
154+ target_sources (image PRIVATE
155+ ../hal/uart/uart_drv_stm32l5.c
156+ )
157+ target_compile_options (image PRIVATE
158+ -ffunction-sections -fdata-sections -fno-common
159+ )
160+ endif ()
161+
113162 target_include_directories (image PRIVATE
114163 ../
115164 ../include
116165 ${CMAKE_CURRENT_BINARY_DIR} )
117166
118- target_link_libraries (image wolfboot target )
167+ if (TZEN)
168+ target_include_directories (image PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} /wcs )
169+ endif ()
170+
171+ if (WOLFCRYPT_TZ_PKCS11)
172+ target_include_directories (image PRIVATE ../lib/wolfPKCS11 )
173+ endif ()
174+
175+ # For TrustZone builds, avoid linking the bootloader lib (it defines NSC stubs).
176+ if (TZEN AND WOLFCRYPT_TZ)
177+ target_sources (image PRIVATE ../src/libwolfboot.c )
178+ target_link_libraries (image PRIVATE wolfboothal target )
179+ else ()
180+ target_link_libraries (image PRIVATE wolfboot wolfboothal public_key target )
181+ endif ()
182+
183+ # For TrustZone builds, the test app is a non-secure application
184+ if (TZEN AND WOLFCRYPT_TZ)
185+ list (APPEND TEST_APP_COMPILE_DEFINITIONS NONSECURE_APP WOLFBOOT_SECURE_CALLS)
186+ add_dependencies (image wolfboot_${PLATFORM_NAME} )
187+ target_link_libraries (image PRIVATE ${CMAKE_BINARY_DIR} /wc_secure_calls.o )
188+ endif ()
189+
190+ if (WOLFCRYPT_TZ_PKCS11)
191+ list (APPEND TEST_APP_COMPILE_DEFINITIONS WOLFBOOT_PKCS11_APP SECURE_PKCS11)
192+ target_sources (image PRIVATE
193+ wcs/pkcs11_stub.c
194+ wcs/pkcs11_test_ecc.c
195+ ../lib/wolfssl/wolfcrypt/src/ecc.c
196+ ../lib/wolfssl/wolfcrypt/src/rsa.c
197+ ../lib/wolfssl/wolfcrypt/src/asn.c
198+ ../lib/wolfssl/wolfcrypt/src/aes.c
199+ ../lib/wolfssl/wolfcrypt/src/hmac.c
200+ ../lib/wolfssl/wolfcrypt/src/pwdbased.c
201+ ../lib/wolfssl/wolfcrypt/src/hash.c
202+ ../lib/wolfssl/wolfcrypt/src/sha256.c
203+ ../lib/wolfssl/wolfcrypt/src/sha512.c
204+ ../lib/wolfssl/wolfcrypt/src/sha3.c
205+ ../lib/wolfssl/wolfcrypt/src/integer.c
206+ ../lib/wolfssl/wolfcrypt/src/tfm.c
207+ ../lib/wolfssl/wolfcrypt/src/sp_c32.c
208+ ../lib/wolfssl/wolfcrypt/src/sp_int.c
209+ ../lib/wolfssl/wolfcrypt/src/cryptocb.c
210+ ../lib/wolfssl/wolfcrypt/src/wc_pkcs11.c
211+ ../lib/wolfssl/wolfcrypt/src/memory.c
212+ ../lib/wolfssl/wolfcrypt/src/wolfmath.c
213+ ../lib/wolfssl/wolfcrypt/src/dh.c
214+ ../lib/wolfssl/wolfcrypt/src/random.c
215+ ../lib/wolfssl/wolfcrypt/src/coding.c
216+ ../lib/wolfssl/wolfcrypt/src/wc_encrypt.c
217+ ../lib/wolfssl/wolfcrypt/src/wc_port.c
218+ )
219+ if (SPMATH AND NOT NO_ASM)
220+ list (APPEND TEST_APP_COMPILE_DEFINITIONS WOLFSSL_HAVE_SP_RSA WOLFSSL_HAVE_SP_ECC WOLFSSL_SP_ARM_CORTEX_M_ASM)
221+ target_sources (image PRIVATE ../lib/wolfssl/wolfcrypt/src/sp_cortexm.c )
222+ endif ()
223+ endif ()
119224
120225 target_compile_definitions (image PRIVATE TARGET_${WOLFBOOT_TARGET}
121- ${TEST_APP_COMPILE_DEFINITIONS} ${WOLFBOOT_DEFS } )
226+ ${TEST_APP_COMPILE_DEFINITIONS} ${WOLFBOOT_DEFS_PUBLIC } )
122227
123228 target_compile_options (image PRIVATE -Wall -Wstack-usage=1024 -ffreestanding -Wno-unused -fomit-frame-pointer
124229 -nostartfiles )
0 commit comments