Skip to content

Commit 938919e

Browse files
authored
Merge pull request #56 from wolfSSL/psoc6_hwcrypto
Support for psoc6 hw crypto accelerator
2 parents b70ae43 + d21dfc2 commit 938919e

5 files changed

Lines changed: 38 additions & 2 deletions

File tree

arch.mk

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -165,6 +165,20 @@ ifeq ($(TARGET),psoc6)
165165
$(CYPRESS_PDL)/drivers/source/cy_wdt.o \
166166
$(CYPRESS_PDL)/drivers/source/TOOLCHAIN_GCC_ARM/cy_syslib_gcc.o \
167167
$(CYPRESS_PDL)/devices/templates/COMPONENT_MTB/COMPONENT_CM0P/system_psoc6_cm0plus.o
168+
169+
PSOC6_CRYPTO_OBJS=./lib/wolfssl/wolfcrypt/src/port/cypress/psoc6_crypto.o \
170+
$(CYPRESS_PDL)/drivers/source/cy_crypto_core_vu.o \
171+
$(CYPRESS_PDL)/drivers/source/cy_crypto_core_ecc_domain_params.o \
172+
$(CYPRESS_PDL)/drivers/source/cy_crypto_core_ecc_nist_p.o \
173+
$(CYPRESS_PDL)/drivers/source/cy_crypto_core_ecc_ecdsa.o \
174+
$(CYPRESS_PDL)/drivers/source/cy_crypto_core_sha_v2.o \
175+
$(CYPRESS_PDL)/drivers/source/cy_crypto_core_sha_v1.o \
176+
$(CYPRESS_PDL)/drivers/source/cy_crypto_core_mem_v2.o \
177+
$(CYPRESS_PDL)/drivers/source/cy_crypto_core_mem_v1.o \
178+
$(CYPRESS_PDL)/drivers/source/cy_crypto_core_hw.o \
179+
$(CYPRESS_PDL)/drivers/source/cy_crypto_core_hw_v1.o \
180+
$(CYPRESS_PDL)/drivers/source/cy_crypto.o
181+
168182
CFLAGS+=-I$(CYPRESS_PDL)/drivers/include/ \
169183
-I$(CYPRESS_PDL)/devices/include \
170184
-I$(CYPRESS_PDL)/cmsis/include \
@@ -173,9 +187,16 @@ ifeq ($(TARGET),psoc6)
173187
-I$(CYPRESS_PDL)/devices/include/ip \
174188
-I$(CYPRESS_PDL)/devices/templates/COMPONENT_MTB \
175189
-DCY8C624ABZI_D44
190+
176191
ARCH_FLASH_OFFSET=0x10000000
192+
ifneq ($(PSOC6_CRYPTO),0)
193+
CFLAGS+=-DWOLFSSL_PSOC6_CRYPTO
194+
OBJS+=$(PSOC6_CRYPTO_OBJS)
195+
endif
177196
endif
178197

198+
199+
179200
CFLAGS+=-DARCH_FLASH_OFFSET=$(ARCH_FLASH_OFFSET)
180201

181202
## Toolchain setup

docs/Targets.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -610,6 +610,14 @@ make TARGET=psoc6 \
610610

611611
Note: A reference `.config` can be found in `./config/examples/cypsoc6.config`.
612612

613+
Hardware acceleration is enable by default using psoc6 crypto hw support.
614+
615+
To compile with hardware acceleration disabled, use the option
616+
617+
``` PSOC6_CRYPTO=0 ```
618+
619+
in your wolfBoot configuration.
620+
613621
#### OpenOCD installation
614622

615623
Compile and install the customized OpenOCD.

hal/psoc6.c

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,9 @@
3131
#include "cy_sysclk.h"
3232
#include "cy_syslib.h"
3333
#include "cy_ipc_drv.h"
34+
#ifdef WOLFSSL_PSOC6_CRYPTO
35+
#include "wolfssl/wolfcrypt/port/cypress/psoc6_crypto.h"
36+
#endif
3437

3538
#include "psoc6_02_config.h"
3639

@@ -100,6 +103,9 @@ void hal_init(void)
100103
Cy_PDL_Init(CY_DEVICE_CFG);
101104
Cy_Flash_Init();
102105
hal_set_pll();
106+
#ifdef WOLFSSL_PSOC6_CRYPTO
107+
psoc6_crypto_port_init();
108+
#endif
103109
}
104110

105111
void hal_prepare_boot(void)

lib/wolfssl

tools/config.mk

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ ifeq ($(ARCH),)
3131
DUALBANK_SWAP?=0
3232
IMAGE_HEADER_SIZE?=256
3333
PKA?=1
34+
PSOC6_CRYPTO?=1
3435
WOLFTPM?=0
3536
WOLFBOOT_PARTITION_SIZE?=0x20000
3637
WOLFBOOT_SECTOR_SIZE?=0x20000
@@ -48,7 +49,7 @@ CONFIG_VARS:= ARCH TARGET SIGN HASH MCUXPRESSO MCUXPRESSO_CPU MCUXPRESSO_DRIVERS
4849
MCUXPRESSO_CMSIS FREEDOM_E_SDK STM32CUBE CYPRESS_PDL CYPRESS_CORE_LIB CYPRESS_TARGET_LIB DEBUG VTOR \
4950
CORTEX_M0 NO_ASM EXT_FLASH SPI_FLASH NO_XIP UART_FLASH ALLOW_DOWNGRADE NVM_FLASH_WRITEONCE \
5051
WOLFBOOT_VERSION V NO_MPU \
51-
SPMATH RAM_CODE DUALBANK_SWAP IMAGE_HEADER_SIZE PKA WOLFTPM \
52+
SPMATH RAM_CODE DUALBANK_SWAP IMAGE_HEADER_SIZE PKA PSOC6_CRYPTO WOLFTPM \
5253
WOLFBOOT_PARTITION_SIZE WOLFBOOT_SECTOR_SIZE \
5354
WOLFBOOT_PARTITION_BOOT_ADDRESS WOLFBOOT_PARTITION_UPDATE_ADDRESS \
5455
WOLFBOOT_PARTITION_SWAP_ADDRESS WOLFBOOT_LOAD_ADDRESS \

0 commit comments

Comments
 (0)