sifive: make WayEnable can be configured by menuconfig

Signed-off-by:Wei Fu <wefu@redhat.com>
This commit is contained in:
Wei Fu 2021-09-19 14:40:29 +08:00 committed by Tekkaman Ninja
parent e9b56e55ee
commit 9ef4658aab
2 changed files with 16 additions and 0 deletions

12
drivers/cache/Kconfig vendored
View file

@ -46,4 +46,16 @@ config SIFIVE_CCACHE
This driver is for SiFive Composable L2/L3 cache. It enables cache
ways of composable cache.
config SIFIVE_CCACHE_WAYENABLE_OPT
bool "SiFive composable cache: customized the largest way enabled."
depends on SIFIVE_CCACHE
config SIFIVE_CCACHE_WAYENABLE_NUM
int "SiFive composable cache: the largest way which will be enabled"
depends on SIFIVE_CCACHE_WAYENABLE_OPT
default 1
range 1 256
help
Range[1, 256]. The index of the largest way which will be enabled.
endmenu

View file

@ -35,6 +35,10 @@ static int sifive_ccache_enable(struct udevice *dev)
config = readl(priv->base + SIFIVE_CCACHE_CONFIG);
ways = FIELD_GET(SIFIVE_CCACHE_CONFIG_WAYS, config);
#if CONFIG_IS_ENABLED(SIFIVE_CCACHE_WAYENABLE_OPT)
if (CONFIG_SIFIVE_CCACHE_WAYENABLE_NUM < ways)
ways = CONFIG_SIFIVE_CCACHE_WAYENABLE_NUM;
#endif
writel(ways - 1, priv->base + SIFIVE_CCACHE_WAY_ENABLE);
return 0;