2019-11-01 13:45:29 +01:00
|
|
|
# i.MX RT series
|
|
|
|
|
2020-11-24 10:45:02 +08:00
|
|
|
# Copyright (c) 2017-2021, NXP
|
arm: Introduce NXP i.MX family, RT series, and mimxrt1052 SoC
Adds the mimxrt1052 SoC, which belongs to a new family (nxp_imx) and
series (rt) of SoCs. The mimxrt1052 integrates an Arm Cortex-M7 core,
512 KB TCM, and many peripherals including 2D graphics, an LCD display
controller, camera interface, SPDIF and I2S. Unlike other SoCs in
Zephyr, the mimxrt1052 has no internal flash.
This initial port to mimxrt1052 configures the system clock to operate
at 528 MHz, and enables the serial/uart and gpio interfaces to support
the hello_world and blinky samples. Support for additional Zephyr driver
interfaces will come later.
Signed-off-by: Maureen Helm <maureen.helm@nxp.com>
2017-08-11 14:42:40 -05:00
|
|
|
# SPDX-License-Identifier: Apache-2.0
|
|
|
|
|
|
|
|
if SOC_SERIES_IMX_RT
|
|
|
|
|
|
|
|
config SOC_SERIES
|
2018-05-25 21:09:37 +02:00
|
|
|
default "rt"
|
arm: Introduce NXP i.MX family, RT series, and mimxrt1052 SoC
Adds the mimxrt1052 SoC, which belongs to a new family (nxp_imx) and
series (rt) of SoCs. The mimxrt1052 integrates an Arm Cortex-M7 core,
512 KB TCM, and many peripherals including 2D graphics, an LCD display
controller, camera interface, SPDIF and I2S. Unlike other SoCs in
Zephyr, the mimxrt1052 has no internal flash.
This initial port to mimxrt1052 configures the system clock to operate
at 528 MHz, and enables the serial/uart and gpio interfaces to support
the hello_world and blinky samples. Support for additional Zephyr driver
interfaces will come later.
Signed-off-by: Maureen Helm <maureen.helm@nxp.com>
2017-08-11 14:42:40 -05:00
|
|
|
|
2020-02-10 16:37:24 +09:00
|
|
|
config ROM_START_OFFSET
|
2021-03-25 09:33:56 +01:00
|
|
|
default 0x400 if BOOTLOADER_MCUBOOT
|
2018-12-27 08:54:42 -06:00
|
|
|
default 0x2000 if BOOT_FLEXSPI_NOR || BOOT_SEMC_NOR
|
|
|
|
|
2022-04-25 16:30:58 -05:00
|
|
|
config PINCTRL_IMX
|
|
|
|
default y if HAS_MCUX_IOMUXC
|
|
|
|
depends on PINCTRL
|
|
|
|
|
2021-10-08 21:09:41 +03:00
|
|
|
config ADC_MCUX_12B1MSPS_SAR
|
|
|
|
default y if HAS_MCUX_12B1MSPS_SAR
|
|
|
|
depends on ADC
|
2019-01-28 14:32:15 -06:00
|
|
|
|
2022-05-25 11:30:36 -05:00
|
|
|
config LOG_BACKEND_SWO_FREQ_HZ
|
|
|
|
default 7500000
|
|
|
|
depends on LOG_BACKEND_SWO
|
|
|
|
|
2021-11-18 09:52:56 -06:00
|
|
|
if FLASH_MCUX_FLEXSPI_XIP
|
|
|
|
|
|
|
|
# Avoid RWW hazards by defaulting logging to disabled
|
|
|
|
choice FLASH_LOG_LEVEL_CHOICE
|
|
|
|
default FLASH_LOG_LEVEL_OFF
|
|
|
|
endchoice
|
|
|
|
|
|
|
|
choice MEMC_LOG_LEVEL_CHOICE
|
|
|
|
default MEMC_LOG_LEVEL_OFF
|
|
|
|
endchoice
|
|
|
|
|
|
|
|
endif
|
|
|
|
|
2021-10-13 17:28:05 -05:00
|
|
|
# set the tick per sec as a divider of the GPT clock source
|
|
|
|
config SYS_CLOCK_TICKS_PER_SEC
|
|
|
|
default 4096 if MCUX_GPT_TIMER
|
2022-08-31 23:05:34 +02:00
|
|
|
|
|
|
|
DT_SYSCLK_PATH := $(dt_nodelabel_path,sysclk)
|
|
|
|
|
2021-10-13 17:28:05 -05:00
|
|
|
config SYS_CLOCK_HW_CYCLES_PER_SEC
|
2022-08-31 23:05:34 +02:00
|
|
|
default $(dt_node_int_prop_int,$(DT_SYSCLK_PATH),clock-frequency) if SOC_SERIES_IMX_RT10XX && CORTEX_M_SYSTICK
|
2021-10-13 17:28:05 -05:00
|
|
|
default 32768 if MCUX_GPT_TIMER
|
|
|
|
|
2022-12-13 14:53:11 -06:00
|
|
|
# Disable systick if using MCUX_GPT_TIMER, as they will conflict
|
|
|
|
config CORTEX_M_SYSTICK
|
|
|
|
default n if MCUX_GPT_TIMER
|
|
|
|
|
2021-12-14 10:26:06 -06:00
|
|
|
config PM_MCUX_GPC
|
|
|
|
default y if HAS_MCUX_GPC
|
|
|
|
depends on SOC_SERIES_IMX_RT11XX && PM
|
|
|
|
|
2022-01-27 10:50:56 -06:00
|
|
|
# Don't allow SOC to sleep after tests complete when PM is enabled
|
|
|
|
config ZTEST_NO_YIELD
|
|
|
|
default y if (ZTEST && PM)
|
|
|
|
|
|
|
|
if SOC_SERIES_IMX_RT10XX && PM
|
|
|
|
|
2021-12-09 12:52:58 -06:00
|
|
|
config CODE_DATA_RELOCATION
|
|
|
|
default y
|
|
|
|
|
2022-01-27 10:50:56 -06:00
|
|
|
config PM_MCUX_GPC
|
|
|
|
default y if HAS_MCUX_GPC
|
|
|
|
|
|
|
|
config PM_MCUX_DCDC
|
|
|
|
default y if HAS_MCUX_DCDC
|
|
|
|
|
|
|
|
config PM_MCUX_PMU
|
|
|
|
default y if HAS_MCUX_PMU
|
|
|
|
|
|
|
|
endif # SOC_SERIES_IMX_RT10XX && PM
|
|
|
|
|
2023-09-08 15:31:05 -05:00
|
|
|
if ETH_NXP_ENET
|
|
|
|
|
|
|
|
config SYSTEM_WORKQUEUE_STACK_SIZE
|
|
|
|
default 1560
|
|
|
|
|
|
|
|
endif # ETH_NXP_ENET
|
|
|
|
|
2023-02-23 10:50:50 -06:00
|
|
|
DT_CHOSEN_Z_FLASH := zephyr,flash
|
|
|
|
DT_COMPAT_FLEXSPI := nxp,imx-flexspi
|
2020-02-16 20:57:57 +08:00
|
|
|
|
2023-02-23 10:50:50 -06:00
|
|
|
DT_CHOSEN_FLASH_NODE := $(dt_chosen_path,$(DT_CHOSEN_Z_FLASH))
|
|
|
|
DT_CHOSEN_FLASH_PARENT := $(dt_node_parent,$(DT_CHOSEN_FLASH_NODE))
|
2020-02-16 20:57:57 +08:00
|
|
|
|
2023-02-23 10:50:50 -06:00
|
|
|
DT_FLASH_PARENT_IS_FLEXSPI := $(dt_node_has_compat,$(DT_CHOSEN_FLASH_PARENT),$(DT_COMPAT_FLEXSPI))
|
|
|
|
DT_FLASH_HAS_SIZE_PROP := $(dt_node_has_prop,$(DT_CHOSEN_FLASH_NODE),size)
|
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 <choice> (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 <maureen.helm@nxp.com>
2019-02-12 15:46:31 -06:00
|
|
|
|
|
|
|
config FLASH_BASE_ADDRESS
|
2023-02-23 10:50:50 -06:00
|
|
|
default $(dt_node_reg_addr_hex,$(DT_CHOSEN_FLASH_PARENT),1) \
|
|
|
|
if $(DT_FLASH_PARENT_IS_FLEXSPI)
|
2020-11-24 10:45:02 +08:00
|
|
|
|
|
|
|
config FLASH_SIZE
|
2023-02-23 10:50:50 -06:00
|
|
|
default $(dt_node_int_prop_int,$(DT_CHOSEN_FLASH_NODE),size,Kb) \
|
|
|
|
if $(DT_FLASH_HAS_SIZE_PROP)
|
2019-02-21 13:18:06 +01:00
|
|
|
|
2023-09-14 19:40:17 -05:00
|
|
|
config MEMC
|
|
|
|
default y
|
|
|
|
|
2021-08-18 15:56:18 -05:00
|
|
|
choice USB_MCUX_CONTROLLER_TYPE
|
|
|
|
default USB_DC_NXP_EHCI
|
|
|
|
endchoice
|
|
|
|
|
2021-07-02 15:32:18 -05:00
|
|
|
DT_CHOSEN_Z_DTCM := zephyr,dtcm
|
|
|
|
|
2020-11-02 16:58:42 -06:00
|
|
|
choice SEGGER_RTT_SECTION
|
2021-07-02 15:32:18 -05:00
|
|
|
default SEGGER_RTT_SECTION_DTCM if $(dt_chosen_enabled,$(DT_CHOSEN_Z_DTCM))
|
2020-11-02 16:58:42 -06:00
|
|
|
depends on USE_SEGGER_RTT
|
|
|
|
endchoice
|
|
|
|
|
|
|
|
choice SEGGER_SYSVIEW_SECTION
|
2021-07-02 15:32:18 -05:00
|
|
|
default SEGGER_SYSVIEW_SECTION_DTCM if $(dt_chosen_enabled,$(DT_CHOSEN_Z_DTCM))
|
2020-11-02 16:58:42 -06:00
|
|
|
depends on SEGGER_SYSTEMVIEW
|
|
|
|
endchoice
|
|
|
|
|
2021-08-02 17:21:16 -05:00
|
|
|
#
|
|
|
|
# MBEDTLS is larger but much faster than TinyCrypt so choose wisely
|
|
|
|
#
|
|
|
|
config MBEDTLS
|
|
|
|
#config TINYCRYPT
|
2023-09-22 14:04:03 -07:00
|
|
|
default y if CSPRNG_ENABLED
|
2021-08-02 17:21:16 -05:00
|
|
|
depends on ENTROPY_GENERATOR
|
|
|
|
|
|
|
|
if MBEDTLS
|
|
|
|
#
|
|
|
|
# MBEDTLS CTR_DRBG code path needs extra stack space for initialization than
|
|
|
|
# what the ztest_thread_stack defaults to.
|
|
|
|
#
|
2022-02-17 17:09:09 +01:00
|
|
|
config TEST_EXTRA_STACK_SIZE
|
2021-08-02 17:21:16 -05:00
|
|
|
int
|
|
|
|
default 1024
|
|
|
|
endif # MBEDTLS
|
|
|
|
|
2024-01-10 14:33:44 +00:00
|
|
|
# Enable cache management features when using M7 core, since these parts
|
|
|
|
# have L1 instruction and data caches that should be enabled at boot
|
|
|
|
config CACHE_MANAGEMENT
|
|
|
|
default y if CPU_CORTEX_M7
|
|
|
|
|
2018-09-03 15:47:02 -05:00
|
|
|
source "soc/arm/nxp_imx/rt/Kconfig.defconfig.mimxrt*"
|
arm: Introduce NXP i.MX family, RT series, and mimxrt1052 SoC
Adds the mimxrt1052 SoC, which belongs to a new family (nxp_imx) and
series (rt) of SoCs. The mimxrt1052 integrates an Arm Cortex-M7 core,
512 KB TCM, and many peripherals including 2D graphics, an LCD display
controller, camera interface, SPDIF and I2S. Unlike other SoCs in
Zephyr, the mimxrt1052 has no internal flash.
This initial port to mimxrt1052 configures the system clock to operate
at 528 MHz, and enables the serial/uart and gpio interfaces to support
the hello_world and blinky samples. Support for additional Zephyr driver
interfaces will come later.
Signed-off-by: Maureen Helm <maureen.helm@nxp.com>
2017-08-11 14:42:40 -05:00
|
|
|
|
|
|
|
endif # SOC_SERIES_IMX_RT
|