@@ -51,7 +51,8 @@ include $(TOP)/py/py.mk
5151include $(TOP ) /extmod/extmod.mk
5252
5353# Set SDK directory based on MCU_SERIES
54- MCU_DIR = lib/nxp_driver/sdk/devices/$(MCU_SERIES )
54+ MCUX_SDK_DIR = lib/nxp_driver/sdk
55+ MCU_DIR = $(MCUX_SDK_DIR ) /devices/$(MCU_SERIES )
5556
5657# Select linker scripts based on MCU_SERIES
5758LD_FILES = boards/$(MCU_SERIES ) .ld boards/common.ld
@@ -71,8 +72,6 @@ GEN_PINS_SRC = $(BUILD)/pins_gen.c
7172INC += -I$(BOARD_DIR )
7273INC += -I$(BUILD )
7374INC += -I$(TOP )
74- INC += -I$(TOP ) /$(MCU_DIR )
75- INC += -I$(TOP ) /$(MCU_DIR ) /drivers
7675INC += -I$(TOP ) /lib/cmsis/inc
7776INC += -I$(TOP ) /lib/oofatfs
7877INC += -I$(TOP ) /lib/tinyusb/hw
@@ -109,35 +108,38 @@ SRC_TINYUSB_C += \
109108# All settings for Ethernet support are controller by the value of MICROPY_PY_LWIP
110109ifeq ($(MICROPY_PY_LWIP ) ,1)
111110SRC_ETH_C += \
112- $(MCU_DIR ) /drivers/fsl_enet.c \
111+ $(MCUX_SDK_DIR ) /drivers/enet /fsl_enet.c \
113112 hal/phy/device/phydp83825/fsl_phydp83825.c \
114113 hal/phy/device/phydp83848/fsl_phydp83848.c \
115114 hal/phy/device/phyksz8081/fsl_phyksz8081.c \
116115 hal/phy/device/phylan8720/fsl_phylan8720.c \
117116 hal/phy/device/phyrtl8211f/fsl_phyrtl8211f.c \
118117 hal/phy/mdio/enet/fsl_enet_mdio.c
118+
119+ INC_HAL_IMX += \
120+ -I$(TOP ) /$(MCUX_SDK_DIR ) /drivers/enet
119121endif
120122
121123# NXP SDK sources
122124SRC_HAL_IMX_C += \
123125 $(MCU_DIR ) /drivers/fsl_clock.c \
124- $(MCU_DIR ) /drivers/fsl_common.c \
125- $(MCU_DIR ) /drivers/fsl_dmamux .c \
126- $(MCU_DIR ) /drivers/fsl_edma .c \
127- $(MCU_DIR ) /drivers/fsl_flexram .c \
128- $(MCU_DIR ) /drivers/fsl_flexspi .c \
129- $(MCU_DIR ) /drivers/fsl_gpc .c \
130- $(MCU_DIR ) /drivers/fsl_gpio.c \
131- $(MCU_DIR ) /drivers/fsl_gpt.c \
132- $(MCU_DIR ) /drivers/fsl_lpi2c.c \
133- $(MCU_DIR ) /drivers/fsl_lpspi.c \
134- $(MCU_DIR ) /drivers/fsl_lpspi_edma.c \
135- $(MCU_DIR ) /drivers/fsl_pit.c \
136- $(MCU_DIR ) /drivers/fsl_pwm.c \
137- $(MCU_DIR ) /drivers/fsl_sai.c \
138- $(MCU_DIR ) /drivers/fsl_snvs_hp.c \
139- $(MCU_DIR ) /drivers/fsl_snvs_lp.c \
140- $(MCU_DIR ) /drivers/fsl_wdog.c \
126+ $(MCUX_SDK_DIR ) /drivers/common /fsl_common.c \
127+ $(MCUX_SDK_DIR ) /drivers/common/fsl_common_arm .c \
128+ $(MCUX_SDK_DIR ) /drivers/dmamux/fsl_dmamux .c \
129+ $(MCUX_SDK_DIR ) /drivers/edma/fsl_edma .c \
130+ $(MCUX_SDK_DIR ) /drivers/flexram/fsl_flexram .c \
131+ $(MCUX_SDK_DIR ) /drivers/flexspi/fsl_flexspi .c \
132+ $(MCUX_SDK_DIR ) /drivers/igpio /fsl_gpio.c \
133+ $(MCUX_SDK_DIR ) /drivers/gpt /fsl_gpt.c \
134+ $(MCUX_SDK_DIR ) /drivers/lpi2c /fsl_lpi2c.c \
135+ $(MCUX_SDK_DIR ) /drivers/lpspi /fsl_lpspi.c \
136+ $(MCUX_SDK_DIR ) /drivers/lpspi /fsl_lpspi_edma.c \
137+ $(MCUX_SDK_DIR ) /drivers/pit /fsl_pit.c \
138+ $(MCUX_SDK_DIR ) /drivers/pwm /fsl_pwm.c \
139+ $(MCUX_SDK_DIR ) /drivers/sai /fsl_sai.c \
140+ $(MCUX_SDK_DIR ) /drivers/snvs_hp /fsl_snvs_hp.c \
141+ $(MCUX_SDK_DIR ) /drivers/snvs_lp /fsl_snvs_lp.c \
142+ $(MCUX_SDK_DIR ) /drivers/wdog01 /fsl_wdog.c \
141143 $(MCU_DIR ) /system_$(MCU_SERIES )$(MCU_CORE ) .c \
142144
143145# Use a specific boot header for 1062 so the Teensy loader doesn't erase the filesystem.
@@ -147,39 +149,81 @@ else
147149SRC_HAL_IMX_C += $(MCU_DIR ) /xip/fsl_flexspi_nor_boot.c
148150endif
149151
152+ INC_HAL_IMX += \
153+ -I$(TOP ) /$(MCU_DIR ) \
154+ -I$(TOP ) /$(MCU_DIR ) /drivers \
155+ -I$(TOP ) /$(MCUX_SDK_DIR ) /drivers/common \
156+ -I$(TOP ) /$(MCUX_SDK_DIR ) /drivers/dmamux \
157+ -I$(TOP ) /$(MCUX_SDK_DIR ) /drivers/edma \
158+ -I$(TOP ) /$(MCUX_SDK_DIR ) /drivers/flexram \
159+ -I$(TOP ) /$(MCUX_SDK_DIR ) /drivers/flexspi \
160+ -I$(TOP ) /$(MCUX_SDK_DIR ) /drivers/igpio \
161+ -I$(TOP ) /$(MCUX_SDK_DIR ) /drivers/gpt \
162+ -I$(TOP ) /$(MCUX_SDK_DIR ) /drivers/lpi2c \
163+ -I$(TOP ) /$(MCUX_SDK_DIR ) /drivers/lpspi \
164+ -I$(TOP ) /$(MCUX_SDK_DIR ) /drivers/lpuart \
165+ -I$(TOP ) /$(MCUX_SDK_DIR ) /drivers/pit \
166+ -I$(TOP ) /$(MCUX_SDK_DIR ) /drivers/pwm \
167+ -I$(TOP ) /$(MCUX_SDK_DIR ) /drivers/sai \
168+ -I$(TOP ) /$(MCUX_SDK_DIR ) /drivers/snvs_hp \
169+ -I$(TOP ) /$(MCUX_SDK_DIR ) /drivers/snvs_lp \
170+ -I$(TOP ) /$(MCUX_SDK_DIR ) /drivers/wdog01 \
171+
150172ifeq ($(MICROPY_HW_SDRAM_AVAIL ) ,1)
151- SRC_HAL_IMX_C += $(MCU_DIR ) /drivers/fsl_semc.c
173+ SRC_HAL_IMX_C += $(MCUX_SDK_DIR ) /drivers/semc/fsl_semc.c
174+ INC_HAL_IMX += -I$(TOP ) /$(MCUX_SDK_DIR ) /drivers/semc
152175endif
153176
154177ifeq ($(MCU_SERIES ) ,$(filter $(MCU_SERIES ) , MIMXRT1021 MIMXRT1052 MIMXRT1062 MIMXRT1064 MIMXRT1176) )
155- SRC_HAL_IMX_C += $(MCU_DIR ) /drivers/fsl_usdhc.c
178+ SRC_HAL_IMX_C += $(MCUX_SDK_DIR ) /drivers/usdhc/fsl_usdhc.c
179+ INC_HAL_IMX += -I$(TOP ) /$(MCUX_SDK_DIR ) /drivers/usdhc
156180endif
157181
158182ifeq ($(MCU_SERIES ) ,$(filter $(MCU_SERIES ) , MIMXRT1015 MIMXRT1021 MIMXRT1052 MIMXRT1062 MIMXRT1064 MIMXRT1176) )
159183SRC_HAL_IMX_C += \
160- $(MCU_DIR ) /drivers/fsl_qtmr.c \
184+ $(MCUX_SDK_DIR ) /drivers/qtmr_1 /fsl_qtmr.c \
161185 $(MCU_DIR ) /drivers/fsl_romapi.c
186+
187+ INC_HAL_IMX += -I$(TOP ) /$(MCUX_SDK_DIR ) /drivers/qtmr_1
162188endif
163189
164190ifeq ($(MCU_SERIES ) , MIMXRT1176)
165- INC += -I$(TOP ) /$(MCU_DIR ) /drivers/cm7
166-
167191SRC_HAL_IMX_C += \
168192 $(MCU_DIR ) /drivers/cm7/fsl_cache.c \
169193 $(MCU_DIR ) /drivers/fsl_dcdc.c \
170194 $(MCU_DIR ) /drivers/fsl_pmu.c \
171- $(MCU_DIR ) /drivers/fsl_common_arm.c \
172195 $(MCU_DIR ) /drivers/fsl_anatop_ai.c \
173- $(MCU_DIR ) /drivers/fsl_caam.c \
174- $(MCU_DIR ) /drivers/fsl_lpadc.c \
175- $(MCU_DIR ) /drivers/fsl_mu.c
196+ $(MCU_DIR ) /drivers/fsl_soc_src.c \
197+ $(MCU_DIR ) /drivers/fsl_gpc.c \
198+ $(MCUX_SDK_DIR ) /drivers/caam/fsl_caam.c \
199+ $(MCUX_SDK_DIR ) /drivers/lpadc/fsl_lpadc.c \
200+ $(MCUX_SDK_DIR ) /drivers/mu/fsl_mu.c
201+
202+ INC_HAL_IMX += \
203+ -I$(TOP ) /$(MCU_DIR ) /drivers/cm7 \
204+ -I$(TOP ) /$(MCUX_SDK_DIR ) /drivers/caam \
205+ -I$(TOP ) /$(MCUX_SDK_DIR ) /drivers/lpadc \
206+ -I$(TOP ) /$(MCUX_SDK_DIR ) /drivers/mu
207+
208+ CFLAGS += -DCACHE_MODE_WRITE_THROUGH=1
176209else
177210SRC_HAL_IMX_C += \
178- $(MCU_DIR ) /drivers/fsl_adc.c \
179- $(MCU_DIR ) /drivers/fsl_cache.c \
180- $(MCU_DIR ) /drivers/fsl_trng.c
211+ $(MCUX_SDK_DIR ) /drivers/adc_12b1msps_sar/fsl_adc.c \
212+ $(MCUX_SDK_DIR ) /drivers/cache/armv7-m7/fsl_cache.c \
213+ $(MCUX_SDK_DIR ) /drivers/gpc_1/fsl_gpc.c \
214+ $(MCUX_SDK_DIR ) /drivers/src/fsl_src.c \
215+ $(MCUX_SDK_DIR ) /drivers/trng/fsl_trng.c
216+
217+ INC_HAL_IMX += \
218+ -I$(TOP ) /$(MCUX_SDK_DIR ) /drivers/adc_12b1msps_sar \
219+ -I$(TOP ) /$(MCUX_SDK_DIR ) /drivers/cache/armv7-m7 \
220+ -I$(TOP ) /$(MCUX_SDK_DIR ) /drivers/gpc_1 \
221+ -I$(TOP ) /$(MCUX_SDK_DIR ) /drivers/src \
222+ -I$(TOP ) /$(MCUX_SDK_DIR ) /drivers/trng
181223endif
182224
225+ INC += $(INC_HAL_IMX )
226+
183227# C source files
184228SRC_C += \
185229 board_init.c \
@@ -352,8 +396,6 @@ CFLAGS += \
352396 -DMICROPY_HW_FLASH_SIZE=$(MICROPY_HW_FLASH_SIZE ) \
353397 -DMICROPY_HW_SDRAM_AVAIL=$(MICROPY_HW_SDRAM_AVAIL ) \
354398 -DMICROPY_HW_SDRAM_SIZE=$(MICROPY_HW_SDRAM_SIZE ) \
355- -DSPI_RETRY_TIMES=1000000 \
356- -DUART_RETRY_TIMES=1000000 \
357399 -DXIP_BOOT_HEADER_ENABLE=1 \
358400 -DXIP_EXTERNAL_FLASH=1 \
359401 -fdata-sections \
@@ -497,15 +539,15 @@ $(HEADER_BUILD)/qstrdefs.generated.h: $(BOARD_DIR)/mpconfigboard.h
497539
498540$(GEN_FLEXRAM_CONFIG_SRC ) :
499541 $(ECHO ) " Create $@ "
500- $(Q )$(PYTHON ) $(MAKE_FLEXRAM_LD ) -d $(TOP ) / $( MCU_DIR ) /$(MCU_SERIES )$(MCU_CORE ) .h \
501- -f $(TOP ) / $( MCU_DIR ) /$(MCU_SERIES )$(MCU_CORE ) _features.h -l boards/$(MCU_SERIES ) .ld -c $(MCU_SERIES ) > $(GEN_FLEXRAM_CONFIG_SRC )
542+ $(Q )$(PYTHON ) $(MAKE_FLEXRAM_LD ) -d $(MCU_DIR ) /$(MCU_SERIES )$(MCU_CORE ) .h \
543+ -f $(MCU_DIR ) /$(MCU_SERIES )$(MCU_CORE ) _features.h -l boards/$(MCU_SERIES ) .ld -c $(MCU_SERIES ) > $(GEN_FLEXRAM_CONFIG_SRC )
502544
503545# Use a pattern rule here so that make will only call make-pins.py once to make
504546# both pins_gen.c and pins.h
505547$(BUILD ) /% _gen.c $(HEADER_BUILD ) /% .h : $(BOARD_PINS ) $(MAKE_PINS ) $(AF_FILE ) $(PREFIX_FILE ) | $(HEADER_BUILD )
506548 $(ECHO ) " Create $@ "
507549 $(Q )$(PYTHON ) $(MAKE_PINS ) --board-csv $(BOARD_PINS ) --af-csv $(AF_FILE ) \
508- --prefix $(PREFIX_FILE ) --iomux " $( abspath $( TOP ) / $( MCU_DIR) /drivers/fsl_iomuxc.h) " \
550+ --prefix $(PREFIX_FILE ) --iomux " $( abspath $( MCU_DIR) /drivers/fsl_iomuxc.h) " \
509551 --output-source $(GEN_PINS_SRC ) --output-header $(GEN_PINS_HDR )
510552
511553include $(TOP ) /py/mkrules.mk
0 commit comments