summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorrobert-hh <robert@hammelrath.com>2021-12-17 16:29:26 +0100
committerDamien George <damien@micropython.org>2022-01-27 16:53:30 +1100
commit84b76e4fbff86abb1abd340dd25d38c73d619132 (patch)
treed6fc205e6565cfb14d597db35f2df9f407800d30
parent2dd3d88409937908da6ee05d2d391453df9a3c8a (diff)
mimxrt: Allow for board-specific flash driver files.
If in a board's mkconfigboard.mk the following symbol is set: MICROPY_HW_BOARD_FLASH_FILES = 1 then the files: ($BOARD)_flexspi_flash_config.h and qspi_nor_flash_config.c and/or qspi_hyper_flash_config.c are expected in the board directory. Otherwise the common files from the hal directory are used.
-rw-r--r--ports/mimxrt/Makefile22
-rw-r--r--ports/mimxrt/hal/flexspi_hyper_flash.h2
-rw-r--r--ports/mimxrt/hal/flexspi_nor_flash.h2
-rw-r--r--ports/mimxrt/hal/qspi_hyper_flash_config.c2
-rw-r--r--ports/mimxrt/hal/qspi_nor_flash_config.c2
5 files changed, 24 insertions, 6 deletions
diff --git a/ports/mimxrt/Makefile b/ports/mimxrt/Makefile
index 32b114523..2881c7c76 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 f340aec10..dbd028fd6 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 c2c30876c..f8c31488a 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 17a952b68..f5ffbe841 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 f42730ad5..469a584b8 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