From 1967cc2670196d964d3d12cd2343cdcc05c4ff1c Mon Sep 17 00:00:00 2001 From: David Garske Date: Tue, 25 Jun 2024 10:05:31 -0700 Subject: [PATCH] STM32U5: Only try and invalidate cache if enabled. --- hal/stm32u5.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/hal/stm32u5.c b/hal/stm32u5.c index cdbc5653..83cdb15e 100644 --- a/hal/stm32u5.c +++ b/hal/stm32u5.c @@ -540,15 +540,20 @@ void hal_cache_disable(void) void hal_cache_invalidate(void) { - /* Check if no ongoing operation */ + /* only try and invalidate cache if enabled */ + if ((ICACHE_CR & ICACHE_CR_CEN) == 0) + return; + + /* If cache invalidate not in progress, start it */ if ((ICACHE_SR & ICACHE_SR_BUSYF) == 0) { - /* Launch cache invalidation */ + /* Start invalidate */ ICACHE_CR |= ICACHE_CR_CACHEINV; } + /* If cache invalidate is active, wait for busy end flag */ if (ICACHE_SR & ICACHE_SR_BUSYF) { while ((ICACHE_SR & ICACHE_SR_BSYENDF) == 0); } - /* Clear BSYENDF */ + /* Clear busy end flag */ ICACHE_SR |= ICACHE_SR_BSYENDF; }