diff --git a/arch.mk b/arch.mk index 5da39afa..a5a05f20 100644 --- a/arch.mk +++ b/arch.mk @@ -251,20 +251,33 @@ ifeq ($(ARCH),ARM) # MAX3266X TPU hardware SHA256 acceleration (requires MSDK_DIR) ifeq ($(MAX3266X_TPU),1) NO_ARM_ASM=1 - CFLAGS+=-DWOLFSSL_MAX3266X -DMAX3266X_SHA - CFLAGS+=-DTARGET=MAX32665 -DTARGET_REV=0x4131 + CFLAGS+=-DMAX3266X_SHA CFLAGS+=-ffunction-sections -fdata-sections - MAX3266X_CFLAGS:= \ - -I$(MSDK_DIR)/Libraries/PeriphDrivers/Include/MAX32665/ \ - -I$(MSDK_DIR)/Libraries/CMSIS/Device/Maxim/MAX32665/Include/ \ - -I$(MSDK_DIR)/Libraries/PeriphDrivers/Source/TPU/ \ - -I$(MSDK_DIR)/Libraries/PeriphDrivers/Source/SYS/ \ - -I$(MSDK_DIR)/Libraries/CMSIS/Include/ - CFLAGS+=$(MAX3266X_CFLAGS) - OBJS+=$(MSDK_DIR)/Libraries/PeriphDrivers/Source/TPU/tpu_me14.o \ - $(MSDK_DIR)/Libraries/PeriphDrivers/Source/TPU/tpu_reva.o \ - $(MSDK_DIR)/Libraries/PeriphDrivers/Source/SYS/sys_me14.o \ - $(MSDK_DIR)/Libraries/PeriphDrivers/Source/SYS/mxc_delay.o + ifeq ($(MAX3266X_OLD),1) + # Older Maxim SDK tree (flat MAX32665PeriphDriver layout) + CFLAGS+=-DWOLFSSL_MAX3266X_OLD + MAX3266X_CFLAGS:= \ + -I$(MSDK_DIR)/Libraries/MAX32665PeriphDriver/Include/ \ + -I$(MSDK_DIR)/Libraries/CMSIS/Device/Maxim/MAX32665/Include/ \ + -I$(MSDK_DIR)/Libraries/CMSIS/Include/ + CFLAGS+=$(MAX3266X_CFLAGS) + OBJS+=$(MSDK_DIR)/Libraries/MAX32665PeriphDriver/Source/mxc_sys.o \ + $(MSDK_DIR)/Libraries/MAX32665PeriphDriver/Source/mxc_delay.o + else + CFLAGS+=-DWOLFSSL_MAX3266X + CFLAGS+=-DTARGET=MAX32665 -DTARGET_REV=0x4131 + MAX3266X_CFLAGS:= \ + -I$(MSDK_DIR)/Libraries/PeriphDrivers/Include/MAX32665/ \ + -I$(MSDK_DIR)/Libraries/CMSIS/Device/Maxim/MAX32665/Include/ \ + -I$(MSDK_DIR)/Libraries/PeriphDrivers/Source/TPU/ \ + -I$(MSDK_DIR)/Libraries/PeriphDrivers/Source/SYS/ \ + -I$(MSDK_DIR)/Libraries/CMSIS/Include/ + CFLAGS+=$(MAX3266X_CFLAGS) + OBJS+=$(MSDK_DIR)/Libraries/PeriphDrivers/Source/TPU/tpu_me14.o \ + $(MSDK_DIR)/Libraries/PeriphDrivers/Source/TPU/tpu_reva.o \ + $(MSDK_DIR)/Libraries/PeriphDrivers/Source/SYS/sys_me14.o \ + $(MSDK_DIR)/Libraries/PeriphDrivers/Source/SYS/mxc_delay.o + endif WOLFCRYPT_OBJS+=$(WOLFBOOT_LIB_WOLFSSL)/wolfcrypt/src/port/maxim/max3266x.o endif endif diff --git a/config/examples/max32666.config b/config/examples/max32666.config index 7b090392..198e521c 100644 --- a/config/examples/max32666.config +++ b/config/examples/max32666.config @@ -10,6 +10,7 @@ NVM_FLASH_WRITEONCE?=1 NO_MPU?=1 DEBUG_UART?=1 MAX3266X_TPU?=1 +MAX3266X_OLD?=0 MSDK_DIR?=$(PWD)/../msdk WOLFBOOT_SECTOR_SIZE?=0x2000 WOLFBOOT_PARTITION_SIZE?=0x40000 diff --git a/docs/Targets.md b/docs/Targets.md index 8e3e48d9..ee658ac6 100644 --- a/docs/Targets.md +++ b/docs/Targets.md @@ -8623,6 +8623,8 @@ Boot success marked. Version: 1 | `DEBUG_UART` | Enable UART0 debug output (115200 baud, 8N1). | | `EXT_FLASH` | Enable external flash support (for QSPI NAND configuration). | | `FLAGS_HOME` | Keep boot flags in internal flash (required when `EXT_FLASH=1`). | +| `MAX3266X_TPU` | Enable TPU hardware SHA256 acceleration (requires `MSDK_DIR`). | +| `MAX3266X_OLD` | Build TPU acceleration against the older, deprecated Maxim SDK tree instead of the modern MSDK. | ### MAX32666: External QSPI NAND Configuration