@@ -2458,25 +2458,59 @@ endif
24582458
24592459ifeq ($(TARGET ) ,psoc6)
24602460 CORTEX_M0 =1
2461- OBJS+ =\
2461+ PSOC6_BOARD? =CY8CKIT_062S2_43012
2462+ # The boot ROM's flash NMI handler reprograms the CM0+ MPU for itself and
2463+ # cannot run under wolfBoot's map, which marks the ROM execute-never.
2464+ ifneq ($(NO_MPU),1)
2465+ $(error TARGET=psoc6 requires NO_MPU=1)
2466+ endif
2467+ # Main and work flash erase to 0x00
2468+ ifneq ($(FLAGS_INVERT),1)
2469+ $(error TARGET=psoc6 requires FLAGS_INVERT=1)
2470+ endif
2471+ # Rewriting a programmed row erases it first, so trailer updates need the
2472+ # two-sector trailer to survive a power cut
2473+ ifneq ($(NVM_FLASH_WRITEONCE),1)
2474+ $(error TARGET=psoc6 requires NVM_FLASH_WRITEONCE=1)
2475+ endif
2476+ CYPRESS_PDL_DEV: =$(CYPRESS_PDL ) /devices/COMPONENT_CAT1A
2477+ CYPRESS_PDL_TEMPLATE: =$(CYPRESS_TEMPLATE_LIB ) /files/templates/cat1a/COMPONENT_MTB
2478+ PSOC6_PDL_OBJS: =\
24622479 $(CYPRESS_PDL ) /drivers/source/cy_flash.o \
24632480 $(CYPRESS_PDL ) /drivers/source/cy_ipc_pipe.o \
24642481 $(CYPRESS_PDL ) /drivers/source/cy_ipc_sema.o \
24652482 $(CYPRESS_PDL ) /drivers/source/cy_ipc_drv.o \
2466- $(CYPRESS_PDL ) /drivers/source/cy_device.o \
24672483 $(CYPRESS_PDL ) /drivers/source/cy_sysclk.o \
24682484 $(CYPRESS_PDL ) /drivers/source/cy_sysint.o \
24692485 $(CYPRESS_PDL ) /drivers/source/cy_syslib.o \
2470- $(CYPRESS_PDL ) /drivers/source/cy_ble_clk.o \
2471- $(CYPRESS_PDL ) /drivers/source/cy_wdt.o \
2472- $(CYPRESS_PDL ) /drivers/source/TOOLCHAIN_GCC_ARM/cy_syslib_gcc.o \
2473- $(CYPRESS_PDL ) /devices/templates/COMPONENT_MTB/COMPONENT_CM0P/system_psoc6_cm0plus.o
2486+ $(CYPRESS_PDL ) /drivers/source/cy_gpio.o \
2487+ $(CYPRESS_PDL ) /drivers/source/TOOLCHAIN_GCC_ARM/cy_syslib_ext.o \
2488+ $(CYPRESS_PDL_DEV ) /source/cy_device.o
2489+ OBJS+ =$(PSOC6_PDL_OBJS ) \
2490+ $(CYPRESS_PDL_TEMPLATE ) /COMPONENT_CM0P/system_psoc6_cm0plus.o
2491+ PSOC6_UART_OBJS: =\
2492+ $(CYPRESS_PDL ) /drivers/source/cy_scb_common.o \
2493+ $(CYPRESS_PDL ) /drivers/source/cy_scb_uart.o
2494+ PSOC6_SMIF_OBJS: =\
2495+ $(CYPRESS_PDL ) /drivers/source/cy_smif.o \
2496+ $(CYPRESS_PDL ) /drivers/source/cy_smif_memslot.o \
2497+ $(CYPRESS_PDL ) /drivers/source/cy_smif_sfdp.o
2498+ ifeq ($(DEBUG_UART),1)
2499+ OBJS+ =$(PSOC6_UART_OBJS )
2500+ endif
2501+ ifeq ($(BOOT_BENCHMARK),1)
2502+ OBJS+ =$(CYPRESS_PDL ) /drivers/source/cy_tcpwm_counter.o
2503+ endif
2504+ ifeq ($(EXT_FLASH),1)
2505+ OBJS+ =$(PSOC6_SMIF_OBJS )
2506+ endif
24742507 PSOC6_CRYPTO_OBJS =\
24752508 $(WOLFBOOT_LIB_WOLFSSL ) /wolfcrypt/src/port/cypress/psoc6_crypto.o \
24762509 $(CYPRESS_PDL ) /drivers/source/cy_crypto_core_vu.o \
24772510 $(CYPRESS_PDL ) /drivers/source/cy_crypto_core_ecc_domain_params.o \
24782511 $(CYPRESS_PDL ) /drivers/source/cy_crypto_core_ecc_nist_p.o \
24792512 $(CYPRESS_PDL ) /drivers/source/cy_crypto_core_ecc_ecdsa.o \
2513+ $(CYPRESS_PDL ) /drivers/source/cy_crypto_core_ecc_key_gen.o \
24802514 $(CYPRESS_PDL ) /drivers/source/cy_crypto_core_sha_v2.o \
24812515 $(CYPRESS_PDL ) /drivers/source/cy_crypto_core_sha_v1.o \
24822516 $(CYPRESS_PDL ) /drivers/source/cy_crypto_core_mem_v2.o \
@@ -2486,15 +2520,20 @@ ifeq ($(TARGET),psoc6)
24862520 $(CYPRESS_PDL ) /drivers/source/cy_crypto.o
24872521
24882522 CFLAGS+ =\
2489- -I$(CYPRESS_PDL ) /devices/include \
24902523 -I$(CYPRESS_PDL ) /drivers/include \
2491- -I$(CYPRESS_PDL ) /cmsis/include \
2492- -I$(CYPRESS_TARGET_LIB ) \
2524+ -I$(CYPRESS_PDL_DEV ) /include \
2525+ -I$(CYPRESS_PDL_DEV ) /include/ip \
2526+ -I$(CYPRESS_PDL_TEMPLATE ) \
2527+ -I$(CYPRESS_CMSIS ) /Core/Include \
24932528 -I$(CYPRESS_CORE_LIB ) /include \
2494- -I$(CYPRESS_PDL ) /devices/include/ip \
2495- -I$(CYPRESS_PDL ) /devices/templates/COMPONENT_MTB \
2496- -DCY8C624ABZI_D44
2529+ -DCY8C624ABZI_S2D44 \
2530+ -DPSOC6_BOARD_$(PSOC6_BOARD )
24972531 ARCH_FLASH_OFFSET =0x10000000
2532+ # Copies then program whole erased rows instead of rewriting half rows
2533+ CFLAGS+=-DFLASHBUFFER_SIZE =512
2534+ ifeq ($(PSOC6_CM4_APP),1)
2535+ CFLAGS+ =-DPSOC6_CM4_APP -DWOLFBOOT_BOOT_REMOTE_CORE
2536+ endif
24982537 ifneq ($(PSOC6_CRYPTO),0)
24992538 CFLAGS+ =-DWOLFSSL_PSOC6_CRYPTO
25002539 OBJS+ =$(PSOC6_CRYPTO_OBJS )
0 commit comments