cache: Introduce external cache controller system support

The cache API currently shipped in Zephyr is assuming that the cache
controller is always on-core thus managed at the arch level. This is not
always the case because many SoCs rely on external cache controllers as
a peripheral external to the core (for example PL310 cache controller
and the L2Cxxx family). In some cases you also want a single driver to
control a whole set of cache controllers.

Rework the cache code introducing support for external cache
controllers.

Signed-off-by: Carlo Caione <ccaione@baylibre.com>
This commit is contained in:
Carlo Caione 2021-04-28 10:38:27 +02:00 committed by Carles Cufí
commit e2333269ae
10 changed files with 243 additions and 115 deletions

View file

@ -79,11 +79,14 @@ target_sources_ifdef(
kernel PRIVATE
futex.c
mem_domain.c
cache_handlers.c
userspace_handler.c
userspace.c
)
if(CONFIG_CACHE_MANAGEMENT AND CONFIG_USERSPACE)
target_sources(kernel PRIVATE cache_handlers.c)
endif()
target_include_directories(kernel PRIVATE
${ZEPHYR_BASE}/kernel/include
${ARCH_DIR}/${ARCH}/include