@@ -2480,25 +2480,71 @@ endif
24802480
24812481ifeq ($(TARGET ) ,psoc6)
24822482 CORTEX_M0 =1
2483- OBJS+ =\
2483+ PSOC6_BOARD? =CY8CKIT_062S2_43012
2484+ # The boot ROM's flash NMI handler reprograms the CM0+ MPU for itself and
2485+ # cannot run under wolfBoot's map, which marks the ROM execute-never.
2486+ ifneq ($(NO_MPU),1)
2487+ $(error TARGET=psoc6 requires NO_MPU=1)
2488+ endif
2489+ # Main and work flash erase to 0x00
2490+ ifneq ($(FLAGS_INVERT),1)
2491+ $(error TARGET=psoc6 requires FLAGS_INVERT=1)
2492+ endif
2493+ # Rewriting a programmed row erases it first, so trailer updates need the
2494+ # two-sector trailer to survive a power cut
2495+ ifneq ($(NVM_FLASH_WRITEONCE),1)
2496+ $(error TARGET=psoc6 requires NVM_FLASH_WRITEONCE=1)
2497+ endif
2498+ CYPRESS_PDL_DEV: =$(CYPRESS_PDL ) /devices/COMPONENT_CAT1A
2499+ CYPRESS_PDL_TEMPLATE: =$(CYPRESS_TEMPLATE_LIB ) /files/templates/cat1a/COMPONENT_MTB
2500+ PSOC6_LIB_FILES: =$(CYPRESS_PDL_DEV ) /include/cy_device_headers.h \
2501+ $(CYPRESS_PDL_TEMPLATE ) /COMPONENT_CM0P/system_psoc6_cm0plus.c \
2502+ $(CYPRESS_CMSIS ) /Core/Include/core_cm0plus.h \
2503+ $(CYPRESS_CORE_LIB ) /include/cy_result.h
2504+ ifneq ($(filter-out $(wildcard $(PSOC6_LIB_FILES)),$(PSOC6_LIB_FILES)),)
2505+ ifeq ($(filter clean keysclean distclean keytools,$(MAKECMDGOALS)),)
2506+ $(error PSoC 6 libraries not found : run tools/ci/fetch-psoc6-pdl.sh lib, \
2507+ or set CYPRESS_PDL, CYPRESS_TEMPLATE_LIB, CYPRESS_CMSIS and \
2508+ CYPRESS_CORE_LIB. Missing : \
2509+ $(filter-out $(wildcard $(PSOC6_LIB_FILES)),$(PSOC6_LIB_FILES)))
2510+ endif
2511+ endif
2512+ PSOC6_PDL_OBJS: =\
24842513 $(CYPRESS_PDL ) /drivers/source/cy_flash.o \
24852514 $(CYPRESS_PDL ) /drivers/source/cy_ipc_pipe.o \
24862515 $(CYPRESS_PDL ) /drivers/source/cy_ipc_sema.o \
24872516 $(CYPRESS_PDL ) /drivers/source/cy_ipc_drv.o \
2488- $(CYPRESS_PDL ) /drivers/source/cy_device.o \
24892517 $(CYPRESS_PDL ) /drivers/source/cy_sysclk.o \
24902518 $(CYPRESS_PDL ) /drivers/source/cy_sysint.o \
24912519 $(CYPRESS_PDL ) /drivers/source/cy_syslib.o \
2492- $(CYPRESS_PDL ) /drivers/source/cy_ble_clk.o \
2493- $(CYPRESS_PDL ) /drivers/source/cy_wdt.o \
2494- $(CYPRESS_PDL ) /drivers/source/TOOLCHAIN_GCC_ARM/cy_syslib_gcc.o \
2495- $(CYPRESS_PDL ) /devices/templates/COMPONENT_MTB/COMPONENT_CM0P/system_psoc6_cm0plus.o
2520+ $(CYPRESS_PDL ) /drivers/source/cy_gpio.o \
2521+ $(CYPRESS_PDL ) /drivers/source/TOOLCHAIN_GCC_ARM/cy_syslib_ext.o \
2522+ $(CYPRESS_PDL_DEV ) /source/cy_device.o
2523+ OBJS+ =$(PSOC6_PDL_OBJS ) \
2524+ $(CYPRESS_PDL_TEMPLATE ) /COMPONENT_CM0P/system_psoc6_cm0plus.o
2525+ PSOC6_UART_OBJS: =\
2526+ $(CYPRESS_PDL ) /drivers/source/cy_scb_common.o \
2527+ $(CYPRESS_PDL ) /drivers/source/cy_scb_uart.o
2528+ PSOC6_SMIF_OBJS: =\
2529+ $(CYPRESS_PDL ) /drivers/source/cy_smif.o \
2530+ $(CYPRESS_PDL ) /drivers/source/cy_smif_memslot.o \
2531+ $(CYPRESS_PDL ) /drivers/source/cy_smif_sfdp.o
2532+ ifeq ($(DEBUG_UART),1)
2533+ OBJS+ =$(PSOC6_UART_OBJS )
2534+ endif
2535+ ifeq ($(BOOT_BENCHMARK),1)
2536+ OBJS+ =$(CYPRESS_PDL ) /drivers/source/cy_tcpwm_counter.o
2537+ endif
2538+ ifeq ($(EXT_FLASH),1)
2539+ OBJS+ =$(PSOC6_SMIF_OBJS )
2540+ endif
24962541 PSOC6_CRYPTO_OBJS =\
24972542 $(WOLFBOOT_LIB_WOLFSSL ) /wolfcrypt/src/port/cypress/psoc6_crypto.o \
24982543 $(CYPRESS_PDL ) /drivers/source/cy_crypto_core_vu.o \
24992544 $(CYPRESS_PDL ) /drivers/source/cy_crypto_core_ecc_domain_params.o \
25002545 $(CYPRESS_PDL ) /drivers/source/cy_crypto_core_ecc_nist_p.o \
25012546 $(CYPRESS_PDL ) /drivers/source/cy_crypto_core_ecc_ecdsa.o \
2547+ $(CYPRESS_PDL ) /drivers/source/cy_crypto_core_ecc_key_gen.o \
25022548 $(CYPRESS_PDL ) /drivers/source/cy_crypto_core_sha_v2.o \
25032549 $(CYPRESS_PDL ) /drivers/source/cy_crypto_core_sha_v1.o \
25042550 $(CYPRESS_PDL ) /drivers/source/cy_crypto_core_mem_v2.o \
@@ -2508,15 +2554,20 @@ ifeq ($(TARGET),psoc6)
25082554 $(CYPRESS_PDL ) /drivers/source/cy_crypto.o
25092555
25102556 CFLAGS+ =\
2511- -I$(CYPRESS_PDL ) /devices/include \
25122557 -I$(CYPRESS_PDL ) /drivers/include \
2513- -I$(CYPRESS_PDL ) /cmsis/include \
2514- -I$(CYPRESS_TARGET_LIB ) \
2558+ -I$(CYPRESS_PDL_DEV ) /include \
2559+ -I$(CYPRESS_PDL_DEV ) /include/ip \
2560+ -I$(CYPRESS_PDL_TEMPLATE ) \
2561+ -I$(CYPRESS_CMSIS ) /Core/Include \
25152562 -I$(CYPRESS_CORE_LIB ) /include \
2516- -I$(CYPRESS_PDL ) /devices/include/ip \
2517- -I$(CYPRESS_PDL ) /devices/templates/COMPONENT_MTB \
2518- -DCY8C624ABZI_D44
2563+ -DCY8C624ABZI_S2D44 \
2564+ -DPSOC6_BOARD_$(PSOC6_BOARD )
25192565 ARCH_FLASH_OFFSET =0x10000000
2566+ # Copies then program whole erased rows instead of rewriting half rows
2567+ CFLAGS+=-DFLASHBUFFER_SIZE =512
2568+ ifeq ($(PSOC6_CM4_APP),1)
2569+ CFLAGS+ =-DPSOC6_CM4_APP -DWOLFBOOT_BOOT_REMOTE_CORE
2570+ endif
25202571 ifneq ($(PSOC6_CRYPTO),0)
25212572 CFLAGS+ =-DWOLFSSL_PSOC6_CRYPTO
25222573 OBJS+ =$(PSOC6_CRYPTO_OBJS )
0 commit comments