diff --git a/ports/mimxrt/Makefile b/ports/mimxrt/Makefile
index 32b1145230..2881c7c767 100644
--- a/ports/mimxrt/Makefile
+++ b/ports/mimxrt/Makefile
@@ -95,6 +95,8 @@ ifeq ($(MICROPY_HW_FLASH_TYPE), qspi_nor)
 CFLAGS += -DBOARD_FLASH_OPS_HEADER_H=\"hal/flexspi_nor_flash.h\"
 else ifeq ($(MICROPY_HW_FLASH_TYPE), hyperflash)
 CFLAGS += -DBOARD_FLASH_OPS_HEADER_H=\"hal/flexspi_hyper_flash.h\"
+else
+$(error Error: Unknown board flash type $(MICROPY_HW_FLASH_TYPE))
 endif
 
 ifeq ($(MICROPY_PY_MACHINE_SDCARD),1)
@@ -272,6 +274,22 @@ SRC_C += \
 	$(SRC_HAL_IMX_C) \
 	$(SRC_ETH_C) \
 
+ifeq ($(MICROPY_HW_BOARD_FLASH_FILES), 1)
+CFLAGS += -DBOARD_FLASH_CONFIG_HEADER_H=\"$(BOARD)_flexspi_flash_config.h\"
+
+ifeq ($(MICROPY_HW_FLASH_TYPE), qspi_nor)
+SRC_C += \
+	hal/flexspi_nor_flash.c \
+	$(BOARD_DIR)/qspi_nor_flash_config.c
+else ifeq ($(MICROPY_HW_FLASH_TYPE), hyperflash)
+SRC_C += \
+	hal/flexspi_hyper_flash.c \
+	$(BOARD_DIR)/qspi_hyper_flash_config.c
+endif
+
+else
+
+CFLAGS += -DBOARD_FLASH_CONFIG_HEADER_H=\"hal/flexspi_flash_config.h\"
 
 ifeq ($(MICROPY_HW_FLASH_TYPE), qspi_nor)
 SRC_C += \
@@ -281,8 +299,8 @@ else ifeq ($(MICROPY_HW_FLASH_TYPE), hyperflash)
 SRC_C += \
 	hal/flexspi_hyper_flash.c \
 	hal/qspi_hyper_flash_config.c
-else
-$(error Error: Unknown board flash type $(MICROPY_HW_FLASH_TYPE))
+endif
+
 endif
 
 ifeq ($(MICROPY_FLOAT_IMPL),double)
diff --git a/ports/mimxrt/hal/flexspi_hyper_flash.h b/ports/mimxrt/hal/flexspi_hyper_flash.h
index f340aec10a..dbd028fd6f 100644
--- a/ports/mimxrt/hal/flexspi_hyper_flash.h
+++ b/ports/mimxrt/hal/flexspi_hyper_flash.h
@@ -28,7 +28,7 @@
 
 #include "fsl_flexspi.h"
 #include "mpconfigboard.h"
-#include "flexspi_flash_config.h"
+#include BOARD_FLASH_CONFIG_HEADER_H
 
 // Defined in boards flash_config.c
 extern flexspi_nor_config_t qspiflash_config;
diff --git a/ports/mimxrt/hal/flexspi_nor_flash.h b/ports/mimxrt/hal/flexspi_nor_flash.h
index c2c30876c7..f8c31488a9 100644
--- a/ports/mimxrt/hal/flexspi_nor_flash.h
+++ b/ports/mimxrt/hal/flexspi_nor_flash.h
@@ -28,7 +28,7 @@
 
 #include "fsl_flexspi.h"
 #include "mpconfigboard.h"
-#include "flexspi_flash_config.h"
+#include BOARD_FLASH_CONFIG_HEADER_H
 
 // Defined in boards flash_config.c
 extern flexspi_nor_config_t qspiflash_config;
diff --git a/ports/mimxrt/hal/qspi_hyper_flash_config.c b/ports/mimxrt/hal/qspi_hyper_flash_config.c
index 17a952b689..f5ffbe8413 100644
--- a/ports/mimxrt/hal/qspi_hyper_flash_config.c
+++ b/ports/mimxrt/hal/qspi_hyper_flash_config.c
@@ -5,7 +5,7 @@
  * SPDX-License-Identifier: BSD-3-Clause
  */
 
-#include "flexspi_flash_config.h"
+#include BOARD_FLASH_CONFIG_HEADER_H
 
 /* Component ID definition, used by tools. */
 #ifndef FSL_COMPONENT_ID
diff --git a/ports/mimxrt/hal/qspi_nor_flash_config.c b/ports/mimxrt/hal/qspi_nor_flash_config.c
index f42730ad54..469a584b87 100644
--- a/ports/mimxrt/hal/qspi_nor_flash_config.c
+++ b/ports/mimxrt/hal/qspi_nor_flash_config.c
@@ -7,7 +7,7 @@
 
 // Based on tinyusb/hw/bsp/teensy_40/evkmimxrt1010_flexspi_nor_config.c
 
-#include "flexspi_flash_config.h"
+#include BOARD_FLASH_CONFIG_HEADER_H
 
 /* Component ID definition, used by tools. */
 #ifndef FSL_COMPONENT_ID