1*6ed67659SHeiko Schocher /* 2*6ed67659SHeiko Schocher * (C) Copyright 2016 3*6ed67659SHeiko Schocher * Heiko Schocher, DENX Software Engineering, hs@denx.de. 4*6ed67659SHeiko Schocher * 5*6ed67659SHeiko Schocher * SPDX-License-Identifier: GPL-2.0+ 6*6ed67659SHeiko Schocher */ 7*6ed67659SHeiko Schocher #include <linux/types.h> 8*6ed67659SHeiko Schocher #include <common.h> 9*6ed67659SHeiko Schocher enable_caches(void)10*6ed67659SHeiko Schochervoid enable_caches(void) 11*6ed67659SHeiko Schocher { 12*6ed67659SHeiko Schocher #ifndef CONFIG_SYS_ICACHE_OFF 13*6ed67659SHeiko Schocher icache_enable(); 14*6ed67659SHeiko Schocher #endif 15*6ed67659SHeiko Schocher } 16*6ed67659SHeiko Schocher 17*6ed67659SHeiko Schocher #ifndef CONFIG_SYS_ICACHE_OFF 18*6ed67659SHeiko Schocher /* Invalidate entire I-cache and branch predictor array */ invalidate_icache_all(void)19*6ed67659SHeiko Schochervoid invalidate_icache_all(void) 20*6ed67659SHeiko Schocher { 21*6ed67659SHeiko Schocher unsigned long i = 0; 22*6ed67659SHeiko Schocher 23*6ed67659SHeiko Schocher asm ("mcr p15, 0, %0, c7, c5, 0" : : "r" (i)); 24*6ed67659SHeiko Schocher } 25*6ed67659SHeiko Schocher #else invalidate_icache_all(void)26*6ed67659SHeiko Schochervoid invalidate_icache_all(void) 27*6ed67659SHeiko Schocher { 28*6ed67659SHeiko Schocher } 29*6ed67659SHeiko Schocher #endif 30