1 /*
2  * Copyright (C) 2015-2020 Alibaba Group Holding Limited
3  */
4 #ifndef CACHE_HAL_H
5 #define CACHE_HAL_H
6 
7 #ifdef __cplusplus
8 extern "C" {
9 #endif
10 
11 #include "plat_types.h"
12 
13 enum HAL_CACHE_ID_T {
14     HAL_CACHE_ID_I_CACHE = 0,
15     HAL_CACHE_ID_D_CACHE,
16     HAL_CACHE_ID_NUM,
17 };
18 
19 uint8_t hal_cache_enable(enum HAL_CACHE_ID_T id);
20 uint8_t hal_cache_disable(enum HAL_CACHE_ID_T id);
21 uint8_t hal_cache_writebuffer_enable(enum HAL_CACHE_ID_T id);
22 uint8_t hal_cache_writebuffer_disable(enum HAL_CACHE_ID_T id);
23 uint8_t hal_cache_writebuffer_flush(enum HAL_CACHE_ID_T id);
24 uint8_t hal_cache_writeback_enable(enum HAL_CACHE_ID_T id);
25 uint8_t hal_cache_writeback_disable(enum HAL_CACHE_ID_T id);
26 uint8_t hal_cache_wrap_enable(enum HAL_CACHE_ID_T id);
27 uint8_t hal_cache_wrap_disable(enum HAL_CACHE_ID_T id);
28 uint8_t hal_cache_invalidate(enum HAL_CACHE_ID_T id, uint32_t start_address, uint32_t len);
29 uint8_t hal_cache_sync(enum HAL_CACHE_ID_T id);
30 
31 uint8_t hal_cachecp_enable(enum HAL_CACHE_ID_T id);
32 uint8_t hal_cachecp_disable(enum HAL_CACHE_ID_T id);
33 uint8_t hal_cachecp_writebuffer_enable(enum HAL_CACHE_ID_T id);
34 uint8_t hal_cachecp_writebuffer_disable(enum HAL_CACHE_ID_T id);
35 uint8_t hal_cachecp_writebuffer_flush(enum HAL_CACHE_ID_T id);
36 uint8_t hal_cachecp_writeback_enable(enum HAL_CACHE_ID_T id);
37 uint8_t hal_cachecp_writeback_disable(enum HAL_CACHE_ID_T id);
38 uint8_t hal_cachecp_invalidate(enum HAL_CACHE_ID_T id, uint32_t start_address, uint32_t len);
39 uint8_t hal_cachecp_sync(enum HAL_CACHE_ID_T id);
40 
41 #ifdef __cplusplus
42 }
43 #endif
44 
45 #endif /* CACHE_HAL_H */
46