From 06ad037f99d7105cfe67ef4d421ccf7f2e9788f6 Mon Sep 17 00:00:00 2001 From: Daniel DeGrasse Date: Thu, 29 Feb 2024 22:22:26 +0000 Subject: [PATCH] soc: nxp: imx8mp: port M7 core to HWMv2 Port M7 core of imx8mp to HWMv2 Signed-off-by: Daniel DeGrasse --- soc/nxp/imx/imx8m/CMakeLists.txt | 4 ++ soc/nxp/imx/imx8m/Kconfig | 34 +++++++++++++ .../imx/imx8m/Kconfig.defconfig.mimx8ml8.m7} | 14 +++++- soc/nxp/imx/imx8m/Kconfig.soc | 6 +++ .../imx/imx8m/m7}/CMakeLists.txt | 2 + .../imx/imx8m/m7}/linker.ld | 0 .../imx/imx8m/m7}/mpu_regions.c | 0 .../imx/imx8m/m7}/pinctrl_soc.h | 0 .../mimx8ml8_m7 => nxp/imx/imx8m/m7}/soc.c | 0 .../mimx8ml8_m7 => nxp/imx/imx8m/m7}/soc.h | 0 .../mimx8ml8_m7/Kconfig.defconfig.series | 22 -------- .../arm/nxp_imx/mimx8ml8_m7/Kconfig.series | 16 ------ .../arm/nxp_imx/mimx8ml8_m7/Kconfig.soc | 50 ------------------- 13 files changed, 58 insertions(+), 90 deletions(-) rename soc/{soc_legacy/arm/nxp_imx/mimx8ml8_m7/Kconfig.defconfig.mimx8ml8_m7 => nxp/imx/imx8m/Kconfig.defconfig.mimx8ml8.m7} (74%) rename soc/{soc_legacy/arm/nxp_imx/mimx8ml8_m7 => nxp/imx/imx8m/m7}/CMakeLists.txt (89%) rename soc/{soc_legacy/arm/nxp_imx/mimx8ml8_m7 => nxp/imx/imx8m/m7}/linker.ld (100%) rename soc/{soc_legacy/arm/nxp_imx/mimx8ml8_m7 => nxp/imx/imx8m/m7}/mpu_regions.c (100%) rename soc/{soc_legacy/arm/nxp_imx/mimx8ml8_m7 => nxp/imx/imx8m/m7}/pinctrl_soc.h (100%) rename soc/{soc_legacy/arm/nxp_imx/mimx8ml8_m7 => nxp/imx/imx8m/m7}/soc.c (100%) rename soc/{soc_legacy/arm/nxp_imx/mimx8ml8_m7 => nxp/imx/imx8m/m7}/soc.h (100%) delete mode 100644 soc/soc_legacy/arm/nxp_imx/mimx8ml8_m7/Kconfig.defconfig.series delete mode 100644 soc/soc_legacy/arm/nxp_imx/mimx8ml8_m7/Kconfig.series delete mode 100644 soc/soc_legacy/arm/nxp_imx/mimx8ml8_m7/Kconfig.soc diff --git a/soc/nxp/imx/imx8m/CMakeLists.txt b/soc/nxp/imx/imx8m/CMakeLists.txt index 6a5b6a8b445..6a9ca932220 100644 --- a/soc/nxp/imx/imx8m/CMakeLists.txt +++ b/soc/nxp/imx/imx8m/CMakeLists.txt @@ -42,3 +42,7 @@ endif() if(CONFIG_SOC_MIMX8MM6_M4) add_subdirectory(m4_mini) endif() + +if(CONFIG_SOC_MIMX8MP_M7) + add_subdirectory(m7) +endif() diff --git a/soc/nxp/imx/imx8m/Kconfig b/soc/nxp/imx/imx8m/Kconfig index e2fdb4a37c5..7ebb3f699a9 100644 --- a/soc/nxp/imx/imx8m/Kconfig +++ b/soc/nxp/imx/imx8m/Kconfig @@ -49,6 +49,40 @@ config SOC_MIMX8MP_ADSP select HAS_MCUX_IOMUXC if PINCTRL select PINCTRL_IMX if HAS_MCUX_IOMUXC +config SOC_MIMX8MP_M7 + select ARM + select CPU_CORTEX_M7 + select CPU_HAS_FPU + select CPU_HAS_ICACHE + select CPU_HAS_DCACHE + select INIT_VIDEO_PLL + select HAS_MCUX + select HAS_MCUX_CCM + select HAS_MCUX_RDC + select CPU_HAS_ARM_MPU + select CPU_HAS_CUSTOM_FIXED_SOC_MPU_REGIONS + select ARM_MPU + select HAS_MCUX_IGPIO + select HAS_MCUX_IOMUXC + config MCUX_CORE_SUFFIX default "_ca53" if SOC_MIMX8MM6_A53 || SOC_MIMX8MN6_A53 || SOC_MIMX8ML8_A53 default "_dsp" if SOC_MIMX8MP_ADSP + +if SOC_MIMX8MP_M7 + +choice CODE_LOCATION + prompt "Code location selection" + +config CODE_ITCM + bool "Link code into internal instruction tightly coupled memory (ITCM)" + +config CODE_DDR + bool "Link code into DDR memory" + +endchoice + +config INIT_VIDEO_PLL + bool "Initialize Video PLL" + +endif # SOC_MIMX8MP_M7 diff --git a/soc/soc_legacy/arm/nxp_imx/mimx8ml8_m7/Kconfig.defconfig.mimx8ml8_m7 b/soc/nxp/imx/imx8m/Kconfig.defconfig.mimx8ml8.m7 similarity index 74% rename from soc/soc_legacy/arm/nxp_imx/mimx8ml8_m7/Kconfig.defconfig.mimx8ml8_m7 rename to soc/nxp/imx/imx8m/Kconfig.defconfig.mimx8ml8.m7 index 8b92477601c..acd7d02761d 100644 --- a/soc/soc_legacy/arm/nxp_imx/mimx8ml8_m7/Kconfig.defconfig.mimx8ml8_m7 +++ b/soc/nxp/imx/imx8m/Kconfig.defconfig.mimx8ml8.m7 @@ -1,9 +1,10 @@ # MIMX8ML8 SoC defconfig # Copyright (c) 2021, Laird Connectivity +# Copyright 2024 NXP # SPDX-License-Identifier: Apache-2.0 -if SOC_MIMX8ML8 +if SOC_MIMX8MP_M7 config SOC string @@ -40,4 +41,13 @@ config FLASH_BASE_ADDRESS endif # CODE_DDR -endif # SOC_MIMX8ML8 +config NUM_IRQS + int + # must be >= the highest interrupt number used + default 159 + +config PINCTRL_IMX + default y if HAS_MCUX_IOMUXC + depends on PINCTRL + +endif # SOC_MIMX8MP_M7 diff --git a/soc/nxp/imx/imx8m/Kconfig.soc b/soc/nxp/imx/imx8m/Kconfig.soc index 01d475f936d..d0e848e1982 100644 --- a/soc/nxp/imx/imx8m/Kconfig.soc +++ b/soc/nxp/imx/imx8m/Kconfig.soc @@ -44,6 +44,12 @@ config SOC_MIMX8MP_ADSP help Enable support for NXP i.MX 8MPLUS Audio DSP +config SOC_MIMX8MP_M7 + bool + select SOC_MIMX8MP + help + Enable support for NXP i.MX 8MPLUS M7 MCU + config SOC_TOOLCHAIN_NAME string default "nxp_imx8m_adsp" if SOC_MIMX8MP_ADSP diff --git a/soc/soc_legacy/arm/nxp_imx/mimx8ml8_m7/CMakeLists.txt b/soc/nxp/imx/imx8m/m7/CMakeLists.txt similarity index 89% rename from soc/soc_legacy/arm/nxp_imx/mimx8ml8_m7/CMakeLists.txt rename to soc/nxp/imx/imx8m/m7/CMakeLists.txt index 3dce744104f..8b2c33a6294 100644 --- a/soc/soc_legacy/arm/nxp_imx/mimx8ml8_m7/CMakeLists.txt +++ b/soc/nxp/imx/imx8m/m7/CMakeLists.txt @@ -1,10 +1,12 @@ # # Copyright (c) 2021, Laird Connectivity +# Copyright 2024 NXP # # SPDX-License-Identifier: Apache-2.0 # zephyr_include_directories(${ZEPHYR_BASE}/drivers) +zephyr_include_directories(.) zephyr_sources( soc.c diff --git a/soc/soc_legacy/arm/nxp_imx/mimx8ml8_m7/linker.ld b/soc/nxp/imx/imx8m/m7/linker.ld similarity index 100% rename from soc/soc_legacy/arm/nxp_imx/mimx8ml8_m7/linker.ld rename to soc/nxp/imx/imx8m/m7/linker.ld diff --git a/soc/soc_legacy/arm/nxp_imx/mimx8ml8_m7/mpu_regions.c b/soc/nxp/imx/imx8m/m7/mpu_regions.c similarity index 100% rename from soc/soc_legacy/arm/nxp_imx/mimx8ml8_m7/mpu_regions.c rename to soc/nxp/imx/imx8m/m7/mpu_regions.c diff --git a/soc/soc_legacy/arm/nxp_imx/mimx8ml8_m7/pinctrl_soc.h b/soc/nxp/imx/imx8m/m7/pinctrl_soc.h similarity index 100% rename from soc/soc_legacy/arm/nxp_imx/mimx8ml8_m7/pinctrl_soc.h rename to soc/nxp/imx/imx8m/m7/pinctrl_soc.h diff --git a/soc/soc_legacy/arm/nxp_imx/mimx8ml8_m7/soc.c b/soc/nxp/imx/imx8m/m7/soc.c similarity index 100% rename from soc/soc_legacy/arm/nxp_imx/mimx8ml8_m7/soc.c rename to soc/nxp/imx/imx8m/m7/soc.c diff --git a/soc/soc_legacy/arm/nxp_imx/mimx8ml8_m7/soc.h b/soc/nxp/imx/imx8m/m7/soc.h similarity index 100% rename from soc/soc_legacy/arm/nxp_imx/mimx8ml8_m7/soc.h rename to soc/nxp/imx/imx8m/m7/soc.h diff --git a/soc/soc_legacy/arm/nxp_imx/mimx8ml8_m7/Kconfig.defconfig.series b/soc/soc_legacy/arm/nxp_imx/mimx8ml8_m7/Kconfig.defconfig.series deleted file mode 100644 index 1b696f3a222..00000000000 --- a/soc/soc_legacy/arm/nxp_imx/mimx8ml8_m7/Kconfig.defconfig.series +++ /dev/null @@ -1,22 +0,0 @@ -# i.MX8ML M7 SoC series defconfig - -# Copyright (c) 2021, Laird Connectivity -# SPDX-License-Identifier: Apache-2.0 - -if SOC_SERIES_IMX8ML_M7 - -config SOC_SERIES - default "mimx8ml8_m7" - -config NUM_IRQS - int - # must be >= the highest interrupt number used - default 159 - -config PINCTRL_IMX - default y if HAS_MCUX_IOMUXC - depends on PINCTRL - -source "soc/soc_legacy/arm/nxp_imx/mimx8ml8_m7/Kconfig.defconfig.mimx8ml8_m7" - -endif # SOC_SERIES_IMX8ML_M7 diff --git a/soc/soc_legacy/arm/nxp_imx/mimx8ml8_m7/Kconfig.series b/soc/soc_legacy/arm/nxp_imx/mimx8ml8_m7/Kconfig.series deleted file mode 100644 index f1eb1fd40fd..00000000000 --- a/soc/soc_legacy/arm/nxp_imx/mimx8ml8_m7/Kconfig.series +++ /dev/null @@ -1,16 +0,0 @@ -# i.MX8ML M7 core series - -# Copyright (c) 2021, Laird Connectivity -# SPDX-License-Identifier: Apache-2.0 - -config SOC_SERIES_IMX8ML_M7 - bool "i.MX8ML M7 Core Series" - select ARM - select CPU_CORTEX_M7 - select SOC_FAMILY_IMX - select CPU_HAS_FPU - select CPU_HAS_ICACHE - select CPU_HAS_DCACHE - select INIT_VIDEO_PLL - help - Enable support for i.MX8ML M7 MCU series diff --git a/soc/soc_legacy/arm/nxp_imx/mimx8ml8_m7/Kconfig.soc b/soc/soc_legacy/arm/nxp_imx/mimx8ml8_m7/Kconfig.soc deleted file mode 100644 index 224a112a67f..00000000000 --- a/soc/soc_legacy/arm/nxp_imx/mimx8ml8_m7/Kconfig.soc +++ /dev/null @@ -1,50 +0,0 @@ -# i.MX8ML M7 SoC series - -# Copyright (c) 2021, Laird Connectivity -# SPDX-License-Identifier: Apache-2.0 - -choice -prompt "i.MX8ML M7 Selection" -depends on SOC_SERIES_IMX8ML_M7 - -config SOC_MIMX8ML8 - bool "SOC_MIMX8ML8" - select HAS_MCUX - select HAS_MCUX_CCM - select HAS_MCUX_RDC - select CPU_HAS_ARM_MPU - select CPU_HAS_CUSTOM_FIXED_SOC_MPU_REGIONS - select ARM_MPU - select HAS_MCUX_IGPIO - select HAS_MCUX_IOMUXC - -endchoice - -if SOC_SERIES_IMX8ML_M7 - -config SOC_PART_NUMBER_MIMX8ML8DVNLZ - bool - -config SOC_PART_NUMBER_IMX8ML_M7 - string - default "MIMX8ML8DVNLZ" if SOC_PART_NUMBER_MIMX8ML8DVNLZ - help - This string holds the full part number of the SoC. It is a hidden option - that you should not set directly. The part number selection choice defines - the default value for this string. - -choice CODE_LOCATION - prompt "Code location selection" - -config CODE_ITCM - bool "Link code into internal instruction tightly coupled memory (ITCM)" - -config CODE_DDR - bool "Link code into DDR memory" - -endchoice - -config INIT_VIDEO_PLL - bool "Initialize Video PLL" - -endif # SOC_SERIES_IMX8ML_M7