diff --git a/.wolfssl_known_macro_extras b/.wolfssl_known_macro_extras index 6956c1d35..84123707f 100644 --- a/.wolfssl_known_macro_extras +++ b/.wolfssl_known_macro_extras @@ -487,6 +487,7 @@ STM32F217xx STM32F401xE STM32F407xx STM32F437xx +STM32F439xx STM32F756xx STM32F777xx STM32G071xx @@ -502,6 +503,7 @@ STM32L4A6xx STM32L552xx STM32L562xx STM32MP135Fxx +STM32N657xx STM32U575xx STM32U585xx STM32U5A9xx @@ -687,7 +689,6 @@ WOLFSSL_ESPWROOM32 WOLFSSL_EVP_PRINT WOLFSSL_EXPORT_INT WOLFSSL_EXPORT_SPC_SZ -WOLFSSL_EXTRA WOLFSSL_FORCE_OCSP_NONCE_CHECK WOLFSSL_FRDM_K64 WOLFSSL_FRDM_K64_JENKINS diff --git a/IDE/STM32Cube/default_conf.ftl b/IDE/STM32Cube/default_conf.ftl index 98f84a626..64d1083c9 100644 --- a/IDE/STM32Cube/default_conf.ftl +++ b/IDE/STM32Cube/default_conf.ftl @@ -75,97 +75,138 @@ extern ${variable.value} ${variable.name}; #define WOLFSSL_STM32WB #define WOLFSSL_STM32_PKA #undef NO_STM32_CRYPTO + #ifndef HAL_CONSOLE_UART #define HAL_CONSOLE_UART huart1 + #endif #elif defined(STM32WBA52xx) #define WOLFSSL_STM32WBA #define WOLFSSL_STM32_PKA #undef NO_STM32_HASH #undef NO_STM32_CRYPTO /* NUCLEO-WBA52CG USART1 (TX=PB12 / RX=PA8) */ + #ifndef HAL_CONSOLE_UART #define HAL_CONSOLE_UART huart1 + #endif #elif defined(STM32WL55xx) #define WOLFSSL_STM32WL #define WOLFSSL_STM32_PKA #undef NO_STM32_CRYPTO + #ifndef HAL_CONSOLE_UART #define HAL_CONSOLE_UART huart2 + #endif #elif defined(STM32F407xx) #define WOLFSSL_STM32F4 + #ifndef HAL_CONSOLE_UART #define HAL_CONSOLE_UART huart2 -#elif defined(STM32F437xx) + #endif +#elif defined(STM32F437xx) || defined(STM32F439xx) #define WOLFSSL_STM32F4 #undef NO_STM32_HASH #undef NO_STM32_CRYPTO #define STM32_HAL_V2 - #define HAL_CONSOLE_UART huart4 + #ifndef HAL_CONSOLE_UART + #ifdef STM32F439xx + #define HAL_CONSOLE_UART huart3 + #else + #define HAL_CONSOLE_UART huart4 + #endif + #endif #elif defined(STM32F777xx) #define WOLFSSL_STM32F7 #undef NO_STM32_HASH #undef NO_STM32_CRYPTO #define STM32_HAL_V2 + #ifndef HAL_CONSOLE_UART #define HAL_CONSOLE_UART huart2 + #endif #elif defined(STM32F756xx) #define WOLFSSL_STM32F7 #undef NO_STM32_HASH #undef NO_STM32_CRYPTO #define STM32_HAL_V2 + #ifndef HAL_CONSOLE_UART #define HAL_CONSOLE_UART huart3 + #endif #elif defined(STM32H7S3xx) #define WOLFSSL_STM32H7S #undef NO_STM32_HASH #undef NO_STM32_CRYPTO #define WOLFSSL_STM32_PKA + #ifndef HAL_CONSOLE_UART #define HAL_CONSOLE_UART huart3 + #endif #elif defined(STM32H753xx) #define WOLFSSL_STM32H7 #undef NO_STM32_HASH #undef NO_STM32_CRYPTO + #ifndef HAL_CONSOLE_UART #define HAL_CONSOLE_UART huart3 + #endif #elif defined(STM32H723xx) || defined(STM32H725xx) || defined(STM32H743xx) #define WOLFSSL_STM32H7 + #ifndef HAL_CONSOLE_UART #define HAL_CONSOLE_UART huart3 + #endif #elif defined(STM32L4A6xx) #define WOLFSSL_STM32L4 #undef NO_STM32_HASH #undef NO_STM32_CRYPTO + #ifndef HAL_CONSOLE_UART #define HAL_CONSOLE_UART hlpuart1 + #endif #elif defined(STM32L475xx) #define WOLFSSL_STM32L4 + #ifndef HAL_CONSOLE_UART #define HAL_CONSOLE_UART huart1 + #endif #elif defined(STM32L562xx) #define WOLFSSL_STM32L5 #define WOLFSSL_STM32_PKA #undef NO_STM32_HASH #undef NO_STM32_CRYPTO + #ifndef HAL_CONSOLE_UART #define HAL_CONSOLE_UART huart1 + #endif #elif defined(STM32L552xx) #define WOLFSSL_STM32L5 #undef NO_STM32_HASH + #ifndef HAL_CONSOLE_UART #define HAL_CONSOLE_UART hlpuart1 + #endif #elif defined(STM32F207xx) #define WOLFSSL_STM32F2 + #ifndef HAL_CONSOLE_UART #define HAL_CONSOLE_UART huart3 + #endif #elif defined(STM32F217xx) #define WOLFSSL_STM32F2 + #ifndef HAL_CONSOLE_UART #define HAL_CONSOLE_UART huart2 + #endif #elif defined(STM32F107xC) #define WOLFSSL_STM32F1 - #define HAL_CONSOLE_UART huart4 #define NO_STM32_RNG + #ifndef HAL_CONSOLE_UART + #define HAL_CONSOLE_UART huart4 + #endif #elif defined(STM32F401xE) #define WOLFSSL_STM32F4 - #define HAL_CONSOLE_UART huart2 #define NO_STM32_RNG #define WOLFSSL_GENSEED_FORTEST /* no HW RNG is available use test seed */ + #ifndef HAL_CONSOLE_UART + #define HAL_CONSOLE_UART huart2 + #endif #elif defined(STM32G071xx) #define WOLFSSL_STM32G0 - #define HAL_CONSOLE_UART huart2 #define NO_STM32_RNG #define WOLFSSL_GENSEED_FORTEST /* no HW RNG is available use test seed */ + #ifndef HAL_CONSOLE_UART + #define HAL_CONSOLE_UART huart2 + #endif #elif defined(STM32G491xx) #define WOLFSSL_STM32G4 #define HAL_CONSOLE_UART hlpuart1 #elif defined(STM32U575xx) || defined(STM32U585xx) || defined(STM32U5A9xx) - #define HAL_CONSOLE_UART huart1 #define WOLFSSL_STM32U5 #define STM32_HAL_V2 #if defined(STM32U585xx) || defined(STM32U5A9xx) @@ -173,19 +214,35 @@ extern ${variable.value} ${variable.name}; #undef NO_STM32_CRYPTO #define WOLFSSL_STM32_PKA #endif + #ifndef HAL_CONSOLE_UART + #define HAL_CONSOLE_UART huart1 + #endif #elif defined(STM32H563xx) #define WOLFSSL_STM32H5 - #define HAL_CONSOLE_UART huart3 #define STM32_HAL_V2 #undef NO_STM32_HASH + #ifndef HAL_CONSOLE_UART + #define HAL_CONSOLE_UART huart3 + #endif #elif defined(STM32MP135Fxx) #define WOLFSSL_STM32MP13 - #define HAL_CONSOLE_UART huart4 #define STM32_HAL_V2 #undef NO_STM32_HASH #undef NO_STM32_CRYPTO #define WOLFSSL_STM32_PKA #define WOLFSSL_STM32_PKA_V2 + #ifndef HAL_CONSOLE_UART + #define HAL_CONSOLE_UART huart4 + #endif +#elif defined(STM32N657xx) + #define WOLFSSL_STM32N6 + #define STM32_HAL_V2 + #undef NO_STM32_HASH + #undef NO_STM32_CRYPTO + #define WOLFSSL_STM32_PKA + #ifndef HAL_CONSOLE_UART + #define HAL_CONSOLE_UART huart1 + #endif #else #warning Please define a hardware platform! /* This means there is not a pre-defined platform for your board/CPU */ @@ -199,16 +256,19 @@ extern ${variable.value} ${variable.name}; /* Debug UART used for printf */ /* The UART interface number varies for each board/CPU */ /* Typically this is the UART attached to the ST-Link USB CDC UART port */ + #ifndef HAL_CONSOLE_UART #define HAL_CONSOLE_UART huart4 + #endif /* Hardware Crypto - uncomment as available on hardware */ + //#define STM32_HAL_V2 //#define WOLFSSL_STM32_PKA + //#define WOLFSSL_STM32_PKA_V2 //#define NO_STM32_RNG //#undef NO_STM32_HASH //#undef NO_STM32_CRYPTO /* if no HW RNG is available use test seed */ //#define WOLFSSL_GENSEED_FORTEST - //#define STM32_HAL_V2 #endif diff --git a/wolfcrypt/src/port/st/stm32.c b/wolfcrypt/src/port/st/stm32.c index 7143c3af8..3454b0d65 100644 --- a/wolfcrypt/src/port/st/stm32.c +++ b/wolfcrypt/src/port/st/stm32.c @@ -67,6 +67,9 @@ #elif defined(WOLFSSL_STM32WBA) #include #include +#elif defined(WOLFSSL_STM32N6) +#include +#include #else #error Please add the hal_pk.h include #endif diff --git a/wolfssl/wolfcrypt/port/st/stm32.h b/wolfssl/wolfcrypt/port/st/stm32.h index b3768ae7b..40f76ac75 100644 --- a/wolfssl/wolfcrypt/port/st/stm32.h +++ b/wolfssl/wolfcrypt/port/st/stm32.h @@ -142,7 +142,8 @@ int wc_Stm32_Hash_Final(STM32_HASH_Context* stmCtx, word32 algo, defined(WOLFSSL_STM32F7) || defined(WOLFSSL_STM32L4) || \ defined(WOLFSSL_STM32L5) || defined(WOLFSSL_STM32H7) || \ defined(WOLFSSL_STM32U5) || defined(WOLFSSL_STM32H5) || \ - defined(WOLFSSL_STM32MP13) || defined(WOLFSSL_STM32H7S)) + defined(WOLFSSL_STM32MP13) || defined(WOLFSSL_STM32H7S) || \ + defined(WOLFSSL_STM32N6)) /* Hardware supports AES GCM acceleration */ #define STM32_CRYPTO_AES_GCM #endif @@ -177,7 +178,7 @@ int wc_Stm32_Hash_Final(STM32_HASH_Context* stmCtx, word32 algo, (defined(WOLFSSL_STM32F7) || defined(WOLFSSL_STM32L5) || \ defined(WOLFSSL_STM32H7) || defined(WOLFSSL_STM32U5) || \ defined(WOLFSSL_STM32H5) || defined(WOLFSSL_STM32MP13) || \ - defined(WOLFSSL_STM32H7S)) + defined(WOLFSSL_STM32H7S) || defined(WOLFSSL_STM32N6)) #define STM32_HAL_V2 #endif diff --git a/wolfssl/wolfcrypt/settings.h b/wolfssl/wolfcrypt/settings.h index ebca35213..076620e5a 100644 --- a/wolfssl/wolfcrypt/settings.h +++ b/wolfssl/wolfcrypt/settings.h @@ -2110,7 +2110,8 @@ extern void uITRON4_free(void *p) ; defined(WOLFSSL_STM32G0) || defined(WOLFSSL_STM32U5) || \ defined(WOLFSSL_STM32H5) || defined(WOLFSSL_STM32WL) || \ defined(WOLFSSL_STM32G4) || defined(WOLFSSL_STM32MP13) || \ - defined(WOLFSSL_STM32H7S) || defined(WOLFSSL_STM32WBA) + defined(WOLFSSL_STM32H7S) || defined(WOLFSSL_STM32WBA) || \ + defined(WOLFSSL_STM32N6) #define SIZEOF_LONG_LONG 8 #ifndef CHAR_BIT @@ -2174,6 +2175,8 @@ extern void uITRON4_free(void *p) ; #include "stm32u5xx_hal.h" #elif defined(WOLFSSL_STM32H5) #include "stm32h5xx_hal.h" + #elif defined(WOLFSSL_STM32N6) + #include "stm32n6xx_hal.h" #elif defined(WOLFSSL_STM32MP13) /* HAL headers error on our ASM files */ #ifndef __ASSEMBLER__