SV: New invalidate/clean/flush_dcache functions

Paul Mackerras paulus at samba.org
Thu Dec 26 15:12:42 EST 2002


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/





More information about the Linuxppc-embedded mailing list