2025-02-18 15:40:42 +08:00

77 lines
2.8 KiB
C

//*********************************************************************************//
// Module name : cache.h //
// Description : q32DSP cache control head file //
// By Designer : zequan_liu //
// Dat changed : //
//*********************************************************************************//
#ifndef __Q32DSP_CACHE__
#define __Q32DSP_CACHE__
//------------------------------------------------------//
// icache function
//------------------------------------------------------//
void IcuEnable(void);
void IcuDisable(void);
void IcuInitial(void);
//void IcuFlushAll(void);
void IcuFlushinvAll(void);
//void IcuFlushRegion(int *beg, int len); // note len!=0
void IcuFlushinvRegion(int *beg, int len); // note len!=0
void IcuUnlockAll(void);
void IcuUnlockRegion(int *beg, int len); // note len!=0
void IcuPfetchRegion(int *beg, int len); // note len!=0
void IcuLockRegion(int *beg, int len); // note len!=0
void IcuReportEnable(void);
void IcuReportDisable(void);
void IcuReportPrintf(void);
void IcuReportClear(void);
void IcuEmuEnable(void);
void IcuEmuDisable(void);
void IcuEmuMessage(void);
#define WAIT_ICACHE_IDLE do{asm volatile("csync"); \
while(!(q32DSP_icu(core_num())->CON & BIT(31)));} while(0);
//------------------------------------------------------//
// dcache function
//------------------------------------------------------//
void DcuEnable(void);
void DcuDisable(void);
void DcuInitial(void);
//void DcuFlushAll(void);
void DcuFlushinvAll(void);
//void DcuFlushRegion(int *beg, int len); // note len!=0
void DcuFlushinvRegion(int *beg, int len); // note len!=0
void DcuUnlockAll(void);
void DcuUnlockRegion(int *beg, int len); // note len!=0
void DcuPfetchRegion(int *beg, int len); // note len!=0
void DcuLockRegion(int *beg, int len); // note len!=0
void DcuReportEnable(void);
void DcuReportDisable(void);
void DcuReportPrintf(void);
void DcuReportClear(void);
void DcuEmuEnable(void);
void DcuEmuDisable(void);
void DcuEmuMessage(void);
#define WAIT_DCACHE_IDLE do{asm volatile("csync"); while(!(JL_DCU->CON & BIT(31)));} while(0);
#endif
//*********************************************************************************//
// //
// end of this module //
// //
//*********************************************************************************//