Files
AC707N/SDK/interface/driver/cpu/br35/asm/icache.h
T
2025-12-03 11:12:34 +08:00

98 lines
3.9 KiB
C

#ifndef __Q32DSP_ICACHE__
#define __Q32DSP_ICACHE__
//*********************************************************************************//
// Module name : icache.h //
// Description : q32DSP icache control head file //
// By Designer : zequan_liu //
// Dat changed : //
//*********************************************************************************//
// ------ ------ ------ ------ ------ ------
// | c0 | | c1 | | c0 | | c1 | | c0 | | c1 |
// ------ ------ ------ ------ ------ ------
// | | | | | |
// ------ ------ ------ ------ ------ ------
// | L1 | | L1 | | L1 | | L1 | | L1 | | L1 |
// ------ ------ ------ ------ ------ ------
// |_______| |_______| |_______|
// | | |
// --------- --------- ---------
// | flash | | L2i | | L2c |
// --------- --------- ---------
// | |
// --------- ---------
// | flash | | flash |
// --------- ---------
//
// INCLUDE_L2I==0 INCLUDE_L2I==1 INCLUDE_L2I==0
// INCLUDE_L2C==0 INCLUDE_L2C==0 INCLUDE_L2C==1
#define INCLUDE_ICU_RPT 0
#define INCLUDE_ICU_EMU 0
#define INCLUDE_L2I 0 // L2i & L2d separate
#define INCLUDE_L2C 0 // L2i & L2d together
//------------------------------------------------------//
// icache level 1 function
//------------------------------------------------------//
void IcuEnable(void);
void IcuDisable(void);
void IcuInitial(void);
void IcuWaitIdle(void);
void IcuSetWayNum(unsigned int way);
void IcuFlushinvAll(void);
void IcuFlushinvRegion(unsigned int *beg, unsigned int len); // note len!=0
void IcuUnlockAll(void);
void IcuUnlockRegion(unsigned int *beg, unsigned int len); // note len!=0
void IcuLockRegion(unsigned int *beg, unsigned int len); // note len!=0
void IcuPfetchRegion(unsigned int *beg, unsigned 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);
//------------------------------------------------------//
// icache level 2 function
//------------------------------------------------------//
#if (INCLUDE_L2I)
void L2iEnable(void);
void L2iDisable(void);
void L2iInitial(void);
void L2iSetWayNum(unsigned int way);
void L2iFlushinvAll(void);
void L2iFlushinvRegion(unsigned int *beg, unsigned int len); // note len!=0
void L2iUnlockAll(void);
void L2iUnlockRegion(unsigned int *beg, unsigned int len); // note len!=0
void L2iLockRegion(unsigned int *beg, unsigned int len); // note len!=0
void L2iPfetchRegion(unsigned int *beg, unsigned int len); // note len!=0
void L2iReportEnable(void);
void L2iReportDisable(void);
void L2iReportPrintf(void);
void L2iReportClear(void);
void L2iEmuEnable(void);
void L2iEmuDisable(void);
void L2iEmuMessage(void);
#endif
//*********************************************************************************//
// //
// end of this module //
// //
//*********************************************************************************//
#endif