help, trying to invalidate entire icache on 970
    Chris Friesen 
    cfriesen at nortel.com
       
    Wed Apr  6 03:33:23 EST 2005
    
    
  
I'm having issues with some code that is supposed to invalidate the 
entire icache on a 970.
I have a little test app in userspace that overwrites an instruction and 
calls some kernel code to invalidate the whole cache.  Unfortunately, 
sometimes the new instruction doesn't get run, and if I start a kernel 
build in the background, it occurs quite frequently.
The kernel code is accessed via an ioctl() on a device node, and it 
looks like this:
local_irq_save()
sync
repeated 513 times:
b 128
<31 nops>
isync
local_irq_restore()
Basically, I'm trying to do the brute-force method of flushing it, as 
described in the 970 manual.  Obviously I'm missing something, but I'm 
not sure what.  In case it matters, the machine is dual-cpu.
Anyone have any ideas?  Anyone have any such code that works?
Chris
    
    
More information about the Linuxppc64-dev
mailing list