1 /*
2  * SPDX-FileCopyrightText: 2023-2024 Espressif Systems (Shanghai) CO LTD
3  *
4  * SPDX-License-Identifier: Apache-2.0
5  */
6 #include "hal/cache_ll.h"
7 #include "hal/cache_hal.h"
8 
9 static uint32_t s_cache_status[2];
10 
cache_hal_init(void)11 void cache_hal_init(void)
12 {
13     //for compatibility
14 }
15 
cache_hal_suspend(cache_type_t type)16 void cache_hal_suspend(cache_type_t type)
17 {
18     s_cache_status[0] = cache_ll_l1_get_enabled_bus(0);
19     cache_ll_l1_disable_cache(0);
20 #if !CONFIG_FREERTOS_UNICORE
21     s_cache_status[1] = cache_ll_l1_get_enabled_bus(1);
22     cache_ll_l1_disable_cache(1);
23 #endif
24 }
25 
26 
cache_hal_resume(cache_type_t type)27 void cache_hal_resume(cache_type_t type)
28 {
29     cache_ll_l1_enable_cache(0);
30     cache_ll_l1_enable_bus(0, s_cache_status[0]);
31 #if !CONFIG_FREERTOS_UNICORE
32     cache_ll_l1_enable_cache(1);
33     cache_ll_l1_enable_bus(1, s_cache_status[1]);
34 #endif
35 }
36 
37 
cache_hal_is_cache_enabled(cache_type_t type)38 bool cache_hal_is_cache_enabled(cache_type_t type)
39 {
40     bool result = cache_ll_l1_is_cache_enabled(0, CACHE_TYPE_ALL);
41 #if !CONFIG_FREERTOS_UNICORE
42     result = result && cache_ll_l1_is_cache_enabled(1, CACHE_TYPE_ALL);
43 #endif
44     return result;
45 }
46