From 07976026a28c8ac9904ffc1664cb8efa19c48e39 Mon Sep 17 00:00:00 2001 From: Maureen Helm Date: Tue, 20 Oct 2020 19:13:43 -0500 Subject: [PATCH] boards: soc: arm: Set zephyr,sram chosen node for i.mx rt boards Removes the DATA_LOCATION Kconfig symbol from the i.mx rt soc series and refactors corresponding boards to use a device tree chosen node instead. The external SDRAM is chosen on all boards that can support it; otherwise the internal DTCM is chosen. Signed-off-by: Maureen Helm --- boards/arm/mimxrt1010_evk/mimxrt1010_evk.dts | 1 + boards/arm/mimxrt1015_evk/mimxrt1015_evk.dts | 1 + boards/arm/mimxrt1020_evk/Kconfig.defconfig | 4 --- boards/arm/mimxrt1020_evk/mimxrt1020_evk.dts | 1 + boards/arm/mimxrt1050_evk/Kconfig.defconfig | 4 --- boards/arm/mimxrt1050_evk/mimxrt1050_evk.dts | 1 + boards/arm/mimxrt1060_evk/Kconfig.defconfig | 4 --- boards/arm/mimxrt1060_evk/mimxrt1060_evk.dts | 1 + boards/arm/mimxrt1064_evk/Kconfig.defconfig | 4 --- boards/arm/mimxrt1064_evk/mimxrt1064_evk.dts | 1 + boards/arm/mm_swiftio/Kconfig.defconfig | 4 --- boards/arm/mm_swiftio/mm_swiftio.dts | 1 + soc/arm/nxp_imx/rt/Kconfig.defconfig.series | 30 -------------------- soc/arm/nxp_imx/rt/Kconfig.soc | 15 ---------- soc/arm/nxp_imx/rt/linker.ld | 8 ++++-- 15 files changed, 12 insertions(+), 68 deletions(-) diff --git a/boards/arm/mimxrt1010_evk/mimxrt1010_evk.dts b/boards/arm/mimxrt1010_evk/mimxrt1010_evk.dts index 1f560ec26f5..5276bc72572 100644 --- a/boards/arm/mimxrt1010_evk/mimxrt1010_evk.dts +++ b/boards/arm/mimxrt1010_evk/mimxrt1010_evk.dts @@ -18,6 +18,7 @@ }; chosen { + zephyr,sram = &dtcm; zephyr,console = &lpuart1; zephyr,shell-uart = &lpuart1; }; diff --git a/boards/arm/mimxrt1015_evk/mimxrt1015_evk.dts b/boards/arm/mimxrt1015_evk/mimxrt1015_evk.dts index 2540b008caa..d8377ae1612 100644 --- a/boards/arm/mimxrt1015_evk/mimxrt1015_evk.dts +++ b/boards/arm/mimxrt1015_evk/mimxrt1015_evk.dts @@ -18,6 +18,7 @@ }; chosen { + zephyr,sram = &dtcm; zephyr,console = &lpuart1; zephyr,shell-uart = &lpuart1; }; diff --git a/boards/arm/mimxrt1020_evk/Kconfig.defconfig b/boards/arm/mimxrt1020_evk/Kconfig.defconfig index d9d1a22380a..e4c58f0cd67 100644 --- a/boards/arm/mimxrt1020_evk/Kconfig.defconfig +++ b/boards/arm/mimxrt1020_evk/Kconfig.defconfig @@ -12,10 +12,6 @@ choice CODE_LOCATION default CODE_FLEXSPI endchoice -choice DATA_LOCATION - default DATA_SEMC -endchoice - if NETWORKING config NET_L2_ETHERNET diff --git a/boards/arm/mimxrt1020_evk/mimxrt1020_evk.dts b/boards/arm/mimxrt1020_evk/mimxrt1020_evk.dts index 2fca7e2eb9c..7f6367739ca 100644 --- a/boards/arm/mimxrt1020_evk/mimxrt1020_evk.dts +++ b/boards/arm/mimxrt1020_evk/mimxrt1020_evk.dts @@ -18,6 +18,7 @@ }; chosen { + zephyr,sram = &sdram0; zephyr,console = &lpuart1; zephyr,shell-uart = &lpuart1; }; diff --git a/boards/arm/mimxrt1050_evk/Kconfig.defconfig b/boards/arm/mimxrt1050_evk/Kconfig.defconfig index b1e1a68f777..1608367d08e 100644 --- a/boards/arm/mimxrt1050_evk/Kconfig.defconfig +++ b/boards/arm/mimxrt1050_evk/Kconfig.defconfig @@ -12,10 +12,6 @@ choice CODE_LOCATION default CODE_FLEXSPI endchoice -choice DATA_LOCATION - default DATA_SEMC -endchoice - config DISK_ACCESS_USDHC1 default y depends on DISK_ACCESS_USDHC diff --git a/boards/arm/mimxrt1050_evk/mimxrt1050_evk.dts b/boards/arm/mimxrt1050_evk/mimxrt1050_evk.dts index d33c9f0682a..62ab7cb2fd3 100644 --- a/boards/arm/mimxrt1050_evk/mimxrt1050_evk.dts +++ b/boards/arm/mimxrt1050_evk/mimxrt1050_evk.dts @@ -19,6 +19,7 @@ }; chosen { + zephyr,sram = &sdram0; zephyr,console = &lpuart1; zephyr,shell-uart = &lpuart1; }; diff --git a/boards/arm/mimxrt1060_evk/Kconfig.defconfig b/boards/arm/mimxrt1060_evk/Kconfig.defconfig index bc601a6d75f..b2022257cf2 100644 --- a/boards/arm/mimxrt1060_evk/Kconfig.defconfig +++ b/boards/arm/mimxrt1060_evk/Kconfig.defconfig @@ -13,10 +13,6 @@ choice CODE_LOCATION default CODE_FLEXSPI endchoice -choice DATA_LOCATION - default DATA_SEMC -endchoice - config DISK_ACCESS_USDHC1 default y depends on DISK_ACCESS_USDHC diff --git a/boards/arm/mimxrt1060_evk/mimxrt1060_evk.dts b/boards/arm/mimxrt1060_evk/mimxrt1060_evk.dts index a28979352ea..0fe1824d75c 100644 --- a/boards/arm/mimxrt1060_evk/mimxrt1060_evk.dts +++ b/boards/arm/mimxrt1060_evk/mimxrt1060_evk.dts @@ -19,6 +19,7 @@ }; chosen { + zephyr,sram = &sdram0; zephyr,console = &lpuart1; zephyr,shell-uart = &lpuart1; zephyr,can-primary = &flexcan2; diff --git a/boards/arm/mimxrt1064_evk/Kconfig.defconfig b/boards/arm/mimxrt1064_evk/Kconfig.defconfig index 0ebd742d618..52e87780bf2 100644 --- a/boards/arm/mimxrt1064_evk/Kconfig.defconfig +++ b/boards/arm/mimxrt1064_evk/Kconfig.defconfig @@ -12,10 +12,6 @@ choice CODE_LOCATION default CODE_FLEXSPI2 endchoice -choice DATA_LOCATION - default DATA_SEMC -endchoice - config DISK_ACCESS_USDHC1 default y depends on DISK_ACCESS_USDHC diff --git a/boards/arm/mimxrt1064_evk/mimxrt1064_evk.dts b/boards/arm/mimxrt1064_evk/mimxrt1064_evk.dts index 7076c6ae7f2..4474a31956f 100644 --- a/boards/arm/mimxrt1064_evk/mimxrt1064_evk.dts +++ b/boards/arm/mimxrt1064_evk/mimxrt1064_evk.dts @@ -20,6 +20,7 @@ }; chosen { + zephyr,sram = &sdram0; zephyr,console = &lpuart1; zephyr,shell-uart = &lpuart1; zephyr,can-primary = &flexcan2; diff --git a/boards/arm/mm_swiftio/Kconfig.defconfig b/boards/arm/mm_swiftio/Kconfig.defconfig index e24ab5ea213..9bcc4d73609 100644 --- a/boards/arm/mm_swiftio/Kconfig.defconfig +++ b/boards/arm/mm_swiftio/Kconfig.defconfig @@ -12,10 +12,6 @@ choice CODE_LOCATION default CODE_FLEXSPI endchoice -choice DATA_LOCATION - default DATA_SEMC -endchoice - config DISK_ACCESS_USDHC1 default y depends on DISK_ACCESS_USDHC diff --git a/boards/arm/mm_swiftio/mm_swiftio.dts b/boards/arm/mm_swiftio/mm_swiftio.dts index 3052181a6bd..00058008f74 100644 --- a/boards/arm/mm_swiftio/mm_swiftio.dts +++ b/boards/arm/mm_swiftio/mm_swiftio.dts @@ -19,6 +19,7 @@ }; chosen { + zephyr,sram = &sdram0; zephyr,console = &lpuart1; zephyr,shell-uart = &lpuart1; }; diff --git a/soc/arm/nxp_imx/rt/Kconfig.defconfig.series b/soc/arm/nxp_imx/rt/Kconfig.defconfig.series index 2f80d3d512c..2c6d9c093e5 100644 --- a/soc/arm/nxp_imx/rt/Kconfig.defconfig.series +++ b/soc/arm/nxp_imx/rt/Kconfig.defconfig.series @@ -98,36 +98,6 @@ config FLASH_BASE_ADDRESS endif # CODE_FLEXSPI2 -if DATA_DTCM - -config SRAM_SIZE - default $(dt_node_reg_size_int,/soc/flexram@400b0000/dtcm@20000000,0,K) - -config SRAM_BASE_ADDRESS - default $(dt_node_reg_addr_hex,/soc/flexram@400b0000/dtcm@20000000) - -endif # DATA_DTCM - -if DATA_SEMC - -config SRAM_SIZE - default $(dt_node_reg_size_int,/memory@80000000,0,K) - -config SRAM_BASE_ADDRESS - default $(dt_node_reg_addr_hex,/memory@80000000) - -endif # DATA_SEMC - -if DATA_OCRAM - -config SRAM_SIZE - default $(dt_node_reg_size_int,/soc/flexram@400b0000/ocram@20200000,0,K) - -config SRAM_BASE_ADDRESS - default $(dt_node_reg_addr_hex,/soc/flexram@400b0000/ocram@20200000) - -endif # DATA_OCRAM - config USB_DC_NXP_EHCI default y depends on USB diff --git a/soc/arm/nxp_imx/rt/Kconfig.soc b/soc/arm/nxp_imx/rt/Kconfig.soc index ff880f40141..f279a364c8a 100644 --- a/soc/arm/nxp_imx/rt/Kconfig.soc +++ b/soc/arm/nxp_imx/rt/Kconfig.soc @@ -413,19 +413,4 @@ config CODE_FLEXSPI2 endchoice -choice DATA_LOCATION - prompt "Data location selection" - default DATA_DTCM - -config DATA_DTCM - bool "Link data into internal data tightly coupled memory (DTCM)" - -config DATA_SEMC - bool "Link data into external SEMC-controlled memory" - -config DATA_OCRAM - bool "Link data into On-Chip RAM memory" - -endchoice - endif # SOC_SERIES_IMX_RT diff --git a/soc/arm/nxp_imx/rt/linker.ld b/soc/arm/nxp_imx/rt/linker.ld index d0031ca3eaa..30073bffcf5 100644 --- a/soc/arm/nxp_imx/rt/linker.ld +++ b/soc/arm/nxp_imx/rt/linker.ld @@ -7,15 +7,17 @@ #include #include +#define IS_CHOSEN_SRAM(x) (DT_DEP_ORD(DT_NODELABEL(x)) == DT_DEP_ORD(DT_CHOSEN(zephyr_sram))) + MEMORY { -#if (DT_REG_SIZE(DT_NODELABEL(ocram)) > 0) && !defined(CONFIG_DATA_OCRAM) +#if (DT_REG_SIZE(DT_NODELABEL(ocram)) > 0) && !IS_CHOSEN_SRAM(ocram) OCRAM (wx) : ORIGIN = DT_REG_ADDR(DT_NODELABEL(ocram)), LENGTH = DT_REG_SIZE(DT_NODELABEL(ocram)) #endif -#if (DT_REG_SIZE(DT_NODELABEL(sdram0)) > 0) && !defined(CONFIG_DATA_SEMC) +#if (DT_REG_SIZE(DT_NODELABEL(sdram0)) > 0) && !IS_CHOSEN_SRAM(sdram0) SDRAM (wx) : ORIGIN = DT_REG_ADDR(DT_NODELABEL(sdram0)), LENGTH = DT_REG_SIZE(DT_NODELABEL(sdram0)) #endif -#if (DT_REG_SIZE(DT_INST(0, nxp_imx_dtcm)) > 0) && !defined(CONFIG_DATA_DTCM) +#if (DT_REG_SIZE(DT_INST(0, nxp_imx_dtcm)) > 0) && !IS_CHOSEN_SRAM(dtcm) DTCM (wx) : ORIGIN = DT_REG_ADDR(DT_INST(0, nxp_imx_dtcm)), LENGTH = DT_REG_SIZE(DT_INST(0, nxp_imx_dtcm)) #endif #if (DT_REG_SIZE(DT_INST(0, nxp_imx_itcm)) > 0) && !defined(CONFIG_CODE_ITCM)