drivers: cache: add NXP SYSCON LPCAC cache driver
add cache driver for NXP SYSCON LPCAC controller, this driver provides instruction cache management with enable/disable and invalidation support. Signed-off-by: Holt Sun <holt.sun@nxp.com>
This commit is contained in:
1
drivers/cache/CMakeLists.txt
vendored
1
drivers/cache/CMakeLists.txt
vendored
@@ -13,6 +13,7 @@ zephyr_library_sources_ifdef(CONFIG_CACHE_ASPEED cache_aspeed.c)
|
||||
zephyr_library_sources_ifdef(CONFIG_CACHE_BFLB_L1C cache_bflb_l1c.c)
|
||||
zephyr_library_sources_ifdef(CONFIG_CACHE_NRF_CACHE cache_nrf.c)
|
||||
zephyr_library_sources_ifdef(CONFIG_CACHE_NXP_LMEM_CACHE cache_nxp_lmem_cache.c)
|
||||
zephyr_library_sources_ifdef(CONFIG_CACHE_NXP_SYSCON_LPCAC cache_nxp_syscon_lpcac.c)
|
||||
zephyr_library_sources_ifdef(CONFIG_CACHE_NXP_XCACHE cache_nxp_xcache.c)
|
||||
zephyr_library_sources_ifdef(CONFIG_CACHE_STM32 cache_stm32.c)
|
||||
# zephyr-keep-sorted-stop
|
||||
|
||||
1
drivers/cache/Kconfig
vendored
1
drivers/cache/Kconfig
vendored
@@ -24,6 +24,7 @@ source "drivers/cache/Kconfig.aspeed"
|
||||
source "drivers/cache/Kconfig.bflb"
|
||||
source "drivers/cache/Kconfig.nrf"
|
||||
source "drivers/cache/Kconfig.nxp_lmem_cache"
|
||||
source "drivers/cache/Kconfig.nxp_syscon_lpcac"
|
||||
source "drivers/cache/Kconfig.nxp_xcache"
|
||||
source "drivers/cache/Kconfig.stm32"
|
||||
# zephyr-keep-sorted-stop
|
||||
|
||||
10
drivers/cache/Kconfig.nxp_syscon_lpcac
vendored
Normal file
10
drivers/cache/Kconfig.nxp_syscon_lpcac
vendored
Normal file
@@ -0,0 +1,10 @@
|
||||
# Copyright 2025 NXP
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
config CACHE_NXP_SYSCON_LPCAC
|
||||
bool "NXP external cache driver for NXP syscon lpcac controller"
|
||||
default y
|
||||
select CACHE_HAS_DRIVER
|
||||
depends on HAS_MCUX_SYSCON_LPCAC
|
||||
help
|
||||
This option enables the syscon lpcac driver for NXP SoCs.
|
||||
58
drivers/cache/cache_nxp_syscon_lpcac.c
vendored
Normal file
58
drivers/cache/cache_nxp_syscon_lpcac.c
vendored
Normal file
@@ -0,0 +1,58 @@
|
||||
/*
|
||||
* Copyright 2025 NXP
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
#include <zephyr/kernel.h>
|
||||
#include <zephyr/drivers/cache.h>
|
||||
#include <zephyr/logging/log.h>
|
||||
#include <fsl_cache_lpcac.h>
|
||||
|
||||
void cache_instr_enable(void)
|
||||
{
|
||||
L1CACHE_EnableCodeCache();
|
||||
}
|
||||
|
||||
void cache_instr_disable(void)
|
||||
{
|
||||
L1CACHE_DisableCodeCache();
|
||||
}
|
||||
|
||||
int cache_instr_flush_all(void)
|
||||
{
|
||||
return -ENOTSUP;
|
||||
}
|
||||
|
||||
int cache_instr_invd_all(void)
|
||||
{
|
||||
L1CACHE_InvalidateCodeCache();
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int cache_instr_flush_and_invd_all(void)
|
||||
{
|
||||
return -ENOTSUP;
|
||||
}
|
||||
|
||||
int cache_instr_flush_range(void *addr, size_t size)
|
||||
{
|
||||
ARG_UNUSED(addr);
|
||||
ARG_UNUSED(size);
|
||||
return -ENOTSUP;
|
||||
}
|
||||
|
||||
int cache_instr_invd_range(void *addr, size_t size)
|
||||
{
|
||||
ARG_UNUSED(addr);
|
||||
ARG_UNUSED(size);
|
||||
return -ENOTSUP;
|
||||
}
|
||||
|
||||
int cache_instr_flush_and_invd_range(void *addr, size_t size)
|
||||
{
|
||||
ARG_UNUSED(addr);
|
||||
ARG_UNUSED(size);
|
||||
return -ENOTSUP;
|
||||
}
|
||||
Reference in New Issue
Block a user