Hi
I am working with DM642 DSP
I want to invalidate entire L1D and L1P caches , for that
I am writing value of 1 to bits 8 and 9 of CCFG register
How do I know that the invalidate operation is completed ? I am trying to make polling on bites 8 and 9 , and wait while they going to 0
But , it’s never happens I stall in while loop forever.
What I did wrong ?
See below my code:
//invalidate L1D
*(int *)0x01840000 = *(int *)0x01840000 | 0X100;
while(*(int *)0x01840000 & 0X100 ) != 0)
{
}
//invalidate L1P
*(int *)0x01840000 = *(int *)0x01840000 | 0X200;
while(*(int *)0x01840000 & 0X200 ) != 0)
{
}
I also have 128 cache from L2 memory , to complete the cache invalidation I need to invalidate the L2 too ?
Thanks