void DP_cacheInvalid(UCHAR* pucBlockPtr, UINT uiByteNum)
{
UINT uiAddr = 0;
UCHAR *blockPtr = pucBlockPtr;
UINT byteCnt = uiByteNum;
uiAddr = (UINT)blockPtr;
if (((uiAddr >= ddrStartAddr) && (uiAddr <= ddrEndAddr))\
|| ((uiAddr >= 0x40000000) && (uiAddr <= 0x4fffffff))) // 对DDR维护一致性
{
Cache_inv((Ptr)blockPtr, (SizeT)byteCnt, (Bits16)Cache_Type_L2, 1);
}
else if ((uiAddr >= msmcsramStartAddr) && (uiAddr <= msmcsramEndAddr)) // 对MSMCSRAM维护一致性
{
Cache_inv((Ptr)blockPtr, (SizeT)byteCnt, (Bits16)Cache_Type_L1D, 1);
}
else
{
// err handle
ErrorHandle(0xA5, "Address Scope Exceeded in DP_CacheInv()");
}
return;
}
{
UINT uiAddr = 0;
UCHAR *blockPtr = pucBlockPtr;
UINT byteCnt = uiByteNum;
uiAddr = (UINT)blockPtr;
if (((uiAddr >= ddrStartAddr) && (uiAddr <= ddrEndAddr))\
|| ((uiAddr >= 0x40000000) && (uiAddr <= 0x4fffffff))) // 对DDR维护一致性
{
Cache_inv((Ptr)blockPtr, (SizeT)byteCnt, (Bits16)Cache_Type_L2, 1);
}
else if ((uiAddr >= msmcsramStartAddr) && (uiAddr <= msmcsramEndAddr)) // 对MSMCSRAM维护一致性
{
Cache_inv((Ptr)blockPtr, (SizeT)byteCnt, (Bits16)Cache_Type_L1D, 1);
}
else
{
// err handle
ErrorHandle(0xA5, "Address Scope Exceeded in DP_CacheInv()");
}
return;
}