Subject: Re: MPC5200 Cache coherency with BestComm issue (was: Lite5200 FEC Driver on linux 2.6 (updated))

From: Sylvain Munaut <[email-masked]>
Date: Wed, 24 Nov 2004 09:22:30 +0100

Hi roger

> Using your latest tree still shows the packet checksum errors, despite
>XLB snooping being enabled.
>
>I think that the cache flush is required
>
It really shouldn't be.
Take a look at 
http://www.freescale.com/files/microcontrollers/doc/app_note/AN2604.pdf,
page 3, 4th paragraph

quote : <<< In case the memory location interested by BestComm accesses 
are cached in
copy-back mode by the core, a "Snooping" activity can be forced to the 
core, so that an
'address retry' will be issued and the core will first flush it's cache 
line before allowing
BestComm to retry it's transaction. >>>

Note that performance wise, adding it is probably a good idea. It will 
have to be flushed
eventually  and forcing BestComm to retry a transaction is just waste of 
XLB cycles ...

>or
>that the skb pages must be marked coherent somehow.
>
Yes they must. I haven't checked if they were but since this requirement 
is common
for multiple ppc, I'd guess they are.

>I note that the 8xx
>fec.c file also has a cache flush, so it isn't that strange.
>  
>
I don't know 8xx in details, but in arch/ppc/Kconfig, 8xx defines
NOT_COHERENT_CACHE symbol. So they probably excpect it not to be.

    Sylvain