151 lines
5.3 KiB
C
151 lines
5.3 KiB
C
#ifndef __Q32DSP_DCACHE__
|
|
#define __Q32DSP_DCACHE__
|
|
|
|
//*********************************************************************************//
|
|
// Module name : dcache.h //
|
|
// Description : q32DSP dcache control head file //
|
|
// By Designer : zequan_liu //
|
|
// Dat changed : //
|
|
//*********************************************************************************//
|
|
|
|
#define INCLUDE_DCU_RPT 0
|
|
#define INCLUDE_DCU_EMU 0
|
|
#define INCLUDE_L1D 0
|
|
#define INCLUDE_L2D 0
|
|
|
|
//------------------------------------------------------//
|
|
// peripheral level 1 function
|
|
//------------------------------------------------------//
|
|
|
|
#if (INCLUDE_L1D)
|
|
|
|
void L1pEnable(void);
|
|
void L1pDisable(void);
|
|
void L1pInitial(void);
|
|
void L1pSetWayNum(unsigned int way);
|
|
|
|
void L1pInvalidAll(void);
|
|
void L1pInvalidRegion(unsigned int *beg, unsigned int len); // note len!=0
|
|
void L1pFlushAll(void);
|
|
void L1pFlushRegion(unsigned int *beg, unsigned int len); // note len!=0
|
|
void L1pFlushinvAll(void);
|
|
void L1pFlushinvRegion(unsigned int *beg, unsigned int len); // note len!=0
|
|
void L1pPfetchRegion(unsigned int *beg, unsigned int len); // note len!=0
|
|
|
|
void L1pReportEnable(void);
|
|
void L1pReportDisable(void);
|
|
void L1pReportClear(void);
|
|
void L1pReportPrintf(void);
|
|
|
|
void L1pEmuEnable(void);
|
|
void L1pEmuDisable(void);
|
|
void L1pEmuMessage(void);
|
|
|
|
void L1pWrThroughRegion(unsigned int num, unsigned int *beg, unsigned int len);
|
|
void L1pRwThroughRegion(unsigned int num, unsigned int *beg, unsigned int len);
|
|
void L1pPrivateRegion(unsigned int num, unsigned int *beg, unsigned int len);
|
|
|
|
#else
|
|
|
|
#define L1pEnable DcuEnable
|
|
#define L1pDisable DcuDisable
|
|
#define L1pInitial DcuInitial
|
|
#define L1pWaitIdle DcuWaitIdle
|
|
#define L1pSetWayNum DcuSetWayNum
|
|
|
|
#define L1pInvalidAll DcuInvalidAll
|
|
#define L1pInvalidRegion DcuInvalidRegion
|
|
#define L1pFlushAll DcuFlushAll
|
|
#define L1pFlushRegion DcuFlushRegion
|
|
#define L1pFlushinvAll DcuFlushinvAll
|
|
#define L1pFlushinvRegion DcuFlushinvRegion
|
|
#define L1pPfetchRegion DcuPfetchRegion
|
|
|
|
#define L1pReportEnable DcuReportEnable
|
|
#define L1pReportDisable DcuReportDisable
|
|
#define L1pReportClear DcuReportClear
|
|
#define L1pReportPrintf DcuReportPrintf
|
|
|
|
#define L1pEmuEnable DcuEmuEnable
|
|
#define L1pEmuDisable DcuEmuDisable
|
|
#define L1pEmuMessage DcuEmuMessage
|
|
|
|
#define L1pWrThroughRegion DcuWrThroughRegion
|
|
#define L1pRwThroughRegion DcuRwThroughRegion
|
|
#define L1pPrivateRegion DcuPrivateRegion
|
|
|
|
#endif
|
|
|
|
//------------------------------------------------------//
|
|
// dcache level 1 function
|
|
//------------------------------------------------------//
|
|
|
|
void DcuEnable(void);
|
|
void DcuDisable(void);
|
|
void DcuInitial(void);
|
|
void DcuWaitIdle(void);
|
|
void DcuSetWayNum(unsigned int way);
|
|
|
|
void DcuInvalidAll(void);
|
|
void DcuInvalidRegion(unsigned int *beg, unsigned int len); // note len!=0
|
|
void DcuFlushAll(void);
|
|
void DcuFlushRegion(unsigned int *beg, unsigned int len); // note len!=0
|
|
void DcuFlushinvAll(void);
|
|
void DcuFlushinvRegion(unsigned int *beg, unsigned int len); // note len!=0
|
|
void DcuPfetchRegion(unsigned int *beg, unsigned int len); // note len!=0
|
|
|
|
void DcuReportEnable(void);
|
|
void DcuReportDisable(void);
|
|
void DcuReportClear(void);
|
|
void DcuReportPrintf(void);
|
|
|
|
void DcuEmuEnable(void);
|
|
void DcuEmuDisable(void);
|
|
void DcuEmuMessage(void);
|
|
|
|
void DcuWrThroughRegion(unsigned int num, unsigned int *beg, unsigned int len);
|
|
void DcuRwThroughRegion(unsigned int num, unsigned int *beg, unsigned int len);
|
|
void DcuPrivateRegion(unsigned int num, unsigned int *beg, unsigned int len);
|
|
|
|
//------------------------------------------------------//
|
|
// dcache level 2 function
|
|
//------------------------------------------------------//
|
|
|
|
#if (INCLUDE_L2D)
|
|
|
|
void L2dEnable(void);
|
|
void L2dDisable(void);
|
|
void L2dInitial(void);
|
|
void L2dSetWayNum(unsigned int way);
|
|
|
|
void L2dInvalidAll(void);
|
|
void L2dInvalidRegion(unsigned int *beg, unsigned int len); // note len!=0
|
|
void L2dFlushAll(void);
|
|
void L2dFlushRegion(unsigned int *beg, unsigned int len); // note len!=0
|
|
void L2dFlushinvAll(void);
|
|
void L2dFlushinvRegion(unsigned int *beg, unsigned int len); // note len!=0
|
|
void L2dPfetchRegion(unsigned int *beg, unsigned int len); // note len!=0
|
|
|
|
void L2dReportEnable(void);
|
|
void L2dReportDisable(void);
|
|
void L2dReportClear(void);
|
|
void L2dReportPrintf(void);
|
|
|
|
void L2dEmuEnable(void);
|
|
void L2dEmuDisable(void);
|
|
void L2dEmuMessage(void);
|
|
|
|
void L2dWrThroughRegion(unsigned int num, unsigned int *beg, unsigned int len);
|
|
void L2dRwThroughRegion(unsigned int num, unsigned int *beg, unsigned int len);
|
|
void L2dPrivateRegion(unsigned int num, unsigned int *beg, unsigned int len);
|
|
|
|
#endif
|
|
|
|
//*********************************************************************************//
|
|
// //
|
|
// end of this module //
|
|
// //
|
|
//*********************************************************************************//
|
|
#endif
|
|
|