dc* (Data Cache) instructions in mem*() and *_page() functions not used on 8xx

Joakim Tjernlund joakim.tjernlund at lumentis.se
Wed Oct 30 03:02:57 EST 2002


> Joakim Tjernlund wrote:
>
> >>I found that on 8xx these are not used. Why? Are there 8xx variants that can't handle them?
> >>Do 860 work with these?
>
> The TLB/Exception side effects of using these instructions in the 8xx varied
> with different silicon versions.  Rather than have a bunch of unique code for
> different silicon revisions (and in some cases the side effects didn't occur
> at all so the instructions couldn't be used) it is just easier to not use the
> instructions.  Any performance gained by using these instructions was lost
> in the special exception handling.

That figures, just out of curiosity I removed those restrictions in misc.S and
string.S on my 860, rev D4 to see what happened.
Result: It hung in init.
Now I exclude 8xx in __copy_tofrom_user in string.S.
Result: Now it works just fine.

It seems that even the newest 8xx chips still has problems. I did not expect that.

 Jocke

>
> >>Also, why is not dcbtst(write a cache line) used
>
> Because dcbtst performs a load operation on a line you know is going to
> replaced.  That generates unnecessary bus traffic and is why the dcbz is
> used instead.

OK, thanks.

 Jocke


** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/





More information about the Linuxppc-embedded mailing list