From: Eugeniy Paltsev Date: Tue, 16 Jan 2018 16:20:28 +0000 (+0300) Subject: ARC: Cache: Disable IOC by default X-Git-Tag: v2018.03-rc1~119^2~8 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=b0146f9e29ca2e82262416aca65395c322a618f9;p=platform%2Fkernel%2Fu-boot.git ARC: Cache: Disable IOC by default We'd like to keep IOC HW at the same state as t is right after reset when we start Linux kernel so there will be no re-configuration of IOC on the go. The point is U-Boot doesn't benefit a lot from IOC as it doesn't do a lot of DMA operations especially on multiple cores simultaneously. At the same time re-configuration of IOC in run-time might become quite a tricky experience because we need to make sure there're no DMA trannsactions in flight otherwise unexpected consequencses might affect us much later and debugging those kinds of issues will be a real nightmare. That said let's make our life easier a little bit. Signed-off-by: Eugeniy Paltsev Signed-off-by: Alexey Brodkin --- diff --git a/arch/arc/lib/cache.c b/arch/arc/lib/cache.c index a6bbe3ce5d..d17948dbaf 100644 --- a/arch/arc/lib/cache.c +++ b/arch/arc/lib/cache.c @@ -48,6 +48,9 @@ bool slc_exists __section(".data") = false; bool ioc_exists __section(".data") = false; bool pae_exists __section(".data") = false; +/* To force enable IOC set ioc_enable to 'true' */ +bool ioc_enable __section(".data") = false; + void read_decode_mmu_bcr(void) { /* TODO: should we compare mmu version from BCR and from CONFIG? */ @@ -200,7 +203,7 @@ static void read_decode_cache_bcr_arcv2(void) } cbcr; cbcr.word = read_aux_reg(ARC_BCR_CLUSTER); - if (cbcr.fields.c) + if (cbcr.fields.c && ioc_enable) ioc_exists = true; } #endif