123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687 |
- /* SPDX-License-Identifier: BSD-3-Clause */
- /*
- * Copyright (c) 2020-2021 Rockchip Electronics Co., Ltd.
- */
- /** @addtogroup RK_HAL_Driver
- * @{
- */
- /** @addtogroup CACHE
- * @{
- */
- #ifndef _HAL_CACHE_H_
- #define _HAL_CACHE_H_
- #include "hal_def.h"
- #include "hal_debug.h"
- /***************************** MACRO Definition ******************************/
- /** @defgroup CACHE_Exported_Definition_Group1 Basic Definition
- * @{
- */
- /***************************** Structure Definition **************************/
- /**
- * performance measurement count for icache & dcache
- *
- */
- struct CACHE_PMU_CNT {
- uint32_t rdNum; /**< PMU read number counter */
- uint32_t wrNum; /**< PMU write number counter */
- uint32_t sramRdHit; /**< PMU SRAM hit counter */
- uint32_t hbRdHit; /**< PMU hot buffer hit */
- uint32_t stbRdHit; /**< PMU store buffer hit */
- uint32_t rdHit; /**< PMU read hit counter */
- uint32_t wrHit; /**< PMU write hit counter */
- uint32_t rdMissPenalty; /**< PMU read miss penalty counter */
- uint32_t wrMissPenalty; /**< PMU write miss penalty counter */
- uint32_t rdLat; /**< PMU read latency */
- uint32_t wrLat; /**< PMU write latency */
- };
- /** @} */
- /********************* Public Function Definition ****************************/
- /** @defgroup CACHE_Exported_Functions_Group5 Other Functions
- * @attention these APIs allow direct use in the HAL layer
- * @{
- */
- uint32_t HAL_CpuAddrToDmaAddr(uint32_t cpuAddr);
- HAL_Status HAL_ICACHE_Enable(void);
- HAL_Status HAL_ICACHE_Disable(void);
- HAL_Status HAL_ICACHE_Invalidate(void);
- HAL_Status HAL_ICACHE_InvalidateByRange(uint32_t address, uint32_t sizeByte);
- HAL_Status HAL_ICACHE_EnablePMU(void);
- HAL_Status HAL_ICACHE_DisablePMU(void);
- HAL_Status HAL_ICACHE_GetPMU(struct CACHE_PMU_CNT *stat);
- HAL_Status HAL_ICACHE_EnableInt(void);
- HAL_Status HAL_ICACHE_DisableInt(void);
- HAL_Check HAL_ICACHE_GetInt(void);
- uint32_t HAL_ICACHE_GetErrAddr(void);
- HAL_Status HAL_ICACHE_ClearInt(void);
- HAL_Status HAL_DCACHE_Enable(void);
- HAL_Status HAL_DCACHE_Disable(void);
- HAL_Status HAL_DCACHE_Invalidate(void);
- HAL_Status HAL_DCACHE_InvalidateByRange(uint32_t address, uint32_t sizeByte);
- HAL_Status HAL_DCACHE_CleanByRange(uint32_t address, uint32_t sizeByte);
- HAL_Status HAL_DCACHE_CleanInvalidateByRange(uint32_t address, uint32_t sizeByte);
- HAL_Status HAL_DCACHE_CleanInvalidate(void);
- HAL_Status HAL_DCACHE_EnablePMU(void);
- HAL_Status HAL_DCACHE_DisablePMU(void);
- HAL_Status HAL_DCACHE_GetPMU(struct CACHE_PMU_CNT *stat);
- HAL_Status HAL_DCACHE_EnableInt(void);
- HAL_Status HAL_DCACHE_DisableInt(void);
- HAL_Check HAL_DCACHE_GetInt(void);
- HAL_Status HAL_DCACHE_ClearInt(void);
- uint32_t HAL_DCACHE_GetErrAddr(void);
- /** @} */
- #endif
- /** @} */
- /** @} */
|