From 0540b1a699da8e31e3668ad27fa8bd33d258087d Mon Sep 17 00:00:00 2001 From: Maureen Helm Date: Tue, 12 Feb 2019 15:46:31 -0600 Subject: [PATCH] soc: nxp_imx: Move code/data location configs to soc level The imx rt family of socs has several options for linking code and data into internal or external memories, and up until now we have handled these options at the board level. This has resulted in several Kconfig symbols being defined in multiple places and triggering warnings in documentation builds: warning: the default selection CODE_ITCM (defined at boards/arm/mimxrt1050_evk/Kconfig:13, boards/arm/mimxrt1060_evk/Kconfig:13) of (defined at boards/arm/mimxrt1050_evk/Kconfig:9) is not contained in the choice warning: the choice symbol CODE_ITCM (defined at boards/arm/mimxrt1050_evk/Kconfig:13, boards/arm/mimxrt1060_evk/Kconfig:13) is defined with a prompt outside the choice warning: the choice symbol CODE_HYPERFLASH (defined at boards/arm/mimxrt1050_evk/Kconfig:16, boards/arm/mimxrt1060_evk/Kconfig:16) is defined with a prompt outside the choice warning: the choice symbol CODE_QSPI (defined at boards/arm/mimxrt1050_evk/Kconfig:19, boards/arm/mimxrt1060_evk/Kconfig:19) is defined with a prompt outside the choice warning: the choice symbol CODE_ITCM (defined at boards/arm/mimxrt1050_evk/Kconfig:13, boards/arm/mimxrt1060_evk/Kconfig:13) is defined with a prompt outside the choice warning: the choice symbol CODE_HYPERFLASH (defined at boards/arm/mimxrt1050_evk/Kconfig:16, boards/arm/mimxrt1060_evk/Kconfig:16) is defined with a prompt outside the choice warning: the choice symbol CODE_QSPI (defined at boards/arm/mimxrt1050_evk/Kconfig:19, boards/arm/mimxrt1060_evk/Kconfig:19) is defined with a prompt outside the choice The number of warnings increased as we added more imx rt boards. Fix the warnings by moving code and data location configs from the board level to the soc level. The default memories for all imx rt boards are unchanged. The mimxrt10{20,50,60}_evk boards still default to hyperflash/qspi for code and sdram for data. The mimxrt1064_evk board still defaults to ITCM for code and DTCM for data because jlink does not yet support programming internal flash. Signed-off-by: Maureen Helm --- boards/arm/mimxrt1020_evk/Kconfig | 36 ---------------- boards/arm/mimxrt1020_evk/Kconfig.defconfig | 38 ----------------- boards/arm/mimxrt1050_evk/Kconfig | 42 ------------------- boards/arm/mimxrt1050_evk/Kconfig.defconfig | 38 ----------------- boards/arm/mimxrt1060_evk/Kconfig | 42 ------------------- boards/arm/mimxrt1060_evk/Kconfig.defconfig | 38 ----------------- boards/arm/mimxrt1064_evk/Kconfig | 35 ---------------- boards/arm/mimxrt1064_evk/Kconfig.defconfig | 38 ----------------- .../nxp_imx/rt/Kconfig.defconfig.mimxrt1064 | 8 ++++ soc/arm/nxp_imx/rt/Kconfig.defconfig.series | 40 ++++++++++++++++++ soc/arm/nxp_imx/rt/Kconfig.soc | 26 ++++++++++++ 11 files changed, 74 insertions(+), 307 deletions(-) delete mode 100644 boards/arm/mimxrt1020_evk/Kconfig delete mode 100644 boards/arm/mimxrt1050_evk/Kconfig delete mode 100644 boards/arm/mimxrt1060_evk/Kconfig delete mode 100644 boards/arm/mimxrt1064_evk/Kconfig diff --git a/boards/arm/mimxrt1020_evk/Kconfig b/boards/arm/mimxrt1020_evk/Kconfig deleted file mode 100644 index 9240a9c3933..00000000000 --- a/boards/arm/mimxrt1020_evk/Kconfig +++ /dev/null @@ -1,36 +0,0 @@ -# -# Copyright (c) 2018, NXP -# -# SPDX-License-Identifier: Apache-2.0 -# - -if BOARD_MIMXRT1020_EVK - -choice - prompt "Code location selection" - default CODE_QSPI - -config CODE_ITCM - bool "Link code into internal instruction tightly coupled memory (ITCM)" - -config CODE_QSPI - depends on BOARD_MIMXRT1020_EVK - select NXP_IMX_RT_BOOT_HEADER - bool "Link code into external QSPI memory" - -endchoice - -choice - prompt "Data location selection" - default DATA_SDRAM - -config DATA_DTCM - bool "Link data into internal data tightly coupled memory (DTCM)" - -config DATA_SDRAM - select DEVICE_CONFIGURATION_DATA if NXP_IMX_RT_BOOT_HEADER - bool "Link data into external SDRAM memory" - -endchoice - -endif # BOARD_MIMXRT1020_EVK diff --git a/boards/arm/mimxrt1020_evk/Kconfig.defconfig b/boards/arm/mimxrt1020_evk/Kconfig.defconfig index d393eebfd7b..29c0a4cd9ea 100644 --- a/boards/arm/mimxrt1020_evk/Kconfig.defconfig +++ b/boards/arm/mimxrt1020_evk/Kconfig.defconfig @@ -50,42 +50,4 @@ config ETH_MCUX_0 endif # NETWORKING -if CODE_ITCM - -config FLASH_SIZE - default $(dt_int_val,DT_NXP_IMX_ITCM_0_SIZE,K) - -config FLASH_BASE_ADDRESS - default $(dt_hex_val,DT_NXP_IMX_ITCM_0_BASE_ADDRESS) - -endif # CODE_ITCM - -if CODE_QSPI - -config FLASH_SIZE - default $(dt_int_val,DT_NXP_IMX_FLEXSPI_402A8000_SIZE_1,K) - -config FLASH_BASE_ADDRESS - default $(dt_hex_val,DT_NXP_IMX_FLEXSPI_402A8000_BASE_ADDRESS_1) - -endif - -if DATA_DTCM - -config SRAM_SIZE - default $(dt_int_val,DT_NXP_IMX_DTCM_0_SIZE,K) - -config SRAM_BASE_ADDRESS - default $(dt_hex_val,DT_NXP_IMX_DTCM_0_BASE_ADDRESS) -endif - -if DATA_SDRAM - -config SRAM_SIZE - default $(dt_int_val,DT_MMIO_SRAM_80000000_SIZE,K) - -config SRAM_BASE_ADDRESS - default $(dt_hex_val,DT_MMIO_SRAM_80000000_BASE_ADDRESS) -endif - endif # BOARD_MIMXRT1020_EVK diff --git a/boards/arm/mimxrt1050_evk/Kconfig b/boards/arm/mimxrt1050_evk/Kconfig deleted file mode 100644 index 27288a88c2e..00000000000 --- a/boards/arm/mimxrt1050_evk/Kconfig +++ /dev/null @@ -1,42 +0,0 @@ -# -# Copyright (c) 2018, NXP -# -# SPDX-License-Identifier: Apache-2.0 -# - -if BOARD_MIMXRT1050_EVK || BOARD_MIMXRT1050_EVK_QSPI - -choice - prompt "Code location selection" - default CODE_HYPERFLASH if BOARD_MIMXRT1050_EVK - default CODE_QSPI if BOARD_MIMXRT1050_EVK_QSPI - -config CODE_ITCM - bool "Link code into internal instruction tightly coupled memory (ITCM)" - -config CODE_HYPERFLASH - depends on BOARD_MIMXRT1050_EVK - select NXP_IMX_RT_BOOT_HEADER - bool "Link code into external HyperFlash memory" - -config CODE_QSPI - depends on BOARD_MIMXRT1050_EVK_QSPI - select NXP_IMX_RT_BOOT_HEADER - bool "Link code into external QSPI memory" - -endchoice - -choice - prompt "Data location selection" - default DATA_SDRAM - -config DATA_DTCM - bool "Link data into internal data tightly coupled memory (DTCM)" - -config DATA_SDRAM - select DEVICE_CONFIGURATION_DATA if NXP_IMX_RT_BOOT_HEADER - bool "Link data into external SDRAM memory" - -endchoice - -endif # BOARD_MIMXRT1050_EVK || BOARD_MIMXRT1050_EVK_QSPI diff --git a/boards/arm/mimxrt1050_evk/Kconfig.defconfig b/boards/arm/mimxrt1050_evk/Kconfig.defconfig index 9e63c308a30..531ff6f2963 100644 --- a/boards/arm/mimxrt1050_evk/Kconfig.defconfig +++ b/boards/arm/mimxrt1050_evk/Kconfig.defconfig @@ -53,44 +53,6 @@ config UART_MCUX_LPUART_3 endif # UART_MCUX_LPUART -if CODE_ITCM - -config FLASH_SIZE - default $(dt_int_val,DT_NXP_IMX_ITCM_0_SIZE,K) - -config FLASH_BASE_ADDRESS - default $(dt_hex_val,DT_NXP_IMX_ITCM_0_BASE_ADDRESS) - -endif # CODE_ITCM - -if CODE_HYPERFLASH || CODE_QSPI - -config FLASH_SIZE - default $(dt_int_val,DT_NXP_IMX_FLEXSPI_402A8000_SIZE_1,K) - -config FLASH_BASE_ADDRESS - default $(dt_hex_val,DT_NXP_IMX_FLEXSPI_402A8000_BASE_ADDRESS_1) - -endif - -if DATA_DTCM - -config SRAM_SIZE - default $(dt_int_val,DT_NXP_IMX_DTCM_0_SIZE,K) - -config SRAM_BASE_ADDRESS - default $(dt_hex_val,DT_NXP_IMX_DTCM_0_BASE_ADDRESS) -endif - -if DATA_SDRAM - -config SRAM_SIZE - default $(dt_int_val,DT_MMIO_SRAM_80000000_SIZE,K) - -config SRAM_BASE_ADDRESS - default $(dt_hex_val,DT_MMIO_SRAM_80000000_BASE_ADDRESS) -endif - if NETWORKING config NET_L2_ETHERNET diff --git a/boards/arm/mimxrt1060_evk/Kconfig b/boards/arm/mimxrt1060_evk/Kconfig deleted file mode 100644 index e97990be3c7..00000000000 --- a/boards/arm/mimxrt1060_evk/Kconfig +++ /dev/null @@ -1,42 +0,0 @@ -# -# Copyright (c) 2018, NXP -# -# SPDX-License-Identifier: Apache-2.0 -# - -if BOARD_MIMXRT1060_EVK || BOARD_MIMXRT1060_EVK_HYPERFLASH - -choice - prompt "Code location selection" - default CODE_HYPERFLASH if BOARD_MIMXRT1060_EVK_HYPERFLASH - default CODE_QSPI if BOARD_MIMXRT1060_EVK - -config CODE_ITCM - bool "Link code into internal instruction tightly coupled memory (ITCM)" - -config CODE_HYPERFLASH - depends on BOARD_MIMXRT1060_EVK_HYPERFLASH - select NXP_IMX_RT_BOOT_HEADER - bool "Link code into external HyperFlash memory" - -config CODE_QSPI - depends on BOARD_MIMXRT1060_EVK - select NXP_IMX_RT_BOOT_HEADER - bool "Link code into external QSPI memory" - -endchoice - -choice - prompt "Data location selection" - default DATA_SDRAM - -config DATA_DTCM - bool "Link data into internal data tightly coupled memory (DTCM)" - -config DATA_SDRAM - select DEVICE_CONFIGURATION_DATA if NXP_IMX_RT_BOOT_HEADER - bool "Link data into external SDRAM memory" - -endchoice - -endif # BOARD_MIMXRT1060_EVK || BOARD_MIMXRT1060_EVK_HYPERFLASH diff --git a/boards/arm/mimxrt1060_evk/Kconfig.defconfig b/boards/arm/mimxrt1060_evk/Kconfig.defconfig index ed9fc3defc2..e334f3c9331 100644 --- a/boards/arm/mimxrt1060_evk/Kconfig.defconfig +++ b/boards/arm/mimxrt1060_evk/Kconfig.defconfig @@ -31,42 +31,4 @@ config UART_MCUX_LPUART_3 endif # UART_MCUX_LPUART -if CODE_ITCM - -config FLASH_SIZE - default $(dt_int_val,DT_NXP_IMX_ITCM_0_SIZE,K) - -config FLASH_BASE_ADDRESS - default $(dt_hex_val,DT_NXP_IMX_ITCM_0_BASE_ADDRESS) - -endif # CODE_ITCM - -if CODE_HYPERFLASH || CODE_QSPI - -config FLASH_SIZE - default $(dt_int_val,DT_NXP_IMX_FLEXSPI_402A8000_SIZE_1,K) - -config FLASH_BASE_ADDRESS - default $(dt_hex_val,DT_NXP_IMX_FLEXSPI_402A8000_BASE_ADDRESS_1) - -endif - -if DATA_DTCM - -config SRAM_SIZE - default $(dt_int_val,DT_NXP_IMX_DTCM_0_SIZE,K) - -config SRAM_BASE_ADDRESS - default $(dt_hex_val,DT_NXP_IMX_DTCM_0_BASE_ADDRESS) -endif - -if DATA_SDRAM - -config SRAM_SIZE - default $(dt_int_val,DT_MMIO_SRAM_80000000_SIZE,K) - -config SRAM_BASE_ADDRESS - default $(dt_hex_val,DT_MMIO_SRAM_80000000_BASE_ADDRESS) -endif - endif # BOARD_MIMXRT1060_EVK || BOARD_MIMXRT1060_EVK_HYPERFLASH diff --git a/boards/arm/mimxrt1064_evk/Kconfig b/boards/arm/mimxrt1064_evk/Kconfig deleted file mode 100644 index 03ae43218f6..00000000000 --- a/boards/arm/mimxrt1064_evk/Kconfig +++ /dev/null @@ -1,35 +0,0 @@ -# -# Copyright (c) 2018, NXP -# -# SPDX-License-Identifier: Apache-2.0 -# - -if BOARD_MIMXRT1064_EVK - -choice - prompt "Code location selection" - default CODE_ITCM - -config CODE_ITCM - bool "Link code into internal instruction tightly coupled memory (ITCM)" - -config CODE_INTERNAL_QSPI - select NXP_IMX_RT_BOOT_HEADER - bool "Link code into internal QSPI memory" - -endchoice - -choice - prompt "Data location selection" - default DATA_DTCM - -config DATA_DTCM - bool "Link data into internal data tightly coupled memory (DTCM)" - -config DATA_SDRAM - select DEVICE_CONFIGURATION_DATA if NXP_IMX_RT_BOOT_HEADER - bool "Link data into external SDRAM memory" - -endchoice - -endif # BOARD_MIMXRT1064_EVK diff --git a/boards/arm/mimxrt1064_evk/Kconfig.defconfig b/boards/arm/mimxrt1064_evk/Kconfig.defconfig index 832c0c5e48d..93a8ce01f76 100644 --- a/boards/arm/mimxrt1064_evk/Kconfig.defconfig +++ b/boards/arm/mimxrt1064_evk/Kconfig.defconfig @@ -10,44 +10,6 @@ if BOARD_MIMXRT1064_EVK config BOARD default "mimxrt1064_evk" -if CODE_ITCM - -config FLASH_SIZE - default $(dt_int_val,DT_NXP_IMX_ITCM_0_SIZE,K) - -config FLASH_BASE_ADDRESS - default $(dt_hex_val,DT_NXP_IMX_ITCM_0_BASE_ADDRESS) - -endif # CODE_ITCM - -if CODE_INTERNAL_QSPI - -config FLASH_SIZE - default $(dt_int_val,DT_NXP_IMX_FLEXSPI_402A8000_SIZE_1,K) - -config FLASH_BASE_ADDRESS - default $(dt_hex_val,DT_NXP_IMX_FLEXSPI_402A8000_BASE_ADDRESS_1) - -endif - -if DATA_DTCM - -config SRAM_SIZE - default $(dt_int_val,DT_NXP_IMX_DTCM_0_SIZE,K) - -config SRAM_BASE_ADDRESS - default $(dt_hex_val,DT_NXP_IMX_DTCM_0_BASE_ADDRESS) -endif - -if DATA_SDRAM - -config SRAM_SIZE - default $(dt_int_val,DT_MMIO_SRAM_80000000_SIZE,K) - -config SRAM_BASE_ADDRESS - default $(dt_hex_val,DT_MMIO_SRAM_80000000_BASE_ADDRESS) -endif - if GPIO_MCUX_IGPIO config GPIO_MCUX_IGPIO_1 diff --git a/soc/arm/nxp_imx/rt/Kconfig.defconfig.mimxrt1064 b/soc/arm/nxp_imx/rt/Kconfig.defconfig.mimxrt1064 index e1cb0a280de..56a7e397899 100644 --- a/soc/arm/nxp_imx/rt/Kconfig.defconfig.mimxrt1064 +++ b/soc/arm/nxp_imx/rt/Kconfig.defconfig.mimxrt1064 @@ -23,4 +23,12 @@ config IPG_DIV config GPIO def_bool y +choice CODE_LOCATION + default CODE_ITCM +endchoice + +choice DATA_LOCATION + default DATA_DTCM +endchoice + endif # SOC_MIMXRT1064 diff --git a/soc/arm/nxp_imx/rt/Kconfig.defconfig.series b/soc/arm/nxp_imx/rt/Kconfig.defconfig.series index 1e06a3b59c8..02789ad169a 100644 --- a/soc/arm/nxp_imx/rt/Kconfig.defconfig.series +++ b/soc/arm/nxp_imx/rt/Kconfig.defconfig.series @@ -76,6 +76,46 @@ config SPI_MCUX_LPSPI endif # SPI +if CODE_ITCM + +config FLASH_SIZE + default $(dt_int_val,DT_NXP_IMX_ITCM_0_SIZE,K) + +config FLASH_BASE_ADDRESS + default $(dt_hex_val,DT_NXP_IMX_ITCM_0_BASE_ADDRESS) + +endif # CODE_ITCM + +if CODE_FLEXSPI + +config FLASH_SIZE + default $(dt_int_val,DT_NXP_IMX_FLEXSPI_402A8000_SIZE_1,K) + +config FLASH_BASE_ADDRESS + default $(dt_hex_val,DT_NXP_IMX_FLEXSPI_402A8000_BASE_ADDRESS_1) + +endif # CODE_FLEXSPI + +if DATA_DTCM + +config SRAM_SIZE + default $(dt_int_val,DT_NXP_IMX_DTCM_0_SIZE,K) + +config SRAM_BASE_ADDRESS + default $(dt_hex_val,DT_NXP_IMX_DTCM_0_BASE_ADDRESS) + +endif # DATA_DTCM + +if DATA_SEMC + +config SRAM_SIZE + default $(dt_int_val,DT_MMIO_SRAM_80000000_SIZE,K) + +config SRAM_BASE_ADDRESS + default $(dt_hex_val,DT_MMIO_SRAM_80000000_BASE_ADDRESS) + +endif # DATA_SEMC + source "soc/arm/nxp_imx/rt/Kconfig.defconfig.mimxrt*" endif # SOC_SERIES_IMX_RT diff --git a/soc/arm/nxp_imx/rt/Kconfig.soc b/soc/arm/nxp_imx/rt/Kconfig.soc index 20f5a76506f..e95bdf145fb 100644 --- a/soc/arm/nxp_imx/rt/Kconfig.soc +++ b/soc/arm/nxp_imx/rt/Kconfig.soc @@ -246,4 +246,30 @@ config DEVICE_CONFIGURATION_DATA endif # NXP_IMX_RT_BOOT_HEADER +choice CODE_LOCATION + prompt "Code location selection" + default CODE_FLEXSPI + +config CODE_ITCM + bool "Link code into internal instruction tightly coupled memory (ITCM)" + +config CODE_FLEXSPI + bool "Link code into external FlexSPI-controlled memory" + select NXP_IMX_RT_BOOT_HEADER + +endchoice + +choice DATA_LOCATION + prompt "Data location selection" + default DATA_SEMC + +config DATA_DTCM + bool "Link data into internal data tightly coupled memory (DTCM)" + +config DATA_SEMC + bool "Link data into external SEMC-controlled memory" + select DEVICE_CONFIGURATION_DATA if NXP_IMX_RT_BOOT_HEADER + +endchoice + endif # SOC_SERIES_IMX_RT