From 1962f02f5242acefa53ebc6a812a464ef9affa9e Mon Sep 17 00:00:00 2001 From: TekkamanV Date: Sat, 14 Aug 2021 16:11:00 +0800 Subject: [PATCH] fu740: add l2cc_get_base_addr for sharing with more functions Signed-off-by: TekkamanV --- arch/riscv/cpu/fu740/cache.c | 24 ++++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/arch/riscv/cpu/fu740/cache.c b/arch/riscv/cpu/fu740/cache.c index 680955c9e3..9f9258c5e4 100644 --- a/arch/riscv/cpu/fu740/cache.c +++ b/arch/riscv/cpu/fu740/cache.c @@ -20,24 +20,28 @@ DECLARE_GLOBAL_DATA_PTR; -int cache_enable_ways(void) +static fdt_addr_t l2cc_get_base_addr(void) { const void *blob = gd->fdt_blob; - int node; + int node = fdt_node_offset_by_compatible(blob, -1, + "sifive,fu740-c000-ccache"); + + if (node < 0) + return FDT_ADDR_T_NONE; + + return fdtdec_get_addr_size_auto_parent(blob, 0, node, "reg", 0, + NULL, false); +} + +int cache_enable_ways(void) +{ fdt_addr_t base; u32 config; u32 ways; volatile u32 *enable; - node = fdt_node_offset_by_compatible(blob, -1, - "sifive,fu740-c000-ccache"); - - if (node < 0) - return node; - - base = fdtdec_get_addr_size_auto_parent(blob, 0, node, "reg", 0, - NULL, false); + base = l2cc_get_base_addr(); if (base == FDT_ADDR_T_NONE) return FDT_ADDR_T_NONE;