From bec0524dbf75bc9a90b0331ab52cdf6c5f6d9121 Mon Sep 17 00:00:00 2001 From: Philipp Ebensberger Date: Wed, 22 Jun 2022 21:26:54 +0200 Subject: [PATCH] mimxrt/Makefile: Rework board flash type handling. Reworks handling and configuration of different board flash types in the Makefile, linker scripts and board makefile fragments. --- ports/mimxrt/Makefile | 64 ++++++++----------- .../boards/MIMXRT1010_EVK/mpconfigboard.mk | 2 +- ports/mimxrt/boards/MIMXRT1011.ld | 2 +- ports/mimxrt/boards/MIMXRT1015.ld | 2 +- .../boards/MIMXRT1015_EVK/mpconfigboard.mk | 2 +- .../boards/MIMXRT1020_EVK/mpconfigboard.mk | 2 +- ports/mimxrt/boards/MIMXRT1021.ld | 2 +- .../boards/MIMXRT1050_EVK/mpconfigboard.mk | 2 +- ports/mimxrt/boards/MIMXRT1052.ld | 4 +- .../boards/MIMXRT1060_EVK/mpconfigboard.mk | 2 +- ports/mimxrt/boards/MIMXRT1062.ld | 4 +- ports/mimxrt/boards/MIMXRT1064.ld | 6 +- .../boards/MIMXRT1064_EVK/mpconfigboard.mk | 2 +- .../boards/OLIMEX_RT1010/mpconfigboard.mk | 2 +- .../boards/SEEED_ARCH_MIX/mpconfigboard.mk | 2 +- ports/mimxrt/boards/TEENSY40/mpconfigboard.mk | 2 +- ports/mimxrt/boards/TEENSY41/mpconfigboard.mk | 2 +- 17 files changed, 45 insertions(+), 59 deletions(-) diff --git a/ports/mimxrt/Makefile b/ports/mimxrt/Makefile index ee8281dd68..32861c26ae 100644 --- a/ports/mimxrt/Makefile +++ b/ports/mimxrt/Makefile @@ -203,28 +203,21 @@ SRC_C += \ tusb_port.c \ $(SRC_TINYUSB_C) \ $(SRC_HAL_IMX_C) \ - $(SRC_ETH_C) \ + $(SRC_ETH_C) -ifeq ($(MICROPY_HW_FLASH_TYPE), qspi_nor) -SRC_C += hal/flexspi_nor_flash.c - -ifeq ($(MICROPY_HW_BOARD_FLASH_FILES), 1) -SRC_C += $(BOARD_DIR)/qspi_nor_flash_config.c +# Add sources for respective board flash type +ifeq ($(MICROPY_HW_FLASH_TYPE),$(filter $(MICROPY_HW_FLASH_TYPE),qspi_nor_flash qspi_hyper_flash)) + # Add hal/flexspi_nor_flash.c or hal/flashspi_hyper_flash.c respectively + SRC_C += hal/flexspi_$(subst qspi_,,$(MICROPY_HW_FLASH_TYPE)).c + # + # Add custom (board specific) or default configuration + ifeq ($(MICROPY_HW_BOARD_FLASH_FILES), 1) + SRC_C += $(BOARD_DIR)/$(MICROPY_HW_FLASH_TYPE)_config.c + else + SRC_C += hal/$(MICROPY_HW_FLASH_TYPE)_config.c + endif else -SRC_C += hal/qspi_nor_flash_config.c -endif # qspi_nor -# -else ifeq ($(MICROPY_HW_FLASH_TYPE), hyperflash) -SRC_C += hal/flexspi_hyper_flash.c - -ifeq ($(MICROPY_HW_BOARD_FLASH_FILES), 1) -SRC_C += $(BOARD_DIR)/qspi_hyper_flash_config.c -else -SRC_C += hal/qspi_hyper_flash_config.c -endif # hyperflash -# -else -$(error Error: Unknown board flash type $(MICROPY_HW_FLASH_TYPE)) + $(error Error: Unknown board flash type $(MICROPY_HW_FLASH_TYPE)) endif # Math library source files @@ -414,26 +407,19 @@ CFLAGS += \ -Wfloat-conversion \ -Wno-error=unused-parameter -ifeq ($(MICROPY_HW_FLASH_TYPE), qspi_nor) -CFLAGS += -DBOARD_FLASH_OPS_HEADER_H=\"hal/flexspi_nor_flash.h\" - -ifeq ($(MICROPY_HW_BOARD_FLASH_FILES), 1) -CFLAGS += -DBOARD_FLASH_CONFIG_HEADER_H=\"$(BOARD)_flexspi_flash_config.h\" +# Configure respective board flash type +ifeq ($(MICROPY_HW_FLASH_TYPE),$(filter $(MICROPY_HW_FLASH_TYPE),qspi_nor_flash qspi_hyper_flash)) + # Add hal/flexspi_nor_flash.h or hal/flexspi_hyper_flash.h respectively + CFLAGS += -DBOARD_FLASH_OPS_HEADER_H=\"hal/flexspi_$(subst qspi_,,$(MICROPY_HW_FLASH_TYPE)).h\" + # + # Add custom (board specific) or default configuration + ifeq ($(MICROPY_HW_BOARD_FLASH_FILES), 1) + CFLAGS += -DBOARD_FLASH_CONFIG_HEADER_H=\"$(BOARD)_flexspi_flash_config.h\" + else + CFLAGS += -DBOARD_FLASH_CONFIG_HEADER_H=\"hal/flexspi_flash_config.h\" + endif else -CFLAGS += -DBOARD_FLASH_CONFIG_HEADER_H=\"hal/flexspi_flash_config.h\" -endif # qspi_nor -# -else ifeq ($(MICROPY_HW_FLASH_TYPE), hyperflash) -CFLAGS += -DBOARD_FLASH_OPS_HEADER_H=\"hal/flexspi_hyper_flash.h\" - -ifeq ($(MICROPY_HW_BOARD_FLASH_FILES), 1) -CFLAGS += -DBOARD_FLASH_CONFIG_HEADER_H=\"$(BOARD)_flexspi_flash_config.h\" -else -CFLAGS += -DBOARD_FLASH_CONFIG_HEADER_H=\"hal/flexspi_flash_config.h\" -endif # hyperflash -# -else -$(error Error: Unknown board flash type $(MICROPY_HW_FLASH_TYPE)) + $(error Error: Unknown board flash type $(MICROPY_HW_FLASH_TYPE)) endif # Configure floating point support diff --git a/ports/mimxrt/boards/MIMXRT1010_EVK/mpconfigboard.mk b/ports/mimxrt/boards/MIMXRT1010_EVK/mpconfigboard.mk index c2a50d722b..af705e0b90 100644 --- a/ports/mimxrt/boards/MIMXRT1010_EVK/mpconfigboard.mk +++ b/ports/mimxrt/boards/MIMXRT1010_EVK/mpconfigboard.mk @@ -3,7 +3,7 @@ MCU_VARIANT = MIMXRT1011DAE5A MICROPY_FLOAT_IMPL = single MICROPY_PY_MACHINE_SDCARD = 0 -MICROPY_HW_FLASH_TYPE ?= qspi_nor +MICROPY_HW_FLASH_TYPE ?= qspi_nor_flash MICROPY_HW_FLASH_SIZE ?= 0x1000000 # 16MB JLINK_PATH ?= /media/RT1010-EVK/ diff --git a/ports/mimxrt/boards/MIMXRT1011.ld b/ports/mimxrt/boards/MIMXRT1011.ld index 19bbc27701..908eefffd6 100644 --- a/ports/mimxrt/boards/MIMXRT1011.ld +++ b/ports/mimxrt/boards/MIMXRT1011.ld @@ -3,7 +3,7 @@ reserved_size = MICROPY_HW_FLASH_RESERVED; #endif -#if MICROPY_HW_FLASH_TYPE==qspi_nor +#if MICROPY_HW_FLASH_TYPE == qspi_nor_flash flash_start = 0x60000000; #else #error Unknown MICROPY_HW_FLASH_TYPE diff --git a/ports/mimxrt/boards/MIMXRT1015.ld b/ports/mimxrt/boards/MIMXRT1015.ld index 6d34200a9f..90336a2437 100644 --- a/ports/mimxrt/boards/MIMXRT1015.ld +++ b/ports/mimxrt/boards/MIMXRT1015.ld @@ -3,7 +3,7 @@ reserved_size = MICROPY_HW_FLASH_RESERVED; #endif -#if MICROPY_HW_FLASH_TYPE == qspi_nor +#if MICROPY_HW_FLASH_TYPE == qspi_nor_flash flash_start = 0x60000000; #else #error Unknown MICROPY_HW_FLASH_TYPE diff --git a/ports/mimxrt/boards/MIMXRT1015_EVK/mpconfigboard.mk b/ports/mimxrt/boards/MIMXRT1015_EVK/mpconfigboard.mk index 5d959b31d4..a2661a4897 100644 --- a/ports/mimxrt/boards/MIMXRT1015_EVK/mpconfigboard.mk +++ b/ports/mimxrt/boards/MIMXRT1015_EVK/mpconfigboard.mk @@ -3,7 +3,7 @@ MCU_VARIANT = MIMXRT1015DAF5A MICROPY_FLOAT_IMPL = single MICROPY_PY_MACHINE_SDCARD = 0 -MICROPY_HW_FLASH_TYPE ?= qspi_nor +MICROPY_HW_FLASH_TYPE ?= qspi_nor_flash MICROPY_HW_FLASH_SIZE ?= 0x1000000 # 16MB MICROPY_BOOT_BUFFER_SIZE = (32 * 1024) diff --git a/ports/mimxrt/boards/MIMXRT1020_EVK/mpconfigboard.mk b/ports/mimxrt/boards/MIMXRT1020_EVK/mpconfigboard.mk index c1e1678e59..98262e2370 100644 --- a/ports/mimxrt/boards/MIMXRT1020_EVK/mpconfigboard.mk +++ b/ports/mimxrt/boards/MIMXRT1020_EVK/mpconfigboard.mk @@ -3,7 +3,7 @@ MCU_VARIANT = MIMXRT1021DAG5A MICROPY_FLOAT_IMPL = double MICROPY_PY_MACHINE_SDCARD = 1 -MICROPY_HW_FLASH_TYPE ?= qspi_nor +MICROPY_HW_FLASH_TYPE ?= qspi_nor_flash MICROPY_HW_FLASH_SIZE ?= 0x800000 # 8MB MICROPY_HW_SDRAM_AVAIL = 1 diff --git a/ports/mimxrt/boards/MIMXRT1021.ld b/ports/mimxrt/boards/MIMXRT1021.ld index 60557f1bbf..bef0c13df5 100644 --- a/ports/mimxrt/boards/MIMXRT1021.ld +++ b/ports/mimxrt/boards/MIMXRT1021.ld @@ -3,7 +3,7 @@ reserved_size = MICROPY_HW_FLASH_RESERVED; #endif -#if MICROPY_HW_FLASH_TYPE == qspi_nor +#if MICROPY_HW_FLASH_TYPE == qspi_nor_flash flash_start = 0x60000000; #else #error Unknown MICROPY_HW_FLASH_TYPE diff --git a/ports/mimxrt/boards/MIMXRT1050_EVK/mpconfigboard.mk b/ports/mimxrt/boards/MIMXRT1050_EVK/mpconfigboard.mk index 65e3d30963..4cdf18b62b 100644 --- a/ports/mimxrt/boards/MIMXRT1050_EVK/mpconfigboard.mk +++ b/ports/mimxrt/boards/MIMXRT1050_EVK/mpconfigboard.mk @@ -3,7 +3,7 @@ MCU_VARIANT = MIMXRT1052DVL6B MICROPY_FLOAT_IMPL = double MICROPY_PY_MACHINE_SDCARD = 1 -MICROPY_HW_FLASH_TYPE ?= hyperflash +MICROPY_HW_FLASH_TYPE ?= qspi_hyper_flash MICROPY_HW_FLASH_SIZE ?= 0x4000000 # 64MB MICROPY_HW_SDRAM_AVAIL = 1 diff --git a/ports/mimxrt/boards/MIMXRT1052.ld b/ports/mimxrt/boards/MIMXRT1052.ld index 3e5739acf5..ca656711a5 100644 --- a/ports/mimxrt/boards/MIMXRT1052.ld +++ b/ports/mimxrt/boards/MIMXRT1052.ld @@ -3,9 +3,9 @@ reserved_size = MICROPY_HW_FLASH_RESERVED; #endif -#if MICROPY_HW_FLASH_TYPE==qspi_nor +#if MICROPY_HW_FLASH_TYPE == qspi_nor_flash flash_start = 0x60000000; -#elif MICROPY_HW_FLASH_TYPE==hyperflash +#elif MICROPY_HW_FLASH_TYPE == qspi_hyper_flash flash_start = 0x60000000; #else #error Unknown MICROPY_HW_FLASH_TYPE diff --git a/ports/mimxrt/boards/MIMXRT1060_EVK/mpconfigboard.mk b/ports/mimxrt/boards/MIMXRT1060_EVK/mpconfigboard.mk index 56ccba6e59..ecdd7ec0cb 100644 --- a/ports/mimxrt/boards/MIMXRT1060_EVK/mpconfigboard.mk +++ b/ports/mimxrt/boards/MIMXRT1060_EVK/mpconfigboard.mk @@ -3,7 +3,7 @@ MCU_VARIANT = MIMXRT1062DVJ6A MICROPY_FLOAT_IMPL = double MICROPY_PY_MACHINE_SDCARD = 1 -MICROPY_HW_FLASH_TYPE ?= qspi_nor +MICROPY_HW_FLASH_TYPE ?= qspi_nor_flash MICROPY_HW_FLASH_SIZE ?= 0x800000 # 8MB MICROPY_HW_SDRAM_AVAIL = 1 diff --git a/ports/mimxrt/boards/MIMXRT1062.ld b/ports/mimxrt/boards/MIMXRT1062.ld index fc4eb20c07..5b91550d97 100644 --- a/ports/mimxrt/boards/MIMXRT1062.ld +++ b/ports/mimxrt/boards/MIMXRT1062.ld @@ -3,9 +3,9 @@ reserved_size = MICROPY_HW_FLASH_RESERVED; #endif -#if MICROPY_HW_FLASH_TYPE==qspi_nor +#if MICROPY_HW_FLASH_TYPE == qspi_nor_flash flash_start = 0x60000000; -#elif MICROPY_HW_FLASH_TYPE==hyperflash +#elif MICROPY_HW_FLASH_TYPE == qspi_hyper_flash flash_start = 0x60000000; #else #error Unknown MICROPY_HW_FLASH_TYPE diff --git a/ports/mimxrt/boards/MIMXRT1064.ld b/ports/mimxrt/boards/MIMXRT1064.ld index 148f1f23e2..1fbc855fa1 100644 --- a/ports/mimxrt/boards/MIMXRT1064.ld +++ b/ports/mimxrt/boards/MIMXRT1064.ld @@ -3,11 +3,11 @@ reserved_size = MICROPY_HW_FLASH_RESERVED; #endif -#if MICROPY_HW_FLASH_TYPE==qspi_nor +#if MICROPY_HW_FLASH_TYPE == qspi_nor_flash flash_start = 0x60000000; -#elif MICROPY_HW_FLASH_TYPE==hyperflash +#elif MICROPY_HW_FLASH_TYPE == qspi_hyper_flash flash_start = 0x60000000; -#elif MICROPY_HW_FLASH_TYPE==internal +#elif MICROPY_HW_FLASH_TYPE == internal flash_start = 0x70000000; #else #error Unknown MICROPY_HW_FLASH_TYPE diff --git a/ports/mimxrt/boards/MIMXRT1064_EVK/mpconfigboard.mk b/ports/mimxrt/boards/MIMXRT1064_EVK/mpconfigboard.mk index 5cd7d49abd..f524a81e60 100644 --- a/ports/mimxrt/boards/MIMXRT1064_EVK/mpconfigboard.mk +++ b/ports/mimxrt/boards/MIMXRT1064_EVK/mpconfigboard.mk @@ -3,7 +3,7 @@ MCU_VARIANT = MIMXRT1064DVL6A MICROPY_FLOAT_IMPL = double MICROPY_PY_MACHINE_SDCARD = 1 -MICROPY_HW_FLASH_TYPE ?= hyperflash +MICROPY_HW_FLASH_TYPE ?= qspi_hyper_flash MICROPY_HW_FLASH_SIZE ?= 0x4000000 # 64MB MICROPY_HW_SDRAM_AVAIL = 1 diff --git a/ports/mimxrt/boards/OLIMEX_RT1010/mpconfigboard.mk b/ports/mimxrt/boards/OLIMEX_RT1010/mpconfigboard.mk index e4f904903d..96aaa57764 100644 --- a/ports/mimxrt/boards/OLIMEX_RT1010/mpconfigboard.mk +++ b/ports/mimxrt/boards/OLIMEX_RT1010/mpconfigboard.mk @@ -3,7 +3,7 @@ MCU_VARIANT = MIMXRT1011DAE5A MICROPY_FLOAT_IMPL = single MICROPY_PY_MACHINE_SDCARD ?= 0 -MICROPY_HW_FLASH_TYPE ?= qspi_nor +MICROPY_HW_FLASH_TYPE ?= qspi_nor_flash MICROPY_HW_FLASH_SIZE ?= 0x200000 # 2MB MICROPY_HW_FLASH_RESERVED ?= 0x1000 # 4KB diff --git a/ports/mimxrt/boards/SEEED_ARCH_MIX/mpconfigboard.mk b/ports/mimxrt/boards/SEEED_ARCH_MIX/mpconfigboard.mk index 90edc5d517..7a87496b94 100644 --- a/ports/mimxrt/boards/SEEED_ARCH_MIX/mpconfigboard.mk +++ b/ports/mimxrt/boards/SEEED_ARCH_MIX/mpconfigboard.mk @@ -3,7 +3,7 @@ MCU_VARIANT = MIMXRT1052DVL6B MICROPY_FLOAT_IMPL = double MICROPY_PY_MACHINE_SDCARD = 1 -MICROPY_HW_FLASH_TYPE ?= qspi_nor +MICROPY_HW_FLASH_TYPE ?= qspi_nor_flash MICROPY_HW_FLASH_SIZE ?= 0x800000 # 8MB MICROPY_HW_SDRAM_AVAIL = 1 diff --git a/ports/mimxrt/boards/TEENSY40/mpconfigboard.mk b/ports/mimxrt/boards/TEENSY40/mpconfigboard.mk index 94e427cc16..aa903a0604 100644 --- a/ports/mimxrt/boards/TEENSY40/mpconfigboard.mk +++ b/ports/mimxrt/boards/TEENSY40/mpconfigboard.mk @@ -3,7 +3,7 @@ MCU_VARIANT = MIMXRT1062DVJ6A MICROPY_FLOAT_IMPL = double MICROPY_PY_MACHINE_SDCARD = 1 -MICROPY_HW_FLASH_TYPE ?= qspi_nor +MICROPY_HW_FLASH_TYPE ?= qspi_nor_flash MICROPY_HW_FLASH_SIZE ?= 0x200000 # 2MB MICROPY_HW_FLASH_RESERVED ?= 0x1000 # 4KB diff --git a/ports/mimxrt/boards/TEENSY41/mpconfigboard.mk b/ports/mimxrt/boards/TEENSY41/mpconfigboard.mk index a012444caa..454967f04f 100755 --- a/ports/mimxrt/boards/TEENSY41/mpconfigboard.mk +++ b/ports/mimxrt/boards/TEENSY41/mpconfigboard.mk @@ -3,7 +3,7 @@ MCU_VARIANT = MIMXRT1062DVJ6A MICROPY_FLOAT_IMPL = double MICROPY_PY_MACHINE_SDCARD = 1 -MICROPY_HW_FLASH_TYPE ?= qspi_nor +MICROPY_HW_FLASH_TYPE ?= qspi_nor_flash MICROPY_HW_FLASH_SIZE ?= 0x800000 # 8MB MICROPY_HW_FLASH_RESERVED ?= 0x1000 # 4KB