Skip to content

Commit baab334

Browse files
Merge pull request #7997 from dgarske/stm32g4
Support for STM32G4
2 parents d796d8c + 9d24480 commit baab334

3 files changed

Lines changed: 167 additions & 50 deletions

File tree

IDE/STM32Cube/default_conf.ftl

Lines changed: 45 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -148,6 +148,9 @@ extern ${variable.value} ${variable.name};
148148
#define HAL_CONSOLE_UART huart2
149149
#define NO_STM32_RNG
150150
#define WOLFSSL_GENSEED_FORTEST /* no HW RNG is available use test seed */
151+
#elif defined(STM32G491xx)
152+
#define WOLFSSL_STM32G4
153+
#define HAL_CONSOLE_UART hlpuart1
151154
#elif defined(STM32U575xx) || defined(STM32U585xx) || defined(STM32U5A9xx)
152155
#define HAL_CONSOLE_UART huart1
153156
#define WOLFSSL_STM32U5
@@ -169,7 +172,7 @@ extern ${variable.value} ${variable.name};
169172
/* You need to define a CPU type, HW crypto and debug UART */
170173
/* CPU Type: WOLFSSL_STM32F1, WOLFSSL_STM32F2, WOLFSSL_STM32F4,
171174
WOLFSSL_STM32F7, WOLFSSL_STM32H7, WOLFSSL_STM32L4, WOLFSSL_STM32L5,
172-
WOLFSSL_STM32G0, WOLFSSL_STM32WB and WOLFSSL_STM32U5 */
175+
WOLFSSL_STM32G0, WOLFSSL_STM32G4, WOLFSSL_STM32WB and WOLFSSL_STM32U5 */
173176
#define WOLFSSL_STM32F4
174177

175178
/* Debug UART used for printf */
@@ -195,13 +198,23 @@ extern ${variable.value} ${variable.name};
195198
#define WOLFSSL_GENERAL_ALIGNMENT 4
196199
#define WOLFSSL_STM32_CUBEMX
197200
#define WOLFSSL_SMALL_STACK
198-
#define WOLFSSL_USER_IO
199-
#define WOLFSSL_NO_SOCK
200201
#define WOLFSSL_IGNORE_FILE_WARN
201202

203+
/* ------------------------------------------------------------------------- */
204+
/* Network stack: 1=User IO (custom), 2=LWIP (posix), 3=LWIP (native) */
205+
/* ------------------------------------------------------------------------- */
206+
#if defined(WOLF_CONF_IO) && WOLF_CONF_IO == 2
207+
#define WOLFSSL_LWIP
208+
#elif defined(WOLF_CONF_IO) && WOLF_CONF_IO == 3
209+
#define WOLFSSL_LWIP_NATIVE
210+
#else /* custom */
211+
#define WOLFSSL_USER_IO
212+
#define WOLFSSL_NO_SOCK
213+
#endif
214+
202215

203216
/* ------------------------------------------------------------------------- */
204-
/* Operating System */
217+
/* Operating System: 1=Bare-metal/Single threaded, 2=FREERTOS */
205218
/* ------------------------------------------------------------------------- */
206219
#if defined(WOLF_CONF_RTOS) && WOLF_CONF_RTOS == 2
207220
#define FREERTOS
@@ -328,12 +341,25 @@ extern ${variable.value} ${variable.name};
328341
#endif
329342

330343
/* TLS Session Cache */
331-
#if 0
344+
#if defined(WOLF_CONF_RESUMPTION) && WOLF_CONF_RESUMPTION == 1
332345
#define SMALL_SESSION_CACHE
346+
#define HAVE_SESSION_TICKET
333347
#else
334348
#define NO_SESSION_CACHE
335349
#endif
336350

351+
/* TPM support */
352+
#if defined(WOLF_CONF_TPM) && WOLF_CONF_TPM == 1
353+
#define WOLF_CRYPTO_CB
354+
#define WOLFSSL_PUBLIC_MP
355+
/* also AES CFB - enabled below */
356+
#endif
357+
358+
/* TLS key callbacks */
359+
#if defined(WOLF_CONF_PK) && WOLF_CONF_PK == 1
360+
#define HAVE_PK_CALLBACKS
361+
#endif
362+
337363
/* ------------------------------------------------------------------------- */
338364
/* Crypto */
339365
/* ------------------------------------------------------------------------- */
@@ -421,21 +447,31 @@ extern ${variable.value} ${variable.name};
421447
#endif
422448

423449
/* AES */
424-
#if defined(WOLF_CONF_AESGCM) && WOLF_CONF_AESGCM == 1
450+
#if defined(WOLF_CONF_AESGCM) && WOLF_CONF_AESGCM >= 1
425451
#define HAVE_AESGCM
452+
#define HAVE_AES_DECRYPT
453+
426454
/* GCM Method: GCM_SMALL, GCM_WORD32, GCM_TABLE or GCM_TABLE_4BIT */
427455
/* GCM_TABLE is about 4K larger and 3x faster for GHASH */
428-
#define GCM_SMALL
429-
#define HAVE_AES_DECRYPT
456+
#if WOLF_CONF_AESGCM == 2
457+
#define GCM_TABLE_4BIT
458+
#else
459+
#define GCM_SMALL
460+
#endif
430461
#endif
431462

432463
#if defined(WOLF_CONF_AESCBC) && WOLF_CONF_AESCBC == 1
433464
#define HAVE_AES_CBC
434465
#define HAVE_AES_DECRYPT
466+
#else
467+
#define NO_AES_CBC
435468
#endif
436469

437470
/* Other possible AES modes */
438-
//#define WOLFSSL_AES_CFB /* Used by TPM parameter encryption */
471+
#if defined(WOLF_CONF_TPM) && WOLF_CONF_TPM == 1
472+
#define WOLFSSL_AES_CFB /* Used by TPM parameter encryption */
473+
#endif
474+
439475
//#define WOLFSSL_AES_COUNTER
440476
//#define HAVE_AESCCM
441477
//#define WOLFSSL_AES_XTS

0 commit comments

Comments
 (0)