@@ -107,9 +107,14 @@ endif
107107ifeq ($(WOLFCRYPT_BENCHMARK ) ,1)
108108 CFLAGS+ =-DWOLFCRYPT_BENCHMARK
109109 WOLFCRYPT_SUPPORT =1
110+ UART_PRINTF_FLOAT? =1
110111 APP_OBJS+ =$(WOLFBOOT_LIB_WOLFSSL ) /wolfcrypt/benchmark/benchmark.o
111112endif
112113
114+ ifeq ($(UART_PRINTF_FLOAT ) ,1)
115+ CFLAGS+ =-DUART_PRINTF_FLOAT
116+ endif
117+
113118ifeq ($(WOLFCRYPT_SUPPORT ) ,1)
114119 # Add support infrastructure
115120 APP_OBJS+ =wolfcrypt_support.o
@@ -141,25 +146,60 @@ ifeq ($(WOLFCRYPT_SUPPORT),1)
141146 APP_OBJS+ =$(WOLFBOOT_LIB_WOLFSSL ) /wolfcrypt/src/ecc.o
142147 APP_OBJS+ =$(WOLFBOOT_LIB_WOLFSSL ) /wolfcrypt/src/sp_int.o
143148
144- # Add SP math implementations for ARM Cortex-M
145- APP_OBJS+ =$(WOLFBOOT_LIB_WOLFSSL ) /wolfcrypt/src/sp_cortexm.o
149+ # Add SP C math (all architectures)
146150 APP_OBJS+ =$(WOLFBOOT_LIB_WOLFSSL ) /wolfcrypt/src/sp_c32.o
147151
148- ifneq ($(NO_ARM_ASM),1)
149- APP_OBJS+ = \
150- $(WOLFBOOT_LIB_WOLFSSL ) /wolfcrypt/src/port/arm/thumb2-aes-asm_c.o \
151- $(WOLFBOOT_LIB_WOLFSSL ) /wolfcrypt/src/port/arm/thumb2-sha256-asm_c.o \
152- $(WOLFBOOT_LIB_WOLFSSL ) /wolfcrypt/src/port/arm/thumb2-sha512-asm_c.o \
153- $(WOLFBOOT_LIB_WOLFSSL ) /wolfcrypt/src/port/arm/thumb2-sha3-asm_c.o \
154- $(WOLFBOOT_LIB_WOLFSSL ) /wolfcrypt/src/port/arm/thumb2-chacha-asm_c.o
152+ ifneq ($(NO_ASM),1)
153+ # SP Cortex M
154+ ifneq ($(filter ARM ARM_BE,$(ARCH)),)
155+ ifeq ($(SPMATH),1)
156+ APP_OBJS+ =$(WOLFBOOT_LIB_WOLFSSL ) /wolfcrypt/src/sp_cortexm.o
157+ endif
158+
159+ ifneq ($(NO_ARM_ASM),1)
160+ APP_OBJS+ = \
161+ $(WOLFBOOT_LIB_WOLFSSL ) /wolfcrypt/src/port/arm/thumb2-aes-asm_c.o \
162+ $(WOLFBOOT_LIB_WOLFSSL ) /wolfcrypt/src/port/arm/thumb2-sha256-asm_c.o \
163+ $(WOLFBOOT_LIB_WOLFSSL ) /wolfcrypt/src/port/arm/thumb2-sha512-asm_c.o \
164+ $(WOLFBOOT_LIB_WOLFSSL ) /wolfcrypt/src/port/arm/thumb2-sha3-asm_c.o \
165+ $(WOLFBOOT_LIB_WOLFSSL ) /wolfcrypt/src/port/arm/thumb2-chacha-asm_c.o
166+
167+ CFLAGS+ =-DWOLFSSL_ARMASM -DWOLFSSL_ARMASM_NO_HW_CRYPTO -DWOLFSSL_ARMASM_INLINE \
168+ -DWOLFSSL_ARMASM_NO_NEON -DWOLFSSL_ARMASM_THUMB2
169+ endif
170+ endif
171+
172+ # Power PC
173+ ifeq ($(ARCH),PPC)
174+ # SP mp int PowerPC ASM
175+ ifeq ($(PPC64),1)
176+ CFLAGS+ =-DWOLFSSL_SP_PPC64
177+ else
178+ CFLAGS+ =-DWOLFSSL_SP_PPC
179+ endif
180+
181+ # SHA256
182+ APP_OBJS+ =$(WOLFBOOT_LIB_WOLFSSL ) /wolfcrypt/src/port/ppc32/ppc32-sha256-asm_c.o
183+ CFLAGS+ =-DWOLFSSL_PPC32_ASM
184+ CFLAGS+ =-DWOLFSSL_PPC32_ASM_INLINE
185+ CFLAGS+ =-DWOLFSSL_PPC32_ASM_SMALL
186+
187+ ifeq ($(PPC64),1) # requires wolfssl PR 9852
188+ # AES
189+ APP_OBJS+ =$(WOLFBOOT_LIB_WOLFSSL ) /wolfcrypt/src/port/ppc64/ppc64-aes-asm_c.o
190+ CFLAGS+ =-DWOLFSSL_PPC64_ASM
191+ CFLAGS+ =-DWOLFSSL_PPC64_ASM_INLINE
192+ CFLAGS+ =-DWOLFSSL_PPC64_ASM_SMALL
193+ CFLAGS+ =-DWOLFSSL_PPC64_ASM_AES_NO_HARDEN
194+ endif
155195
156- CFLAGS+ =-DWOLFSSL_ARMASM -DWOLFSSL_ARMASM_NO_HW_CRYPTO -DWOLFSSL_ARMASM_INLINE \
157- -DWOLFSSL_ARMASM_NO_NEON -DWOLFSSL_ARMASM_THUMB2
196+ CFLAGS+ =-fomit-frame-pointer
197+ endif
158198 endif
159199
160200 CFLAGS+ =-DWOLFSSL_USER_SETTINGS
161201 CFLAGS+ =-I"$(WOLFBOOT_LIB_WOLFSSL ) "
162- endif
202+ endif # WOLFCRYPT_SUPPORT
163203
164204ifeq ($(TZEN ) ,1)
165205 CFLAGS+ =-DNONSECURE_APP
@@ -414,6 +454,22 @@ ifeq ($(TARGET),va416x0)
414454 CFLAGS+ =-ffunction-sections -fdata-sections
415455endif
416456
457+ PPC64 =0
458+ ifeq ($(TARGET ) ,nxp_t2080)
459+ ifneq ($(SIGN),NONE)
460+ APP_OBJS+ =../src/keystore.o
461+ endif
462+ CFLAGS+ =-ffunction-sections -fdata-sections
463+
464+ # PowerPC e6500
465+ PPC64 =1
466+ endif
467+
468+ ifeq ($(TARGET ) ,nxp_t1024)
469+ # PowerPC e5500
470+ PPC64 =1
471+ endif
472+
417473ifeq ($(TARGET ) ,sim)
418474 # LD on MacOS does not support "-Map="
419475 LDMAPSUPPORTED =$(shell $(CC ) -Wl,-Map=image.map 2>&1 | grep 'unknown option')
0 commit comments