From 848907c0f81df13d4efa0106be9ec26e178c3054 Mon Sep 17 00:00:00 2001 From: Laurentiu Mihalcea Date: Wed, 18 Sep 2024 11:24:44 +0300 Subject: [PATCH] soc: imx: imx95: enable cache management for M7 Enable cache management for the M7-based i.MX95 soc. Signed-off-by: Laurentiu Mihalcea --- soc/nxp/imx/imx9/imx95/Kconfig | 1 + .../imx/imx9/imx95/Kconfig.defconfig.mimx95.m7 | 3 +++ soc/nxp/imx/imx9/imx95/m7/CMakeLists.txt | 3 +++ soc/nxp/imx/imx9/imx95/m7/soc.c | 15 +++++++++++++++ 4 files changed, 22 insertions(+) create mode 100644 soc/nxp/imx/imx9/imx95/m7/soc.c diff --git a/soc/nxp/imx/imx9/imx95/Kconfig b/soc/nxp/imx/imx9/imx95/Kconfig index 8da9a6dc102d6d..d44939fe22c6a9 100644 --- a/soc/nxp/imx/imx9/imx95/Kconfig +++ b/soc/nxp/imx/imx9/imx95/Kconfig @@ -10,6 +10,7 @@ config SOC_MIMX9596_M7 select CPU_HAS_DCACHE select CPU_HAS_ARM_MPU select ARM_MPU + select SOC_LATE_INIT_HOOK select HAS_MCUX config SOC_MIMX9596_A55 diff --git a/soc/nxp/imx/imx9/imx95/Kconfig.defconfig.mimx95.m7 b/soc/nxp/imx/imx9/imx95/Kconfig.defconfig.mimx95.m7 index bd8395838ebf80..d808258ce9704f 100644 --- a/soc/nxp/imx/imx9/imx95/Kconfig.defconfig.mimx95.m7 +++ b/soc/nxp/imx/imx9/imx95/Kconfig.defconfig.mimx95.m7 @@ -19,4 +19,7 @@ config SYS_CLOCK_HW_CYCLES_PER_SEC int default 800000000 +config CACHE_MANAGEMENT + default y + endif # SOC_MIMX9596_M7 diff --git a/soc/nxp/imx/imx9/imx95/m7/CMakeLists.txt b/soc/nxp/imx/imx9/imx95/m7/CMakeLists.txt index fa108aaeceba63..0eedd7f7d40449 100644 --- a/soc/nxp/imx/imx9/imx95/m7/CMakeLists.txt +++ b/soc/nxp/imx/imx9/imx95/m7/CMakeLists.txt @@ -2,4 +2,7 @@ zephyr_include_directories(.) +zephyr_library() +zephyr_library_sources(soc.c) + set(SOC_LINKER_SCRIPT ${ZEPHYR_BASE}/include/zephyr/arch/arm/cortex_m/scripts/linker.ld CACHE INTERNAL "") diff --git a/soc/nxp/imx/imx9/imx95/m7/soc.c b/soc/nxp/imx/imx9/imx95/m7/soc.c new file mode 100644 index 00000000000000..7100428a1490b2 --- /dev/null +++ b/soc/nxp/imx/imx9/imx95/m7/soc.c @@ -0,0 +1,15 @@ +/* + * Copyright 2024 NXP + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#include + +void soc_late_init_hook(void) +{ +#ifdef CONFIG_CACHE_MANAGEMENT + sys_cache_data_enable(); + sys_cache_instr_enable(); +#endif /* CONFIG_CACHE_MANAGEMENT */ +}