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_DRIVERS?=$(KINETIS)/devices/MK64F12
|
||||||
KINETIS_CMSIS?=$(KINETIS)/CMSIS
|
KINETIS_CMSIS?=$(KINETIS)/CMSIS
|
||||||
FREEDOM_E_SDK?=$(HOME)/src/freedom-e-sdk
|
FREEDOM_E_SDK?=$(HOME)/src/freedom-e-sdk
|
||||||
|
STM32CUBE?=$(HOME)/src/STM32CubeWB/STM32Cube_FW_WB_V1.2.0
|
||||||
|
|
||||||
DEBUG?=0
|
DEBUG?=0
|
||||||
VTOR?=1
|
VTOR?=1
|
||||||
CORTEX_M0?=0
|
CORTEX_M0?=0
|
||||||
|
@ -25,8 +27,7 @@ V?=0
|
||||||
SPMATH?=1
|
SPMATH?=1
|
||||||
RAM_CODE?=0
|
RAM_CODE?=0
|
||||||
DUALBANK_SWAP=0
|
DUALBANK_SWAP=0
|
||||||
|
PKA?=1
|
||||||
|
|
||||||
|
|
||||||
## Initializers
|
## Initializers
|
||||||
CFLAGS:=-D__WOLFBOOT -DWOLFBOOT_VERSION=$(WOLFBOOT_VERSION)UL
|
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)\
|
V=$(V) RAM_CODE=$(RAM_CODE) WOLFBOOT_VERSION=$(WOLFBOOT_VERSION)\
|
||||||
KINETIS=$(KINETIS) KINETIS_CPU=$(KINETIS_CPU) KINETIS_DRIVERS=$(KINETIS_DRIVERS) \
|
KINETIS=$(KINETIS) KINETIS_CPU=$(KINETIS_CPU) KINETIS_DRIVERS=$(KINETIS_DRIVERS) \
|
||||||
KINETIS_CMSIS=$(KINETIS_CMSIS) NVM_FLASH_WRITEONCE=$(NVM_FLASH_WRITEONCE) \
|
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
|
@rm -f src/*.o hal/*.o
|
||||||
@$(SIZE) test-app/image.elf
|
@$(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
|
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)
|
ifeq ($(TARGET),kinetis)
|
||||||
CFLAGS+= -I$(KINETIS_DRIVERS)/drivers -I$(KINETIS_DRIVERS) -DCPU_$(KINETIS_CPU) -I$(KINETIS_CMSIS)/Include -DDEBUG_CONSOLE_ASSERT_DISABLE=1
|
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
|
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 <stdint.h>
|
||||||
#include <image.h>
|
#include <image.h>
|
||||||
|
#ifdef WOLFSSL_STM32_PKA
|
||||||
|
#include "stm32wbxx_hal.h"
|
||||||
|
PKA_HandleTypeDef hpka = { };
|
||||||
|
#endif
|
||||||
/* STM32 WB register configuration */
|
/* STM32 WB register configuration */
|
||||||
|
|
||||||
/* Assembly helpers */
|
/* Assembly helpers */
|
||||||
|
@ -286,6 +290,11 @@ static void clock_pll_on(void)
|
||||||
void hal_init(void)
|
void hal_init(void)
|
||||||
{
|
{
|
||||||
clock_pll_on();
|
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)
|
void hal_prepare_boot(void)
|
||||||
|
@ -297,3 +306,26 @@ void hal_prepare_boot(void)
|
||||||
clock_pll_off();
|
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