diff options
author | TekkamanV <tekkamanv@starfivetech.com> | 2021-09-19 09:40:29 +0300 |
---|---|---|
committer | Tekkaman Ninja <tekkamanninja@163.com> | 2021-09-29 09:51:21 +0300 |
commit | e43e6f846985b57af3dc6354a49adb448dd0ec09 (patch) | |
tree | 6df7dd7eb0fd40c3b81b03146939a966215946da | |
parent | 70040b561ce0f5befdf1f9a43b1625a184f40c6e (diff) | |
download | u-boot-e43e6f846985b57af3dc6354a49adb448dd0ec09.tar.xz |
sifive: make WayEnable can be configured by menuconfig
Signed-off-by:TekkamanV <tekkamanv@starfivetech.com>
-rw-r--r-- | drivers/cache/Kconfig | 12 | ||||
-rw-r--r-- | drivers/cache/cache-sifive-ccache.c | 4 |
2 files changed, 16 insertions, 0 deletions
diff --git a/drivers/cache/Kconfig b/drivers/cache/Kconfig index 40f41a817c..c9b5fd3d5e 100644 --- a/drivers/cache/Kconfig +++ b/drivers/cache/Kconfig @@ -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 0 255 + help + Range[0, 255]. The index of the largest way which will be enabled. + endmenu diff --git a/drivers/cache/cache-sifive-ccache.c b/drivers/cache/cache-sifive-ccache.c index 60b8ac122f..cf45cc9a82 100644 --- a/drivers/cache/cache-sifive-ccache.c +++ b/drivers/cache/cache-sifive-ccache.c @@ -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; |