Added support for STM32 PKA

pull/24/head
Daniele Lacamera 2019-11-11 15:06:04 +01:00
parent 2cf2e7eae8
commit c78f0d7026
4 changed files with 49 additions and 2 deletions

12
arch.mk
View File

@ -96,3 +96,15 @@ ifeq ($(TARGET),kinetis)
## ECC_EXTRA_OBJS+=./lib/wolfssl/wolfcrypt/src/port/nxp/ksdk_port.o $(KINETIS_DRIVERS)/drivers/fsl_ltc.o
##endif
endif
ifeq ($(TARGET),stm32wb)
ifneq ($(PKA),0)
ECC_EXTRA_OBJS+= $(STM32CUBE)/Drivers/STM32WBxx_HAL_Driver/Src/stm32wbxx_hal_pka.o ./lib/wolfssl/wolfcrypt/src/port/st/stm32.o
ECC_EXTRA_CFLAGS+=-DWOLFSSL_STM32_PKA -I$(STM32CUBE)/Drivers/STM32WBxx_HAL_Driver/Inc \
-Isrc -I$(STM32CUBE)/Drivers/BSP/P-NUCLEO-WB55.Nucleo/ -I$(STM32CUBE)/Drivers/CMSIS/Device/ST/STM32WBxx/Include \
-I$(STM32CUBE)/Drivers/STM32WBxx_HAL_Driver/Inc/ \
-I$(STM32CUBE)/Drivers/CMSIS/Include \
-Ihal \
-DSTM32WB55xx
endif
endif

View File

@ -2,3 +2,4 @@ TARGET=stm32wb
SIGN=ECC256
WOLFBOOT_PARTITION_BOOT_ADDRESS=0xA000
WOLFBOOT_PARTITION_SIZE=0x4000
PKA=1

View File

@ -20,7 +20,12 @@
*/
#include <stdint.h>
#include <image.h>
#include "image.h"
#ifdef WOLFSSL_STM32_PKA
#include "stm32wbxx_hal.h"
PKA_HandleTypeDef hpka = { };
#endif
/* STM32 WB register configuration */
/* Assembly helpers */
@ -286,6 +291,11 @@ static void clock_pll_on(void)
void hal_init(void)
{
clock_pll_on();
#ifdef WOLFSSL_STM32_PKA
__HAL_RCC_PKA_CLK_ENABLE();
hpka.Instance = PKA;
HAL_PKA_Init(&hpka);
#endif
}
void hal_prepare_boot(void)
@ -297,3 +307,26 @@ void hal_prepare_boot(void)
clock_pll_off();
}
#ifdef WOLFSSL_STM32_PKA
void HAL_PKA_MspInit(PKA_HandleTypeDef* hpka)
{
if(hpka->Instance==PKA)
{
/* Peripheral clock enable */
__HAL_RCC_PKA_CLK_ENABLE();
}
}
/* This value is unused, the function is never called
* as long as the timeout is 0xFFFFFFFF.
* It is defined here only to avoid a compiler error
* for a missing symbol in hal_pka_driver.
*/
uint32_t HAL_GetTick(void)
{
return 0;
}
#endif

View File

@ -8,6 +8,7 @@ ifeq ($(ARCH),)
KINETIS_DRIVERS?=$(KINETIS)/devices/MK64F12
KINETIS_CMSIS?=$(KINETIS)/CMSIS
FREEDOM_E_SDK?=$(HOME)/src/freedom-e-sdk
STM32CUBE?=$(HOME)/src/STM32CubeWB/STM32Cube_FW_WB_V1.2.0
DEBUG?=0
VTOR?=1
CORTEX_M0?=0
@ -31,7 +32,7 @@ endif
CONFIG_VARS:= ARCH TARGET SIGN KINETIS KINETIS_CPU KINETIS_DRIVERS \
KINETIS_CMSIS FREEDOM_E_SDK DEBUG VTOR CORTEX_M0 NO_ASM EXT_FLASH \
KINETIS_CMSIS FREEDOM_E_SDK STM32CUBE DEBUG VTOR CORTEX_M0 NO_ASM EXT_FLASH \
SPI_FLASH ALLOW_DOWNGRADE NVM_FLASH_WRITEONCE WOLFBOOT_VERSION V \
SPMATH RAM_CODE DUALBANK_SWAP IMAGE_HEADER_SIZE \
WOLFBOOT_PARTITION_SIZE WOLFBOOT_SECTOR_SIZE \