AnsweredAssumed Answered

dcbf instruction use issue

Question asked by Quentin Reynard on Mar 20, 2018
Latest reply on Mar 27, 2018 by Quentin Reynard

Hi,

 

I used dcbf instruction to flush my data cache, but it seems that it did not work (I verified via a probe the content of the data cache).

 

In C, I created a variable:

int i = 0;

// then I call the next routine

FlushDataCache((int)&i, (int)(&i + DATA_CACHE_FLUSH_48K/4));

 

which is in assembly langage:

                                                      # r1 = start of shared region
                                                      # r2 = end of region

loop:

dcbf       0,r1                                  # flush line at address r1
addi       r1,r1,<line size in bytes> # point to next line
cmpw    r1,r2                                 # finished?
ble         loop

isync

msync

blr

 

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,

 

Quentin Reynard

Outcomes