Subject: Re: [PATCH] ucc_geth: Rework the TX logic.

From: Scott Wood <[email-masked]>
Date: Tue, 31 Mar 2009 09:37:48 -0500

Joakim Tjernlund wrote:
> I am a bit confused, what isn't worth it?

Enabling cacheing on MURAM, at least when used for buffer descriptors. 
The cache line ping-pong would probably outweigh the cost of the 
uncached accesses.

> Currently MURAM isn't used by ucc_geth,

Hmm.  I looked in the driver and saw numerous muram allocations, but I 
didn't try to follow the driver enough to ensure that they were for the 
ring.  I'd assumed it was similar to the CPM1/CPM2 driver.

> 3) as gianfar, dma_alloc_coherent(). I presume this is uncacheable memory?

It would be uncacheable on systems without coherent DMA, but I don't 
think there are any such systems that use gianfar.

> My guess would be 2 or 3. Do they have the same synchronization
> sematics?

No, unfortunately.  PowerPC sync instructions are a bit complicated. 
For example, you can use eieio to sync between reading the interrupt 
status register and checking the ring buffer, if they're both mapped 
I+G, but not if the former is I+G and the latter is cacheable (you need 
a full sync in that case).

-Scott