@@ -125,7 +125,12 @@ CFLAGS += -DSTM32_HAL_H='<stm32$(MCU_SERIES)xx_hal.h>'
125125CFLAGS += -DMBOOT_VTOR=$(MBOOT_TEXT0_ADDR )
126126CFLAGS += -DMICROPY_HW_VTOR=$(TEXT0_ADDR )
127127
128+ ifeq ($(MCU_SERIES ) ,$(filter $(MCU_SERIES ) ,n6) )
129+ # as doesn't recognise -mcpu=cortex-m55
130+ AFLAGS += -march=armv8.1-m.main
131+ else
128132AFLAGS += $(filter -mcpu=% ,$(CFLAGS_MCU_$(MCU_SERIES ) ) )
133+ endif
129134
130135# Configure for nan-boxing object model if requested
131136ifeq ($(NANBOX ) ,1)
@@ -300,6 +305,7 @@ SRC_C = \
300305 adc.c \
301306 sdio.c \
302307 subghz.c \
308+ xspi.c \
303309 $(wildcard $(BOARD_DIR ) /* .c)
304310
305311SRC_O += \
@@ -316,6 +322,10 @@ CFLAGS += -DUSE_HAL_DRIVER
316322SRC_O += \
317323 resethandler_m3.o \
318324 shared/runtime/gchelper_thumb2.o
325+ else ifeq ($(MCU_SERIES),n6)
326+ SRC_O += \
327+ resethandler_m3_iram.o \
328+ shared/runtime/gchelper_thumb2.o
319329else
320330SRC_O += \
321331 resethandler.o \
@@ -328,8 +338,6 @@ HAL_SRC_C += $(addprefix $(STM32LIB_HAL_BASE)/Src/stm32$(MCU_SERIES)xx_,\
328338 hal_adc_ex.c \
329339 hal_cortex.c \
330340 hal_dma.c \
331- hal_flash.c \
332- hal_flash_ex.c \
333341 hal_gpio.c \
334342 hal_i2c.c \
335343 hal_pwr.c \
@@ -346,15 +354,30 @@ HAL_SRC_C += $(addprefix $(STM32LIB_HAL_BASE)/Src/stm32$(MCU_SERIES)xx_,\
346354 ll_utils.c \
347355 )
348356
349- ifeq ($(MCU_SERIES ) ,$(filter $(MCU_SERIES ) ,f4 f7 g0 g4 h5 h7 l0 l1 l4 wb) )
357+ ifneq ($(MCU_SERIES ) ,n6)
358+ HAL_SRC_C += $(addprefix $(STM32LIB_HAL_BASE ) /Src/stm32$(MCU_SERIES ) xx_,\
359+ hal_flash.c \
360+ hal_flash_ex.c \
361+ )
362+ endif
363+
364+ ifeq ($(MCU_SERIES ) ,$(filter $(MCU_SERIES ) ,f4 f7 g0 g4 h5 h7 l0 l1 l4 n6 wb) )
350365HAL_SRC_C += $(addprefix $(STM32LIB_HAL_BASE ) /Src/stm32$(MCU_SERIES ) xx_,\
351366 hal_pcd.c \
352367 hal_pcd_ex.c \
353368 ll_usb.c \
354369 )
355370endif
356371
357- ifeq ($(MCU_SERIES ) ,$(filter $(MCU_SERIES ) ,f4 f7 h5 h7 l4) )
372+ ifeq ($(MCU_SERIES ) ,$(filter $(MCU_SERIES ) ,n6) )
373+ HAL_SRC_C += $(addprefix $(STM32LIB_HAL_BASE ) /Src/stm32$(MCU_SERIES ) xx_,\
374+ hal_bsec.c \
375+ hal_rif.c \
376+ hal_xspi.c \
377+ )
378+ endif
379+
380+ ifeq ($(MCU_SERIES ) ,$(filter $(MCU_SERIES ) ,f4 f7 h5 h7 l4 n6) )
358381HAL_SRC_C += $(addprefix $(STM32LIB_HAL_BASE ) /Src/stm32$(MCU_SERIES ) xx_,\
359382 hal_sd.c \
360383 ll_sdmmc.c \
@@ -379,7 +402,7 @@ $(BUILD)/$(STM32LIB_HAL_BASE)/Src/stm32$(MCU_SERIES)xx_hal_mmc.o: CFLAGS += -Wno
379402endif
380403endif
381404
382- ifeq ($(MCU_SERIES ) ,$(filter $(MCU_SERIES ) ,f4 f7 g0 g4 h5 h7) )
405+ ifeq ($(MCU_SERIES ) ,$(filter $(MCU_SERIES ) ,f4 f7 g0 g4 h5 h7 n6 ) )
383406HAL_SRC_C += $(addprefix $(STM32LIB_HAL_BASE ) /Src/stm32$(MCU_SERIES ) xx_,\
384407 hal_dma_ex.c \
385408 )
@@ -489,6 +512,12 @@ all: $(OBJ)
489512
490513ifeq ($(MBOOT_ENABLE_PACKING ) ,1)
491514all_main : $(BUILD ) /firmware.pack.dfu
515+ else ifeq ($(MCU_SERIES),$(filter $(MCU_SERIES),n6))
516+ ifeq ($(USE_MBOOT ) ,1)
517+ all_main : $(BUILD ) /firmware.dfu
518+ else
519+ all_main : $(BUILD ) /firmware-trusted.bin
520+ endif
492521else
493522all_main : $(BUILD ) /firmware.dfu
494523endif
@@ -608,6 +637,13 @@ $(BUILD)/firmware.hex: $(BUILD)/firmware.elf
608637$(BUILD ) /firmware.elf : $(OBJ )
609638 $(call GENERATE_ELF,$@ ,$^ )
610639
640+ $(BUILD ) /firmware-trusted.bin : $(BUILD ) /firmware.bin
641+ /bin/rm -f $@
642+ $(CUBE_PROG_BASE ) /bin/STM32MP_SigningTool_CLI -bin $^ -nk -of 0x80000000 -t fsbl -o $@ -hv $(STM32_N6_HEADER_VERSION )
643+
644+ deploy-n6 : $(BUILD ) /firmware-trusted.bin
645+ $(CUBE_PROG_BASE ) /bin/STM32_Programmer.sh -c port=SWD mode=HOTPLUG ap=1 -el $(DKEL ) -w $^ 0x70000000 -hardRst
646+
611647# List of sources for qstr extraction
612648SRC_QSTR += $(SRC_C ) $(SRC_CXX ) $(SHARED_SRC_C ) $(GEN_PINS_SRC )
613649
0 commit comments