From 135cf1680f5012098743520becce16d855cf9336 Mon Sep 17 00:00:00 2001 From: David Garske Date: Thu, 17 Sep 2020 09:40:20 -0700 Subject: [PATCH] Fixes for building with SP Cortex-M ASM in Rowley CrossWorks and the generic IDE/GCC-ARM examples. --- IDE/GCC-ARM/Header/user_settings.h | 10 ++++++---- IDE/GCC-ARM/Makefile.common | 6 +++++- IDE/ROWLEY-CROSSWORKS-ARM/user_settings.h | 20 ++++++++++++++++++++ IDE/ROWLEY-CROSSWORKS-ARM/wolfssl.hzp | 3 +++ 4 files changed, 34 insertions(+), 5 deletions(-) diff --git a/IDE/GCC-ARM/Header/user_settings.h b/IDE/GCC-ARM/Header/user_settings.h index aecd1e718..dff00b0d9 100644 --- a/IDE/GCC-ARM/Header/user_settings.h +++ b/IDE/GCC-ARM/Header/user_settings.h @@ -70,13 +70,15 @@ extern "C" { #define WOLFSSL_HAVE_SP_RSA #define WOLFSSL_HAVE_SP_DH #define WOLFSSL_HAVE_SP_ECC - #define WOLFSSL_SP_CACHE_RESISTANT - //#define WOLFSSL_SP_MATH /* only SP math - eliminates fast math code */ + //#define WOLFSSL_SP_CACHE_RESISTANT + #define WOLFSSL_SP_MATH /* only SP math - eliminates fast math code */ - /* 64 or 32 bit version */ - //#define WOLFSSL_SP_ASM /* required if using the ASM versions */ + /* SP Assembly Speedups */ + #define WOLFSSL_SP_ASM /* required if using the ASM versions */ //#define WOLFSSL_SP_ARM32_ASM //#define WOLFSSL_SP_ARM64_ASM + //#define WOLFSSL_SP_ARM_THUMB_ASM + #define WOLFSSL_SP_ARM_CORTEX_M_ASM #endif /* ------------------------------------------------------------------------- */ diff --git a/IDE/GCC-ARM/Makefile.common b/IDE/GCC-ARM/Makefile.common index 9a184b5fa..ba4909fe2 100644 --- a/IDE/GCC-ARM/Makefile.common +++ b/IDE/GCC-ARM/Makefile.common @@ -27,7 +27,8 @@ INC = -I./Header \ DEF = -DWOLFSSL_USER_SETTINGS # Architecture -ARCHFLAGS = -mcpu=cortex-m0 -mthumb -mabi=aapcs -DUSE_WOLF_ARM_STARTUP +ARCHFLAGS = -mcpu=cortex-m4 -mthumb -mabi=aapcs -DUSE_WOLF_ARM_STARTUP +#ARCHFLAGS = -mcpu=cortex-m0 -mthumb -mabi=aapcs -DUSE_WOLF_ARM_STARTUP #ARCHFLAGS = -mcpu=cortex-r5 -mthumb -mabi=aapcs #ARCHFLAGS = -mcpu=cortex-a53 -mthumb -mabi=aapcs @@ -132,7 +133,10 @@ SRC_C += ../../wolfcrypt/src/signature.c SRC_C += ../../wolfcrypt/src/srp.c SRC_C += ../../wolfcrypt/src/sp_arm32.c SRC_C += ../../wolfcrypt/src/sp_arm64.c +SRC_C += ../../wolfcrypt/src/sp_armthumb.c SRC_C += ../../wolfcrypt/src/sp_c32.c +SRC_C += ../../wolfcrypt/src/sp_c64.c +SRC_C += ../../wolfcrypt/src/sp_cortexm.c SRC_C += ../../wolfcrypt/src/sp_int.c SRC_C += ../../wolfcrypt/src/tfm.c SRC_C += ../../wolfcrypt/src/wc_encrypt.c diff --git a/IDE/ROWLEY-CROSSWORKS-ARM/user_settings.h b/IDE/ROWLEY-CROSSWORKS-ARM/user_settings.h index e99aa7aff..fcf576645 100644 --- a/IDE/ROWLEY-CROSSWORKS-ARM/user_settings.h +++ b/IDE/ROWLEY-CROSSWORKS-ARM/user_settings.h @@ -24,6 +24,7 @@ extern "C" { #undef WOLFSSL_SMALL_STACK_CACHE //#define WOLFSSL_SMALL_STACK_CACHE +#define WOLFSSL_IGNORE_FILE_WARN /* ------------------------------------------------------------------------- */ /* Math Configuration */ @@ -44,6 +45,25 @@ extern "C" { #undef WOLFSSL_DEBUG_MATH //#define WOLFSSL_DEBUG_MATH +/* Wolf Single Precision Math */ +#undef WOLFSSL_SP +#if 0 + #define WOLFSSL_SP + #define WOLFSSL_SP_SMALL /* use smaller version of code */ + #define WOLFSSL_HAVE_SP_RSA + #define WOLFSSL_HAVE_SP_DH + #define WOLFSSL_HAVE_SP_ECC + //#define WOLFSSL_SP_CACHE_RESISTANT + #define WOLFSSL_SP_MATH /* only SP math - eliminates fast math code */ + + /* SP Assembly Speedups */ + #define WOLFSSL_SP_ASM /* required if using the ASM versions */ + //#define WOLFSSL_SP_ARM32_ASM + //#define WOLFSSL_SP_ARM64_ASM + //#define WOLFSSL_SP_ARM_THUMB_ASM + #define WOLFSSL_SP_ARM_CORTEX_M_ASM +#endif + /* ------------------------------------------------------------------------- */ /* Crypto */ diff --git a/IDE/ROWLEY-CROSSWORKS-ARM/wolfssl.hzp b/IDE/ROWLEY-CROSSWORKS-ARM/wolfssl.hzp index 25226d65a..74388ddac 100644 --- a/IDE/ROWLEY-CROSSWORKS-ARM/wolfssl.hzp +++ b/IDE/ROWLEY-CROSSWORKS-ARM/wolfssl.hzp @@ -104,6 +104,9 @@ + + +