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

1
drivers/cache/CMakeLists.txt vendored Normal file
View file

@ -0,0 +1 @@
# SPDX-License-Identifier: Apache-2.0

18
drivers/cache/Kconfig vendored Normal file
View file

@ -0,0 +1,18 @@
# Copyright (c) 2021 Carlo Caione <ccaione@baylibre.com>
# SPDX-License-Identifier: Apache-2.0
menuconfig CACHE
bool "External cache controllers drivers"
help
Enable support for external cache controllers drivers
if CACHE
module = CACHE
module-str = cache
source "subsys/logging/Kconfig.template.log_config"
config CACHE_HAS_DRIVER
bool
endif # CACHE