Skip to content

Commit c78f0d7

Browse files
committed
Added support for STM32 PKA
1 parent 2cf2e7e commit c78f0d7

4 files changed

Lines changed: 49 additions & 2 deletions

File tree

arch.mk

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -96,3 +96,15 @@ ifeq ($(TARGET),kinetis)
9696
## ECC_EXTRA_OBJS+=./lib/wolfssl/wolfcrypt/src/port/nxp/ksdk_port.o $(KINETIS_DRIVERS)/drivers/fsl_ltc.o
9797
##endif
9898
endif
99+
100+
ifeq ($(TARGET),stm32wb)
101+
ifneq ($(PKA),0)
102+
ECC_EXTRA_OBJS+= $(STM32CUBE)/Drivers/STM32WBxx_HAL_Driver/Src/stm32wbxx_hal_pka.o ./lib/wolfssl/wolfcrypt/src/port/st/stm32.o
103+
ECC_EXTRA_CFLAGS+=-DWOLFSSL_STM32_PKA -I$(STM32CUBE)/Drivers/STM32WBxx_HAL_Driver/Inc \
104+
-Isrc -I$(STM32CUBE)/Drivers/BSP/P-NUCLEO-WB55.Nucleo/ -I$(STM32CUBE)/Drivers/CMSIS/Device/ST/STM32WBxx/Include \
105+
-I$(STM32CUBE)/Drivers/STM32WBxx_HAL_Driver/Inc/ \
106+
-I$(STM32CUBE)/Drivers/CMSIS/Include \
107+
-Ihal \
108+
-DSTM32WB55xx
109+
endif
110+
endif

config/examples/stm32wb-small.config

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,3 +2,4 @@ TARGET=stm32wb
22
SIGN=ECC256
33
WOLFBOOT_PARTITION_BOOT_ADDRESS=0xA000
44
WOLFBOOT_PARTITION_SIZE=0x4000
5+
PKA=1

hal/stm32wb.c

Lines changed: 34 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,12 @@
2020
*/
2121

2222
#include <stdint.h>
23-
#include <image.h>
23+
#include "image.h"
24+
#ifdef WOLFSSL_STM32_PKA
25+
#include "stm32wbxx_hal.h"
26+
PKA_HandleTypeDef hpka = { };
27+
#endif
28+
2429
/* STM32 WB register configuration */
2530

2631
/* Assembly helpers */
@@ -286,6 +291,11 @@ static void clock_pll_on(void)
286291
void hal_init(void)
287292
{
288293
clock_pll_on();
294+
#ifdef WOLFSSL_STM32_PKA
295+
__HAL_RCC_PKA_CLK_ENABLE();
296+
hpka.Instance = PKA;
297+
HAL_PKA_Init(&hpka);
298+
#endif
289299
}
290300

291301
void hal_prepare_boot(void)
@@ -297,3 +307,26 @@ void hal_prepare_boot(void)
297307
clock_pll_off();
298308
}
299309

310+
#ifdef WOLFSSL_STM32_PKA
311+
312+
313+
void HAL_PKA_MspInit(PKA_HandleTypeDef* hpka)
314+
{
315+
if(hpka->Instance==PKA)
316+
{
317+
/* Peripheral clock enable */
318+
__HAL_RCC_PKA_CLK_ENABLE();
319+
}
320+
}
321+
322+
/* This value is unused, the function is never called
323+
* as long as the timeout is 0xFFFFFFFF.
324+
* It is defined here only to avoid a compiler error
325+
* for a missing symbol in hal_pka_driver.
326+
*/
327+
uint32_t HAL_GetTick(void)
328+
{
329+
return 0;
330+
}
331+
332+
#endif

tools/config.mk

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ ifeq ($(ARCH),)
88
KINETIS_DRIVERS?=$(KINETIS)/devices/MK64F12
99
KINETIS_CMSIS?=$(KINETIS)/CMSIS
1010
FREEDOM_E_SDK?=$(HOME)/src/freedom-e-sdk
11+
STM32CUBE?=$(HOME)/src/STM32CubeWB/STM32Cube_FW_WB_V1.2.0
1112
DEBUG?=0
1213
VTOR?=1
1314
CORTEX_M0?=0
@@ -31,7 +32,7 @@ endif
3132

3233

3334
CONFIG_VARS:= ARCH TARGET SIGN KINETIS KINETIS_CPU KINETIS_DRIVERS \
34-
KINETIS_CMSIS FREEDOM_E_SDK DEBUG VTOR CORTEX_M0 NO_ASM EXT_FLASH \
35+
KINETIS_CMSIS FREEDOM_E_SDK STM32CUBE DEBUG VTOR CORTEX_M0 NO_ASM EXT_FLASH \
3536
SPI_FLASH ALLOW_DOWNGRADE NVM_FLASH_WRITEONCE WOLFBOOT_VERSION V \
3637
SPMATH RAM_CODE DUALBANK_SWAP IMAGE_HEADER_SIZE \
3738
WOLFBOOT_PARTITION_SIZE WOLFBOOT_SECTOR_SIZE \

0 commit comments

Comments
 (0)