diff --git a/soc/nxp/imx/imx9/imx943/CMakeLists.txt b/soc/nxp/imx/imx9/imx943/CMakeLists.txt index 51deeab87bd..4d2deed8eb6 100644 --- a/soc/nxp/imx/imx9/imx943/CMakeLists.txt +++ b/soc/nxp/imx/imx9/imx943/CMakeLists.txt @@ -5,4 +5,6 @@ zephyr_include_directories(.) if(CONFIG_SOC_MIMX94398_A55) add_subdirectory(a55) +elseif(CONFIG_SOC_MIMX94398_M33) + add_subdirectory(m33) endif() diff --git a/soc/nxp/imx/imx9/imx943/Kconfig b/soc/nxp/imx/imx9/imx943/Kconfig index 4f7c7c8cbd2..a9e4a1aef62 100644 --- a/soc/nxp/imx/imx9/imx943/Kconfig +++ b/soc/nxp/imx/imx9/imx943/Kconfig @@ -7,3 +7,14 @@ config SOC_MIMX94398_A55 select ARM_ARCH_TIMER if SYS_CLOCK_EXISTS select HAS_MCUX select HAS_MCUX_CACHE + +config SOC_MIMX94398_M33 + select ARM + select CPU_CORTEX_M33 + select CPU_HAS_FPU + select CPU_HAS_ARM_MPU + select CPU_HAS_ARM_SAU + select ARM_MPU + select ARMV8_M_DSP + select HAS_MCUX + select HAS_MCUX_XCACHE diff --git a/soc/nxp/imx/imx9/imx943/Kconfig.defconfig.mimx94398.m33 b/soc/nxp/imx/imx9/imx943/Kconfig.defconfig.mimx94398.m33 new file mode 100644 index 00000000000..2654ca3c44a --- /dev/null +++ b/soc/nxp/imx/imx9/imx943/Kconfig.defconfig.mimx94398.m33 @@ -0,0 +1,23 @@ +# Copyright 2025 NXP +# SPDX-License-Identifier: Apache-2.0 + +if SOC_MIMX94398_M33 + +DT_CHOSEN_Z_FLASH := zephyr,flash + +config FLASH_SIZE + default $(dt_chosen_reg_size_int,$(DT_CHOSEN_Z_FLASH),0,K) + +config FLASH_BASE_ADDRESS + default $(dt_chosen_reg_addr_hex,$(DT_CHOSEN_Z_FLASH)) + +config MCUX_CORE_SUFFIX + default "_cm33_core1" if SOC_MIMX94398_M33 + +config NUM_IRQS + default 405 + +config SYS_CLOCK_HW_CYCLES_PER_SEC + default $(dt_node_int_prop_int,/cpus/cpu@0,clock-frequency) + +endif # SOC_MIMX94398_M33 diff --git a/soc/nxp/imx/imx9/imx943/Kconfig.soc b/soc/nxp/imx/imx9/imx943/Kconfig.soc index a2697aab21a..57edaaff0df 100644 --- a/soc/nxp/imx/imx9/imx943/Kconfig.soc +++ b/soc/nxp/imx/imx9/imx943/Kconfig.soc @@ -11,6 +11,12 @@ config SOC_MIMX94398_A55 help NXP i.MX943 A55 +config SOC_MIMX94398_M33 + bool + select SOC_MIMX94398 + help + NXP i.MX943 M33 + config SOC default "mimx94398" if SOC_MIMX94398 diff --git a/soc/nxp/imx/imx9/imx943/m33/CMakeLists.txt b/soc/nxp/imx/imx9/imx943/m33/CMakeLists.txt new file mode 100644 index 00000000000..20a83cdd8cd --- /dev/null +++ b/soc/nxp/imx/imx9/imx943/m33/CMakeLists.txt @@ -0,0 +1,5 @@ +# Copyright 2025 NXP + +zephyr_include_directories(.) + +set(SOC_LINKER_SCRIPT ${ZEPHYR_BASE}/include/zephyr/arch/arm/cortex_m/scripts/linker.ld CACHE INTERNAL "") diff --git a/soc/nxp/imx/imx9/imx943/m33/soc.h b/soc/nxp/imx/imx9/imx943/m33/soc.h new file mode 100644 index 00000000000..ad4bf48dd17 --- /dev/null +++ b/soc/nxp/imx/imx9/imx943/m33/soc.h @@ -0,0 +1,12 @@ +/* + * Copyright 2025 NXP + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#ifndef _SOC_NXP_IMX_IMX943_M33_SOC_H_ +#define _SOC_NXP_IMX_IMX943_M33_SOC_H_ + +#include + +#endif /* _SOC_NXP_IMX_IMX943_M33_SOC_H_ */ diff --git a/soc/nxp/imx/soc.yml b/soc/nxp/imx/soc.yml index 6778c3da642..2bf45ddd69a 100644 --- a/soc/nxp/imx/soc.yml +++ b/soc/nxp/imx/soc.yml @@ -43,6 +43,7 @@ family: - name: mimx94398 cpuclusters: - name: a55 + - name: m33 - name: mimx9596 cpuclusters: - name: a55