@@ -919,12 +919,24 @@ ifeq ($(WOLFCRYPT_TZ_PKCS11),1)
919919 ifeq ($(WOLFCRYPT_TZ_FWTPM),1)
920920 $(error WOLFCRYPT_TZ_PKCS11 and WOLFCRYPT_TZ_FWTPM are mutually exclusive)
921921 endif
922+ ifeq ($(WOLFCRYPT_TZ_WOLFHSM),1)
923+ $(error WOLFCRYPT_TZ_PKCS11 and WOLFCRYPT_TZ_WOLFHSM are mutually exclusive)
924+ endif
922925endif
923926
924927ifeq ($(WOLFCRYPT_TZ_PSA ) ,1)
925928 ifeq ($(WOLFCRYPT_TZ_FWTPM),1)
926929 $(error WOLFCRYPT_TZ_PSA and WOLFCRYPT_TZ_FWTPM are mutually exclusive)
927930 endif
931+ ifeq ($(WOLFCRYPT_TZ_WOLFHSM),1)
932+ $(error WOLFCRYPT_TZ_PSA and WOLFCRYPT_TZ_WOLFHSM are mutually exclusive)
933+ endif
934+ endif
935+
936+ ifeq ($(WOLFCRYPT_TZ_FWTPM ) ,1)
937+ ifeq ($(WOLFCRYPT_TZ_WOLFHSM),1)
938+ $(error WOLFCRYPT_TZ_FWTPM and WOLFCRYPT_TZ_WOLFHSM are mutually exclusive)
939+ endif
928940endif
929941
930942ifeq ($(WOLFCRYPT_TZ_PKCS11 ) ,1)
@@ -1078,6 +1090,22 @@ ifeq ($(WOLFCRYPT_TZ_FWTPM),1)
10781090 STACK_USAGE =20000
10791091endif
10801092
1093+ ifeq ($(WOLFCRYPT_TZ_WOLFHSM ) ,1)
1094+ CFLAGS+ =-DWOLFCRYPT_TZ_WOLFHSM
1095+ CFLAGS+ =-DWOLFCRYPT_SECURE_MODE
1096+ CFLAGS+ =-DWOLFHSM_CFG_ENABLE_SERVER
1097+ CFLAGS+=-DWOLFHSM_CFG_COMM_DATA_LEN =1280
1098+ CFLAGS+ =-I"$(WOLFBOOT_LIB_WOLFHSM ) "
1099+ ifeq ($(USE_CLANG),1)
1100+ CLANG_MULTILIB_FLAGS: =$(filter -mthumb -mlittle-endian,$(LDFLAGS ) ) $(filter -mcpu=% ,$(CFLAGS ) )
1101+ LIBS+ =$(shell $(CLANG_GCC_NAME ) $(CLANG_MULTILIB_FLAGS ) -print-file-name=libc.a)
1102+ LIBS+ =$(shell $(CLANG_GCC_NAME ) $(CLANG_MULTILIB_FLAGS ) -print-libgcc-file-name)
1103+ else
1104+ LDFLAGS+=--specs =nano.specs
1105+ endif
1106+ STACK_USAGE =20000
1107+ endif
1108+
10811109OBJS+ =$(PUBLIC_KEY_OBJS )
10821110ifneq ($(STAGE1 ) ,1)
10831111 OBJS+ =$(UPDATE_OBJS )
@@ -1273,6 +1301,44 @@ ifneq ($(WOLFBOOT_PART_ID),)
12731301 SIGN_OPTIONS+ =--id $(WOLFBOOT_PART_ID )
12741302endif
12751303
1304+ # Shared wolfHSM client/server object lists. Both the legacy WOLFHSM_CLIENT=1 /
1305+ # WOLFHSM_SERVER=1 flags and the WOLFCRYPT_TZ_WOLFHSM=1 TZ engine reference
1306+ # these to avoid object-list duplication.
1307+ WOLFHSM_CLIENT_OBJS := \
1308+ $(WOLFBOOT_LIB_WOLFHSM ) /src/wh_client.o \
1309+ $(WOLFBOOT_LIB_WOLFHSM ) /src/wh_client_nvm.o \
1310+ $(WOLFBOOT_LIB_WOLFHSM ) /src/wh_client_cryptocb.o \
1311+ $(WOLFBOOT_LIB_WOLFHSM ) /src/wh_client_crypto.o \
1312+ $(WOLFBOOT_LIB_WOLFHSM ) /src/wh_client_dma.o \
1313+ $(WOLFBOOT_LIB_WOLFHSM ) /src/wh_crypto.o \
1314+ $(WOLFBOOT_LIB_WOLFHSM ) /src/wh_dma.o \
1315+ $(WOLFBOOT_LIB_WOLFHSM ) /src/wh_utils.o \
1316+ $(WOLFBOOT_LIB_WOLFHSM ) /src/wh_comm.o \
1317+ $(WOLFBOOT_LIB_WOLFHSM ) /src/wh_message_comm.o \
1318+ $(WOLFBOOT_LIB_WOLFHSM ) /src/wh_message_nvm.o \
1319+ $(WOLFBOOT_LIB_WOLFHSM ) /src/wh_message_customcb.o
1320+
1321+ WOLFHSM_SERVER_OBJS := \
1322+ $(WOLFBOOT_LIB_WOLFHSM ) /src/wh_utils.o \
1323+ $(WOLFBOOT_LIB_WOLFHSM ) /src/wh_comm.o \
1324+ $(WOLFBOOT_LIB_WOLFHSM ) /src/wh_nvm.o \
1325+ $(WOLFBOOT_LIB_WOLFHSM ) /src/wh_nvm_flash.o \
1326+ $(WOLFBOOT_LIB_WOLFHSM ) /src/wh_keyid.o \
1327+ $(WOLFBOOT_LIB_WOLFHSM ) /src/wh_flash_unit.o \
1328+ $(WOLFBOOT_LIB_WOLFHSM ) /src/wh_crypto.o \
1329+ $(WOLFBOOT_LIB_WOLFHSM ) /src/wh_server.o \
1330+ $(WOLFBOOT_LIB_WOLFHSM ) /src/wh_server_nvm.o \
1331+ $(WOLFBOOT_LIB_WOLFHSM ) /src/wh_server_crypto.o \
1332+ $(WOLFBOOT_LIB_WOLFHSM ) /src/wh_server_counter.o \
1333+ $(WOLFBOOT_LIB_WOLFHSM ) /src/wh_server_keystore.o \
1334+ $(WOLFBOOT_LIB_WOLFHSM ) /src/wh_server_customcb.o \
1335+ $(WOLFBOOT_LIB_WOLFHSM ) /src/wh_message_customcb.o \
1336+ $(WOLFBOOT_LIB_WOLFHSM ) /src/wh_message_keystore.o \
1337+ $(WOLFBOOT_LIB_WOLFHSM ) /src/wh_message_crypto.o \
1338+ $(WOLFBOOT_LIB_WOLFHSM ) /src/wh_message_counter.o \
1339+ $(WOLFBOOT_LIB_WOLFHSM ) /src/wh_message_nvm.o \
1340+ $(WOLFBOOT_LIB_WOLFHSM ) /src/wh_message_comm.o
1341+
12761342# wolfHSM client options
12771343ifeq ($(WOLFHSM_CLIENT ) ,1)
12781344 WOLFCRYPT_OBJS += \
@@ -1289,19 +1355,7 @@ ifeq ($(WOLFHSM_CLIENT),1)
12891355 CFLAGS += -DWOLFHSM_CFG_COMM_DATA_LEN=5000
12901356 endif
12911357
1292- WOLFHSM_OBJS += \
1293- $(WOLFBOOT_LIB_WOLFHSM ) /src/wh_client.o \
1294- $(WOLFBOOT_LIB_WOLFHSM ) /src/wh_client_nvm.o \
1295- $(WOLFBOOT_LIB_WOLFHSM ) /src/wh_client_cryptocb.o \
1296- $(WOLFBOOT_LIB_WOLFHSM ) /src/wh_client_crypto.o \
1297- $(WOLFBOOT_LIB_WOLFHSM ) /src/wh_client_dma.o \
1298- $(WOLFBOOT_LIB_WOLFHSM ) /src/wh_crypto.o \
1299- $(WOLFBOOT_LIB_WOLFHSM ) /src/wh_dma.o \
1300- $(WOLFBOOT_LIB_WOLFHSM ) /src/wh_utils.o \
1301- $(WOLFBOOT_LIB_WOLFHSM ) /src/wh_comm.o \
1302- $(WOLFBOOT_LIB_WOLFHSM ) /src/wh_message_comm.o \
1303- $(WOLFBOOT_LIB_WOLFHSM ) /src/wh_message_nvm.o \
1304- $(WOLFBOOT_LIB_WOLFHSM ) /src/wh_message_customcb.o
1358+ WOLFHSM_OBJS += $(WOLFHSM_CLIENT_OBJS )
13051359 # includes
13061360 CFLAGS += -I"$(WOLFBOOT_LIB_WOLFHSM ) "
13071361 # defines
@@ -1341,26 +1395,7 @@ ifeq ($(WOLFHSM_SERVER),1)
13411395 CFLAGS += -DWOLFHSM_CFG_COMM_DATA_LEN=5000
13421396 endif
13431397
1344- WOLFHSM_OBJS += \
1345- $(WOLFBOOT_LIB_WOLFHSM ) /src/wh_utils.o \
1346- $(WOLFBOOT_LIB_WOLFHSM ) /src/wh_comm.o \
1347- $(WOLFBOOT_LIB_WOLFHSM ) /src/wh_nvm.o \
1348- $(WOLFBOOT_LIB_WOLFHSM ) /src/wh_nvm_flash.o \
1349- $(WOLFBOOT_LIB_WOLFHSM ) /src/wh_keyid.o \
1350- $(WOLFBOOT_LIB_WOLFHSM ) /src/wh_flash_unit.o \
1351- $(WOLFBOOT_LIB_WOLFHSM ) /src/wh_crypto.o \
1352- $(WOLFBOOT_LIB_WOLFHSM ) /src/wh_server.o \
1353- $(WOLFBOOT_LIB_WOLFHSM ) /src/wh_server_nvm.o \
1354- $(WOLFBOOT_LIB_WOLFHSM ) /src/wh_server_crypto.o \
1355- $(WOLFBOOT_LIB_WOLFHSM ) /src/wh_server_counter.o \
1356- $(WOLFBOOT_LIB_WOLFHSM ) /src/wh_server_keystore.o \
1357- $(WOLFBOOT_LIB_WOLFHSM ) /src/wh_server_customcb.o \
1358- $(WOLFBOOT_LIB_WOLFHSM ) /src/wh_message_customcb.o \
1359- $(WOLFBOOT_LIB_WOLFHSM ) /src/wh_message_keystore.o \
1360- $(WOLFBOOT_LIB_WOLFHSM ) /src/wh_message_crypto.o \
1361- $(WOLFBOOT_LIB_WOLFHSM ) /src/wh_message_counter.o \
1362- $(WOLFBOOT_LIB_WOLFHSM ) /src/wh_message_nvm.o \
1363- $(WOLFBOOT_LIB_WOLFHSM ) /src/wh_message_comm.o
1398+ WOLFHSM_OBJS += $(WOLFHSM_SERVER_OBJS )
13641399
13651400 # includes
13661401 CFLAGS += -I"$(WOLFBOOT_LIB_WOLFHSM ) "
0 commit comments