mirror of https://github.com/wolfSSL/wolfBoot.git
Added support for STM32WB PKA HW accelerator (ECDSA verify)
parent
45064ced50
commit
0ee2d19901
7
Makefile
7
Makefile
|
@ -12,6 +12,8 @@ KINETIS_CPU=MK64FN1M0VLL12
|
|||
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
|
||||
|
@ -25,8 +27,7 @@ V?=0
|
|||
SPMATH?=1
|
||||
RAM_CODE?=0
|
||||
DUALBANK_SWAP=0
|
||||
|
||||
|
||||
PKA?=1
|
||||
|
||||
## Initializers
|
||||
CFLAGS:=-D__WOLFBOOT -DWOLFBOOT_VERSION=$(WOLFBOOT_VERSION)UL
|
||||
|
@ -155,7 +156,7 @@ test-app/image.bin:
|
|||
V=$(V) RAM_CODE=$(RAM_CODE) WOLFBOOT_VERSION=$(WOLFBOOT_VERSION)\
|
||||
KINETIS=$(KINETIS) KINETIS_CPU=$(KINETIS_CPU) KINETIS_DRIVERS=$(KINETIS_DRIVERS) \
|
||||
KINETIS_CMSIS=$(KINETIS_CMSIS) NVM_FLASH_WRITEONCE=$(NVM_FLASH_WRITEONCE) \
|
||||
FREEDOM_E_SDK=$(FREEDOM_E_SDK)
|
||||
FREEDOM_E_SDK=$(FREEDOM_E_SDK) STM32CUBE=$(STM32CUBE) PKA=$(PKA)
|
||||
@rm -f src/*.o hal/*.o
|
||||
@$(SIZE) test-app/image.elf
|
||||
|
||||
|
|
16
arch.mk
16
arch.mk
|
@ -87,6 +87,22 @@ SIZE:=$(CROSS_COMPILE)size
|
|||
BOOT_IMG?=test-app/image.bin
|
||||
|
||||
|
||||
## Hardware PKA
|
||||
|
||||
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
|
||||
|
||||
|
||||
|
||||
ifeq ($(TARGET),kinetis)
|
||||
CFLAGS+= -I$(KINETIS_DRIVERS)/drivers -I$(KINETIS_DRIVERS) -DCPU_$(KINETIS_CPU) -I$(KINETIS_CMSIS)/Include -DDEBUG_CONSOLE_ASSERT_DISABLE=1
|
||||
OBJS+= $(KINETIS_DRIVERS)/drivers/fsl_clock.o $(KINETIS_DRIVERS)/drivers/fsl_ftfx_flash.o $(KINETIS_DRIVERS)/drivers/fsl_ftfx_cache.o $(KINETIS_DRIVERS)/drivers/fsl_ftfx_controller.o
|
||||
|
|
|
@ -21,6 +21,10 @@
|
|||
|
||||
#include <stdint.h>
|
||||
#include <image.h>
|
||||
#ifdef WOLFSSL_STM32_PKA
|
||||
#include "stm32wbxx_hal.h"
|
||||
PKA_HandleTypeDef hpka = { };
|
||||
#endif
|
||||
/* STM32 WB register configuration */
|
||||
|
||||
/* Assembly helpers */
|
||||
|
@ -286,6 +290,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 +306,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
|
||||
|
|
|
@ -1 +1 @@
|
|||
Subproject commit 50fbdb961fd8c2d8123064e567ae8ec44167732d
|
||||
Subproject commit c26a7ccb6818683fff8bdad729d6de9afff91188
|
Loading…
Reference in New Issue