📄 csl_cache.h
字号:
* ============================================================================ */CACHE_L1_Freeze CACHE_freezeL1 ( void);/** ============================================================================ * @n@b CACHE_unfreezeL1 * * @b Description * @n Unfreezes the L1P and L1D. * @n As per the specification, * @n a. The new unfreeze state is programmed in L1DCC, L1PCC. * @n b. The old state is read from the L1DCC, L1PCC from the POPER field. * @n This latter read accomplishes 2 things, viz. Ensuring the new state * is programmed as well as reading the old programmed value. * * * @b Arguments * @n None * * <b> Return Value </b> * @n Old Freeze State (CACHE_L1_Freeze) * * @b Example * @verbatim ... CACHE_L1_Freeze oldFreezeState ; oldFreezeState = CACHE_unfreezeL1(); ... @endverbatim * ============================================================================ */CACHE_L1_Freeze CACHE_unfreezeL1 ( void);/*----------------------------------------------------------------------------*\ L1P\*----------------------------------------------------------------------------*//** ============================================================================ * @n@b CACHE_setL1pSize * * @b Description * @n Sets the L1P size. * @n As per the specification, * @n a. The new size is programmed in L1PCFG. * @n b. L1PCFG is read back to ensure it is set. * * @b Arguments * @verbatim newSize New size to be programmed @endverbatim * * <b> Return Value </b> * @n Old Size set for L1P (CACHE_L1Size) * * @b Example * @verbatim ... CACHE_L1Size oldSize ; oldSize = CACHE_setL1pSize(CACHE_L1_32KCACHE); ... @endverbatim * ============================================================================ */CACHE_L1Size CACHE_setL1pSize ( CACHE_L1Size newSize);/** ============================================================================ * @n@b CACHE_freezeL1p * * @b Description * @n Freezes L1P. * @n As per the specification, * @n a. The new freeze state is programmed in L1PCC. * @n b. The old state is read from the L1PCC from the POPER field. * @n This latter read accomplishes 2 things, viz. Ensuring the new state * is programmed as well as reading the old programmed value. * * @b Arguments * @n None * * <b> Return Value </b> * @n Old Freeze State (CACHE_L1_Freeze) * * @b Example * @verbatim ... CACHE_L1_Freeze oldFreezeState ; oldFreezeState = CACHE_freezeL1p(); ... @endverbatim * ============================================================================ */CACHE_L1_Freeze CACHE_freezeL1p ( void);/** ============================================================================ * @n@b CACHE_unfreezeL1p * * @b Description * @n Unfreezes L1P. * @n As per the specification, * @n a. The normal state is programmed in L1PCC * @n b. The old state is read from the L1PCC from the POPER field. * @n This latter read accomplishes 2 things, viz. Ensuring the new state * is programmed as well as reading the old programmed value. * * @b Arguments * @n None * * <b> Return Value </b> * @n Old Freeze State (CACHE_L1_Freeze) * * @b Example * @verbatim ... CACHE_L1_Freeze oldFreezeState ; oldFreezeState = CACHE_unfreezeL1p(); ... @endverbatim * ============================================================================ */CACHE_L1_Freeze CACHE_unfreezeL1p ( void);/* Block Operations *//** ============================================================================ * @n@b CACHE_invL1p * * @b Description * @n Invalidates range specified in L1P. * @n As per the specification, * @n a. The start of the range that needs to be invalidated is written * into L1PIBAR * @n b. The byte count is programmed in L1PIWC. * * @b Arguments * @verbatim blockPtr Start address of range to be invalidated byteCnt Number of bytes to be invalidated wait Whether the call is blocking (and the extent of wait) till the issue operation is completed. Whether the function must exit on completion/or not. @endverbatim * * <b> Return Value </b> * @n None * * @b Example * @verbatim ... CACHE_invL1p ((Uint32*)(0x1000), 200, CACHE_NOWAIT); ... @endverbatim * ============================================================================ */void CACHE_invL1p ( void *blockPtr, Uint32 byteCnt, CACHE_Wait wait);/* Global Operations *//** ============================================================================ * @n@b CACHE_invAllL1p * * @b Description * @n Invalidates all of L1P. * @n As per the specification, * @n a. The L1PINV is programmed. * * @b Arguments * @verbatim wait Whether the call is blocking (and the extent of wait) till the issue operation is completed. Whether the function must exit on completion/or not. @endverbatim * * <b> Return Value </b> * @n None * * @b Example * @verbatim ... CACHE_invAllL1p (CACHE_NOWAIT); ... @endverbatim * ============================================================================ */void CACHE_invAllL1p ( CACHE_Wait wait);/*----------------------------------------------------------------------------*\ L1D\*----------------------------------------------------------------------------*//** ============================================================================ * @n@b CACHE_setL1dSize * * @b Description * @n Sets the L1D size. * @n As per the specification, * @n a. The new size is programmed in L1DCFG * @n b. L1DCFG is read back to ensure it is set. * * @b Arguments * @verbatim newSize New size to be programmed @endverbatim * * <b> Return Value </b> * @n Old Size set for L1D (CACHE_L1Size) * * @b Example * @verbatim ... CACHE_L1Size oldSize ; oldSize = CACHE_setL1dSize(CACHE_L1_32KCACHE); ... @endverbatim * ============================================================================ */CACHE_L1Size CACHE_setL1dSize ( CACHE_L1Size newSize);/** ============================================================================ * @n@b CACHE_freezeL1d * * @b Description * @n Freezes L1D. * @n As per the specification, * @n a. The new freeze state is programmed in L1DCC. * @n b. The old state is read from the L1DCC from the POPER field. * @n This latter read accomplishes 2 things, viz. Ensuring the new state * is programmed as well as reading the old programmed value. * * @b Arguments * @n None * * <b> Return Value </b> * @n Old Freeze State (CACHE_L1_Freeze) * * @b Example * @verbatim ... CACHE_L1_Freeze oldFreezeState ; oldFreezeState = CACHE_freezeL1d(); ... @endverbatim * ============================================================================ */CACHE_L1_Freeze CACHE_freezeL1d ( void);/** ============================================================================ * @n@b CACHE_unfreezeL1d * * @b Description * @n Unfreezes L1D. * @n As per the specification, * @n a. The normal state is programmed in L1DCC * @n b. The old state is read from the L1DCC from the POPER field. * @n This latter read accomplishes 2 things, viz. Ensuring the new state * is programmed as well as reading the old programmed value. * * @b Arguments * @n None * * <b> Return Value </b> * @n Old Freeze State (CACHE_L1_Freeze) * * @b Example * @verbatim ... CACHE_L1_Freeze oldFreezeState ; oldFreezeState = CACHE_unfreezeL1d(); ... @endverbatim * ============================================================================ */CACHE_L1_Freeze CACHE_unfreezeL1d( void);/* Block Operations *//** ============================================================================ * @n@b CACHE_wbL1d * * @b Description * @n Writes back range specified in L1D. * @n As per the specification, * @n a. The start of the range that needs to be written back is programmed * into L1DWBAR. * @n b. The byte count is programmed in L1DWWC. * * @b Arguments * @verbatim blockPtr Start address of range to be written back byteCnt Number of bytes to be written back wait Whether the call is blocking (and the extent of wait) till the issue operation is completed or not. Whether the function must exit on completion/or not. @endverbatim * * <b> Return Value </b> * @n None * * @b Example * @verbatim ... CACHE_wbL1d((Uint32*)(0x1000), 200, CACHE_NOWAIT); ... @endverbatim * ============================================================================ */void CACHE_wbL1d ( void *blockPtr, Uint32 byteCnt, CACHE_Wait wait);/** ============================================================================ * @n@b CACHE_invL1d * * @b Description * @n Invalidates range specified in L1D. * @n As per the specification, * @n a. The start of the range that needs to be invalidated is written * into L1DIBAR. * @n b. The byte count is programmed in L1DIWC. * * @b Arguments * @verbatim blockPtr Start address of range to be invalidated byteCnt Number of bytes to be invalidated wait Whether the call is blocking (and the extent of wait) till the issue operation is completed. Whether the function must exit on completion/or not. @endverbatim * * <b> Return Value </b> * @n None * * @b Example * @verbatim ... CACHE_invL1d ((Uint32*)(0x1000), 200, CACHE_NOWAIT); ... @endverbatim * ============================================================================ */void CACHE_invL1d ( void *blockPtr, Uint32 byteCnt, CACHE_Wait wait);/** ============================================================================ * @n@b CACHE_wbInvL1d * * @b Description * @n Writeback invalidates range specified in L1D. * @n As per the specification, * @n a. The start of the range that needs to be writeback invalidated is * programmed into L1DWIBAR. * @n b. The byte count is programmed in L1DWIWC. * * @b Arguments * @verbatim blockPtr Start address of range to be written back invalidated byteCnt Number of bytes to be written back invalidated wait Whether the call is blocking (and the extent of wait) till the issue operation is completed. Whether the function must exit on completion/or not. @endverbatim * * <b> Return Value </b>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -