Ok, so after some verification with my probe, the routine does not work, I don't see my D-cache as totally flushed and invalidated.
I think I made a mistake while giving the argument to the dcbf instruction.
In C, I created a variable:
int i = 0;
// then I call the next routine (which is exactly the routine from my first message (with isync and msync at the end))
FlushDataCache((int)&i, (int)(&i + DATA_CACHE_FLUSH_48K/4));
I thought the dcbf instruction will find the D-cache according to i variable, and flush the line. I don't know what's wrong ?
Sorry to bother, thank you for your anwsers,
Regards,
Quentin Reynard.