98 lines
3.9 KiB
C
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
|
|
|