From mboxrd@z Thu Jan 1 00:00:00 1970 From: Gary Bisson Date: Fri, 10 Mar 2017 12:26:36 +0100 Subject: [U-Boot] [PATCH] arm: cache: exit maintenance functions when cache disabled Message-ID: <20170310112636.7999-1-gary.bisson@boundarydevices.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de No need to check the region range and send commands when the cache isn't even enabled. Signed-off-by: Gary Bisson --- Hi all, This is a follow-up to this thread: https://lists.denx.de/pipermail/u-boot/2017-March/283423.html Although what started the conversation was the sparse-image flashing procedure, it appears cache maintenance functions don't check on cache status. Regards, Gary --- arch/arm/cpu/armv7/cache_v7.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/arch/arm/cpu/armv7/cache_v7.c b/arch/arm/cpu/armv7/cache_v7.c index c4bbcc3cc3..992cdeaa6e 100644 --- a/arch/arm/cpu/armv7/cache_v7.c +++ b/arch/arm/cpu/armv7/cache_v7.c @@ -117,6 +117,9 @@ void flush_dcache_all(void) */ void invalidate_dcache_range(unsigned long start, unsigned long stop) { + if (!dcache_status()) + return; + check_cache_range(start, stop); v7_dcache_maint_range(start, stop, ARMV7_DCACHE_INVAL_RANGE); @@ -131,6 +134,9 @@ void invalidate_dcache_range(unsigned long start, unsigned long stop) */ void flush_dcache_range(unsigned long start, unsigned long stop) { + if (!dcache_status()) + return; + check_cache_range(start, stop); v7_dcache_maint_range(start, stop, ARMV7_DCACHE_CLEAN_INVAL_RANGE); -- 2.11.0