From 5c27ec05a62f20469bcd1122f694229671a1c66c Mon Sep 17 00:00:00 2001 From: James Hogan Date: Fri, 8 Mar 2013 15:27:49 +0000 Subject: [PATCH] --- yaml --- r: 367228 b: refs/heads/master c: 4d8edbfefb630559220939ad5a3bdd8a75190cc3 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/arch/metag/kernel/cachepart.c | 14 ++++++++++---- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/[refs] b/[refs] index 9ac055756515..9a73c2745d4a 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 9e7129630329d50b8e8c3403bb71c85a7c3cbe35 +refs/heads/master: 4d8edbfefb630559220939ad5a3bdd8a75190cc3 diff --git a/trunk/arch/metag/kernel/cachepart.c b/trunk/arch/metag/kernel/cachepart.c index 3a589dfb966b..c737edb5b2d5 100644 --- a/trunk/arch/metag/kernel/cachepart.c +++ b/trunk/arch/metag/kernel/cachepart.c @@ -24,15 +24,21 @@ unsigned int get_dcache_size(void) { unsigned int config2 = metag_in32(METAC_CORE_CONFIG2); - return 0x1000 << ((config2 & METAC_CORECFG2_DCSZ_BITS) - >> METAC_CORECFG2_DCSZ_S); + unsigned int sz = 0x1000 << ((config2 & METAC_CORECFG2_DCSZ_BITS) + >> METAC_CORECFG2_DCSZ_S); + if (config2 & METAC_CORECFG2_DCSMALL_BIT) + sz >>= 6; + return sz; } unsigned int get_icache_size(void) { unsigned int config2 = metag_in32(METAC_CORE_CONFIG2); - return 0x1000 << ((config2 & METAC_CORE_C2ICSZ_BITS) - >> METAC_CORE_C2ICSZ_S); + unsigned int sz = 0x1000 << ((config2 & METAC_CORE_C2ICSZ_BITS) + >> METAC_CORE_C2ICSZ_S); + if (config2 & METAC_CORECFG2_ICSMALL_BIT) + sz >>= 6; + return sz; } unsigned int get_global_dcache_size(void)