@@ -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,112 @@ 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+ )
130+ target_compile_definitions (image PRIVATE
131+ APP_HAS_SYSTICK
132+ RAMFUNCTION=__attribute__ \(\(used,section \(".ramcode" \),long_call \)\)
133+ )
134+ target_compile_options (image PRIVATE
135+ -ffunction-sections -fdata-sections -fno-common -mlong-calls
136+ )
137+ if (TZEN)
138+ target_sources (image PRIVATE
139+ wcs/wolfcrypt_secure.c
140+ )
141+ if (WOLFCRYPT_TZ)
142+ target_sources (image PRIVATE
143+ ../lib/wolfssl/wolfcrypt/src/logging.c
144+ ../lib/wolfssl/wolfcrypt/test/test.c
145+ ../lib/wolfssl/wolfcrypt/benchmark/benchmark.c
146+ )
147+ endif ()
148+ endif ()
149+ endif ()
150+
151+ # stm32l5-specific sources
152+ if ("${WOLFBOOT_TARGET} " STREQUAL "stm32l5" )
153+ target_sources (image PRIVATE
154+ ../hal/uart/uart_drv_stm32l5.c
155+ )
156+ target_compile_options (image PRIVATE
157+ -ffunction-sections -fdata-sections -fno-common
158+ )
159+ endif ()
160+
113161 target_include_directories (image PRIVATE
114162 ../
115163 ../include
116164 ${CMAKE_CURRENT_BINARY_DIR} )
117165
118- target_link_libraries (image wolfboot target )
166+ if (TZEN)
167+ target_include_directories (image PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} /wcs )
168+ endif ()
169+
170+ if (WOLFCRYPT_TZ_PKCS11)
171+ target_include_directories (image PRIVATE ../lib/wolfPKCS11 )
172+ endif ()
173+
174+ # For TrustZone builds, avoid linking the bootloader lib (it defines NSC stubs).
175+ if (TZEN AND WOLFCRYPT_TZ)
176+ target_sources (image PRIVATE ../src/libwolfboot.c )
177+ if (NOT SIGN STREQUAL "NONE" )
178+ set_source_files_properties (${CMAKE_BINARY_DIR} /keystore.c PROPERTIES GENERATED TRUE )
179+ target_sources (image PRIVATE ${CMAKE_BINARY_DIR} /keystore.c )
180+ add_dependencies (image keystore )
181+ endif ()
182+ target_link_libraries (image PRIVATE wolfboothal target )
183+ else ()
184+ target_link_libraries (image PRIVATE wolfboot wolfboothal public_key target )
185+ endif ()
186+
187+ # For TrustZone builds, the test app is a non-secure application
188+ if (TZEN AND WOLFCRYPT_TZ)
189+ list (APPEND TEST_APP_COMPILE_DEFINITIONS NONSECURE_APP WOLFBOOT_SECURE_CALLS)
190+ add_dependencies (image wolfboot_${PLATFORM_NAME} )
191+ target_link_libraries (image PRIVATE ${CMAKE_BINARY_DIR} /wc_secure_calls.o )
192+ endif ()
193+
194+ if (WOLFCRYPT_TZ_PKCS11)
195+ list (APPEND TEST_APP_COMPILE_DEFINITIONS WOLFBOOT_PKCS11_APP SECURE_PKCS11)
196+ target_sources (image PRIVATE
197+ wcs/pkcs11_stub.c
198+ wcs/pkcs11_test_ecc.c
199+ ../lib/wolfssl/wolfcrypt/src/ecc.c
200+ ../lib/wolfssl/wolfcrypt/src/rsa.c
201+ ../lib/wolfssl/wolfcrypt/src/asn.c
202+ ../lib/wolfssl/wolfcrypt/src/aes.c
203+ ../lib/wolfssl/wolfcrypt/src/hmac.c
204+ ../lib/wolfssl/wolfcrypt/src/pwdbased.c
205+ ../lib/wolfssl/wolfcrypt/src/hash.c
206+ ../lib/wolfssl/wolfcrypt/src/sha256.c
207+ ../lib/wolfssl/wolfcrypt/src/sha512.c
208+ ../lib/wolfssl/wolfcrypt/src/sha3.c
209+ ../lib/wolfssl/wolfcrypt/src/integer.c
210+ ../lib/wolfssl/wolfcrypt/src/tfm.c
211+ ../lib/wolfssl/wolfcrypt/src/sp_c32.c
212+ ../lib/wolfssl/wolfcrypt/src/sp_int.c
213+ ../lib/wolfssl/wolfcrypt/src/cryptocb.c
214+ ../lib/wolfssl/wolfcrypt/src/wc_pkcs11.c
215+ ../lib/wolfssl/wolfcrypt/src/memory.c
216+ ../lib/wolfssl/wolfcrypt/src/wolfmath.c
217+ ../lib/wolfssl/wolfcrypt/src/dh.c
218+ ../lib/wolfssl/wolfcrypt/src/random.c
219+ ../lib/wolfssl/wolfcrypt/src/coding.c
220+ ../lib/wolfssl/wolfcrypt/src/wc_encrypt.c
221+ ../lib/wolfssl/wolfcrypt/src/wc_port.c
222+ )
223+ if (SPMATH AND NOT NO_ASM)
224+ list (APPEND TEST_APP_COMPILE_DEFINITIONS WOLFSSL_HAVE_SP_RSA WOLFSSL_HAVE_SP_ECC WOLFSSL_SP_ARM_CORTEX_M_ASM)
225+ target_sources (image PRIVATE ../lib/wolfssl/wolfcrypt/src/sp_cortexm.c )
226+ endif ()
227+ endif ()
119228
120229 target_compile_definitions (image PRIVATE TARGET_${WOLFBOOT_TARGET}
121- ${TEST_APP_COMPILE_DEFINITIONS} ${WOLFBOOT_DEFS } )
230+ ${TEST_APP_COMPILE_DEFINITIONS} ${WOLFBOOT_DEFS_PUBLIC } )
122231
123232 target_compile_options (image PRIVATE -Wall -Wstack-usage=1024 -ffreestanding -Wno-unused -fomit-frame-pointer
124233 -nostartfiles )
0 commit comments