110 lines
3.4 KiB
C
110 lines
3.4 KiB
C
/* cacheArmArch6.h - ARM ARCH6 cache library header file */
|
|
|
|
/* Copyright 2004-2005, 2009, 2011 Wind River Systems, Inc.
|
|
*
|
|
* The right to copy, distribute, modify or otherwise make use
|
|
* of this software may be licensed only pursuant to the terms
|
|
* of an applicable Wind River license agreement.
|
|
*/
|
|
|
|
/*
|
|
modification history
|
|
--------------------
|
|
01e,30sep11,cwl define functions for cache enable/disable. (WIND00284079)
|
|
01d,18feb11,my_ Declare new functions which support L2 cache.
|
|
01c,18sep09,j_b add core-specific function ptr for DClearDisable operation
|
|
01b,20apr05,jb Fix for SPR 108034
|
|
01a,07dec04,jb created
|
|
*/
|
|
|
|
#ifndef __INCcacheArmArch6h
|
|
#define __INCcacheArmArch6h
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
#ifndef _ASMLANGUAGE
|
|
|
|
/*
|
|
* Common definitions for Arm Arch6 Cache support
|
|
*/
|
|
|
|
extern STATUS cacheAimArch6IEnable (void);
|
|
extern STATUS cacheAimArch6DEnable (void);
|
|
|
|
extern STATUS cacheAimArch6IDisable (void);
|
|
extern STATUS cacheAimArch6DDisable (void);
|
|
|
|
extern STATUS cacheAimArch6IProbe (void);
|
|
extern STATUS cacheAimArch6DProbe (void);
|
|
|
|
extern BOOL cacheAimArch6IIsOn (void);
|
|
extern BOOL cacheAimArch6DIsOn (void);
|
|
|
|
extern STATUS cacheAimArch6TextUpdate (void * start, UINT32 count, UINT32 IcacheLineSize, UINT32 DcacheLineSize);
|
|
|
|
extern void * cacheAimArch6DmaMalloc (size_t bytes);
|
|
extern STATUS cacheAimArch6DmaFree (void * pBuf);
|
|
|
|
extern BOOL cacheAimArch6MmuIsOn (void);
|
|
|
|
extern STATUS cacheAimArch6DInvalidate (void * start, void * end, UINT32 step);
|
|
extern STATUS cacheAimArch6DInvalidateAll (void);
|
|
|
|
extern STATUS cacheAimArch6IInvalidate (void * start, void * end, UINT32 step);
|
|
extern STATUS cacheAimArch6IInvalidateAll (void);
|
|
|
|
extern STATUS cacheAimArch6DFlush (void * start, void * end, UINT32 step);
|
|
extern STATUS cacheAimArch6DFlushAll (void);
|
|
|
|
extern STATUS cacheAimArch6DClear (void * start, void * end, UINT32 step);
|
|
|
|
extern STATUS cacheAimArch6PipeFlush (void);
|
|
|
|
extern void cacheAimArch6IMB (void);
|
|
|
|
extern void cacheAimArch6IClearDisable (void);
|
|
extern void cacheAimArch6DClearDisableWithVerify (void);
|
|
extern void cacheAimArch6DClearDisableNoVerify (void);
|
|
|
|
extern UINT32 cacheAimArch6Identify (void);
|
|
|
|
extern FUNCPTR sysCacheLibInit;
|
|
extern UINT32 cacheArchState;
|
|
|
|
extern STATUS cacheArchIInvalidate(void * start, void * end, UINT32 step);
|
|
extern STATUS cacheArchIInvalidateAll(void);
|
|
extern STATUS cacheArchDFlush(void * start, void * end, UINT32 step);
|
|
extern STATUS cacheArchDFlushAll(void);
|
|
extern STATUS cacheArchDInvalidate(void * start, void * end, UINT32 step);
|
|
extern STATUS cacheArchDInvalidateAll(void);
|
|
extern STATUS cacheArchDClear(void * start, void * end, UINT32 step);
|
|
extern STATUS cacheArchDClearAll (void);
|
|
|
|
/*
|
|
* Core-specific function pointer for D-cache ClearDisable operation.
|
|
* These must be initialized by the cacheAim<core>LibInit() routine.
|
|
*/
|
|
|
|
extern VOIDFUNCPTR _func_cacheAimArch6DClearDisable;
|
|
|
|
extern void (*_pSysL2CacheEnable)(CACHE_TYPE cacheType);
|
|
extern void (*_pSysL2CacheDisable)(CACHE_TYPE cacheType);
|
|
extern void (*_pSysL2CacheInvFunc)(CACHE_TYPE cacheType, void * start, void * end);
|
|
extern void (*_pSysL2CacheFlush)(CACHE_TYPE cacheType, void * start, void * end);
|
|
extern void (*_pSysL2CacheClear)(CACHE_TYPE cacheType, void * start, void * end);
|
|
|
|
extern void cacheArchL2CacheEnable(void);
|
|
extern void cacheArchL2CacheDisable(void);
|
|
|
|
extern BOOL cacheArchL2CacheIsOn(void);
|
|
|
|
#endif
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif /* __INCcacheArmArch6h */
|