Thread (14 messages) 14 messages, 6 authors, 2004-04-26

Re: SV: New invalidate/clean/flush_dcache functions

From: Paul Mackerras <hidden>
Date: 2002-12-26 04:12:42

Joakim Tjernlund writes:
In my inline functions will just use 5 or 6 instructions in total for
all
cases where len is known at compile time, which should be close to the
number of instructions needed for preparing the arguments and making the
call to the old versions(I did not check this, but I guess I will have
to)
Were you thinking that the address must be cacheline-aligned?  If it
isn't, the number of cachelines that you have to do depends not only
on the length parameter but also on the low-order bits of the
address.  For example, if cache lines are 16 bytes and len = 18, then
if addr = 0xc0000001 then we want to do 2 cache lines, but if addr =
0xc000000f then we need to do 3 cache lines.
Only the invalidate function is missing the sync instruction.
It's not needed. Invalidating the cache does not touch the memory
so there is no need to sync the memory. I have been running my system
without it for a long time and I asked my HW contact at Motorola about
it and he agreed. Others has used the dcbi without a sync without
problems.
I don't have the architecture manual to hand, it's at work.  I can
easily believe that sync after dcbi is not needed on any current 8xx
implementation, or on any 4xx either.

Paul.

** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help