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