@@ -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,36 +108,39 @@ 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_lpuart.c \
136- $(MCU_DIR ) /drivers/fsl_pit.c \
137- $(MCU_DIR ) /drivers/fsl_pwm.c \
138- $(MCU_DIR ) /drivers/fsl_sai.c \
139- $(MCU_DIR ) /drivers/fsl_snvs_hp.c \
140- $(MCU_DIR ) /drivers/fsl_snvs_lp.c \
141- $(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/lpuart /fsl_lpuart.c \
138+ $(MCUX_SDK_DIR ) /drivers/pit /fsl_pit.c \
139+ $(MCUX_SDK_DIR ) /drivers/pwm /fsl_pwm.c \
140+ $(MCUX_SDK_DIR ) /drivers/sai /fsl_sai.c \
141+ $(MCUX_SDK_DIR ) /drivers/snvs_hp /fsl_snvs_hp.c \
142+ $(MCUX_SDK_DIR ) /drivers/snvs_lp /fsl_snvs_lp.c \
143+ $(MCUX_SDK_DIR ) /drivers/wdog01 /fsl_wdog.c \
142144 $(MCU_DIR ) /system_$(MCU_SERIES )$(MCU_CORE ) .c \
143145
144146# Use a specific boot header for 1062 so the Teensy loader doesn't erase the filesystem.
@@ -148,39 +150,81 @@ else
148150SRC_HAL_IMX_C += $(MCU_DIR ) /xip/fsl_flexspi_nor_boot.c
149151endif
150152
153+ INC_HAL_IMX += \
154+ -I$(TOP ) /$(MCU_DIR ) \
155+ -I$(TOP ) /$(MCU_DIR ) /drivers \
156+ -I$(TOP ) /$(MCUX_SDK_DIR ) /drivers/common \
157+ -I$(TOP ) /$(MCUX_SDK_DIR ) /drivers/dmamux \
158+ -I$(TOP ) /$(MCUX_SDK_DIR ) /drivers/edma \
159+ -I$(TOP ) /$(MCUX_SDK_DIR ) /drivers/flexram \
160+ -I$(TOP ) /$(MCUX_SDK_DIR ) /drivers/flexspi \
161+ -I$(TOP ) /$(MCUX_SDK_DIR ) /drivers/igpio \
162+ -I$(TOP ) /$(MCUX_SDK_DIR ) /drivers/gpt \
163+ -I$(TOP ) /$(MCUX_SDK_DIR ) /drivers/lpi2c \
164+ -I$(TOP ) /$(MCUX_SDK_DIR ) /drivers/lpspi \
165+ -I$(TOP ) /$(MCUX_SDK_DIR ) /drivers/lpuart \
166+ -I$(TOP ) /$(MCUX_SDK_DIR ) /drivers/pit \
167+ -I$(TOP ) /$(MCUX_SDK_DIR ) /drivers/pwm \
168+ -I$(TOP ) /$(MCUX_SDK_DIR ) /drivers/sai \
169+ -I$(TOP ) /$(MCUX_SDK_DIR ) /drivers/snvs_hp \
170+ -I$(TOP ) /$(MCUX_SDK_DIR ) /drivers/snvs_lp \
171+ -I$(TOP ) /$(MCUX_SDK_DIR ) /drivers/wdog01 \
172+
151173ifeq ($(MICROPY_HW_SDRAM_AVAIL ) ,1)
152- SRC_HAL_IMX_C += $(MCU_DIR ) /drivers/fsl_semc.c
174+ SRC_HAL_IMX_C += $(MCUX_SDK_DIR ) /drivers/semc/fsl_semc.c
175+ INC_HAL_IMX += -I$(TOP ) /$(MCUX_SDK_DIR ) /drivers/semc
153176endif
154177
155178ifeq ($(MCU_SERIES ) ,$(filter $(MCU_SERIES ) , MIMXRT1021 MIMXRT1052 MIMXRT1062 MIMXRT1064 MIMXRT1176) )
156- SRC_HAL_IMX_C += $(MCU_DIR ) /drivers/fsl_usdhc.c
179+ SRC_HAL_IMX_C += $(MCUX_SDK_DIR ) /drivers/usdhc/fsl_usdhc.c
180+ INC_HAL_IMX += -I$(TOP ) /$(MCUX_SDK_DIR ) /drivers/usdhc
157181endif
158182
159183ifeq ($(MCU_SERIES ) ,$(filter $(MCU_SERIES ) , MIMXRT1015 MIMXRT1021 MIMXRT1052 MIMXRT1062 MIMXRT1064 MIMXRT1176) )
160184SRC_HAL_IMX_C += \
161- $(MCU_DIR ) /drivers/fsl_qtmr.c \
185+ $(MCUX_SDK_DIR ) /drivers/qtmr_1 /fsl_qtmr.c \
162186 $(MCU_DIR ) /drivers/fsl_romapi.c
187+
188+ INC_HAL_IMX += -I$(TOP ) /$(MCUX_SDK_DIR ) /drivers/qtmr_1
163189endif
164190
165191ifeq ($(MCU_SERIES ) , MIMXRT1176)
166- INC += -I$(TOP ) /$(MCU_DIR ) /drivers/cm7
167-
168192SRC_HAL_IMX_C += \
169193 $(MCU_DIR ) /drivers/cm7/fsl_cache.c \
170194 $(MCU_DIR ) /drivers/fsl_dcdc.c \
171195 $(MCU_DIR ) /drivers/fsl_pmu.c \
172- $(MCU_DIR ) /drivers/fsl_common_arm.c \
173196 $(MCU_DIR ) /drivers/fsl_anatop_ai.c \
174- $(MCU_DIR ) /drivers/fsl_caam.c \
175- $(MCU_DIR ) /drivers/fsl_lpadc.c \
176- $(MCU_DIR ) /drivers/fsl_mu.c
197+ $(MCU_DIR ) /drivers/fsl_soc_src.c \
198+ $(MCU_DIR ) /drivers/fsl_gpc.c \
199+ $(MCUX_SDK_DIR ) /drivers/caam/fsl_caam.c \
200+ $(MCUX_SDK_DIR ) /drivers/lpadc/fsl_lpadc.c \
201+ $(MCUX_SDK_DIR ) /drivers/mu/fsl_mu.c
202+
203+ INC_HAL_IMX += \
204+ -I$(TOP ) /$(MCU_DIR ) /drivers/cm7 \
205+ -I$(TOP ) /$(MCUX_SDK_DIR ) /drivers/caam \
206+ -I$(TOP ) /$(MCUX_SDK_DIR ) /drivers/lpadc \
207+ -I$(TOP ) /$(MCUX_SDK_DIR ) /drivers/mu
208+
209+ CFLAGS += -DCACHE_MODE_WRITE_THROUGH=1
177210else
178211SRC_HAL_IMX_C += \
179- $(MCU_DIR ) /drivers/fsl_adc.c \
180- $(MCU_DIR ) /drivers/fsl_cache.c \
181- $(MCU_DIR ) /drivers/fsl_trng.c
212+ $(MCUX_SDK_DIR ) /drivers/adc_12b1msps_sar/fsl_adc.c \
213+ $(MCUX_SDK_DIR ) /drivers/cache/armv7-m7/fsl_cache.c \
214+ $(MCUX_SDK_DIR ) /drivers/gpc_1/fsl_gpc.c \
215+ $(MCUX_SDK_DIR ) /drivers/src/fsl_src.c \
216+ $(MCUX_SDK_DIR ) /drivers/trng/fsl_trng.c
217+
218+ INC_HAL_IMX += \
219+ -I$(TOP ) /$(MCUX_SDK_DIR ) /drivers/adc_12b1msps_sar \
220+ -I$(TOP ) /$(MCUX_SDK_DIR ) /drivers/cache/armv7-m7 \
221+ -I$(TOP ) /$(MCUX_SDK_DIR ) /drivers/gpc_1 \
222+ -I$(TOP ) /$(MCUX_SDK_DIR ) /drivers/src \
223+ -I$(TOP ) /$(MCUX_SDK_DIR ) /drivers/trng
182224endif
183225
226+ INC += $(INC_HAL_IMX )
227+
184228# C source files
185229SRC_C += \
186230 board_init.c \
@@ -350,8 +394,6 @@ CFLAGS += \
350394 -DMICROPY_HW_FLASH_SIZE=$(MICROPY_HW_FLASH_SIZE ) \
351395 -DMICROPY_HW_SDRAM_AVAIL=$(MICROPY_HW_SDRAM_AVAIL ) \
352396 -DMICROPY_HW_SDRAM_SIZE=$(MICROPY_HW_SDRAM_SIZE ) \
353- -DSPI_RETRY_TIMES=1000000 \
354- -DUART_RETRY_TIMES=1000000 \
355397 -DXIP_BOOT_HEADER_ENABLE=1 \
356398 -DXIP_EXTERNAL_FLASH=1 \
357399 -fdata-sections \
@@ -495,15 +537,15 @@ $(HEADER_BUILD)/qstrdefs.generated.h: $(BOARD_DIR)/mpconfigboard.h
495537
496538$(GEN_FLEXRAM_CONFIG_SRC ) :
497539 $(ECHO ) " Create $@ "
498- $(Q )$(PYTHON ) $(MAKE_FLEXRAM_LD ) -d $(TOP ) / $( MCU_DIR ) /$(MCU_SERIES )$(MCU_CORE ) .h \
499- -f $(TOP ) / $( MCU_DIR ) /$(MCU_SERIES )$(MCU_CORE ) _features.h -l boards/$(MCU_SERIES ) .ld -c $(MCU_SERIES ) > $(GEN_FLEXRAM_CONFIG_SRC )
540+ $(Q )$(PYTHON ) $(MAKE_FLEXRAM_LD ) -d $(MCU_DIR ) /$(MCU_SERIES )$(MCU_CORE ) .h \
541+ -f $(MCU_DIR ) /$(MCU_SERIES )$(MCU_CORE ) _features.h -l boards/$(MCU_SERIES ) .ld -c $(MCU_SERIES ) > $(GEN_FLEXRAM_CONFIG_SRC )
500542
501543# Use a pattern rule here so that make will only call make-pins.py once to make
502544# both pins_gen.c and pins.h
503545$(BUILD ) /% _gen.c $(HEADER_BUILD ) /% .h : $(BOARD_PINS ) $(MAKE_PINS ) $(AF_FILE ) $(PREFIX_FILE ) | $(HEADER_BUILD )
504546 $(ECHO ) " Create $@ "
505547 $(Q )$(PYTHON ) $(MAKE_PINS ) --board-csv $(BOARD_PINS ) --af-csv $(AF_FILE ) \
506- --prefix $(PREFIX_FILE ) --iomux " $( abspath $( TOP ) / $( MCU_DIR) /drivers/fsl_iomuxc.h) " \
548+ --prefix $(PREFIX_FILE ) --iomux " $( abspath $( MCU_DIR) /drivers/fsl_iomuxc.h) " \
507549 --output-source $(GEN_PINS_SRC ) --output-header $(GEN_PINS_HDR )
508550
509551include $(TOP ) /py/mkrules.mk
0 commit comments