<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=us-ascii">
<META content="MSHTML 6.00.6000.16735" name=GENERATOR></HEAD>
<BODY>
<DIV><FONT face=&#26032;&#32048;&#26126;&#39636; size=2><SPAN 
class=938413313-11112008>Hi,</SPAN></FONT></DIV>
<DIV><FONT face=&#26032;&#32048;&#26126;&#39636; size=2><SPAN 
class=938413313-11112008></SPAN></FONT>&nbsp;</DIV>
<DIV><FONT face=&#26032;&#32048;&#26126;&#39636; size=2><SPAN class=938413313-11112008>I am using 2.6.14.5 
and MPC8349.</SPAN></FONT></DIV>
<DIV><FONT face=&#26032;&#32048;&#26126;&#39636; size=2><SPAN class=938413313-11112008>I got some DMA 
problems with PCI devices.</SPAN></FONT></DIV>
<DIV><FONT face=&#26032;&#32048;&#26126;&#39636; size=2><SPAN class=938413313-11112008>So,&nbsp;I tried to 
understand the DMA stuff of linux.</SPAN></FONT></DIV>
<DIV><FONT face=&#26032;&#32048;&#26126;&#39636; size=2><SPAN 
class=938413313-11112008></SPAN></FONT>&nbsp;</DIV>
<DIV><FONT face=&#26032;&#32048;&#26126;&#39636; size=2><SPAN class=938413313-11112008>I have one question 
about cache coherency.</SPAN></FONT></DIV>
<DIV><FONT face=&#26032;&#32048;&#26126;&#39636; size=2><SPAN class=938413313-11112008>In dma-mapping.h, I 
found some functions are defined as NULL.</SPAN></FONT></DIV>
<DIV><FONT face=&#26032;&#32048;&#26126;&#39636; size=2><SPAN class=938413313-11112008>For 
example:</SPAN></FONT></DIV>
<DIV><FONT face=&#26032;&#32048;&#26126;&#39636; size=2><SPAN class=938413313-11112008>#define 
dma_cache_inv(_start,_size)&nbsp;&nbsp;do { } while (0)<BR>#define 
dma_cache_wback(_start,_size)&nbsp;&nbsp;do { } while (0)<BR>#define 
dma_cache_wback_inv(_start,_size)&nbsp;do { } while (0)</SPAN></FONT></DIV>
<DIV><FONT face=&#26032;&#32048;&#26126;&#39636; size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=&#26032;&#32048;&#26126;&#39636; size=2><SPAN class=938413313-11112008>#define 
__dma_alloc_coherent(gfp, size, handle)&nbsp;NULL<BR>#define 
__dma_free_coherent(size, addr)&nbsp;&nbsp;do { } while (0)<BR>#define 
__dma_sync(addr, size, rw)&nbsp;&nbsp;do { } while (0)<BR>#define 
__dma_sync_page(pg, off, sz, rw)&nbsp;do { } while (0)<BR></SPAN></FONT></DIV>
<DIV><FONT face=&#26032;&#32048;&#26126;&#39636; size=2><SPAN class=938413313-11112008>Does this mean that I 
don't need to take care of cache coherency in MPC83xx 
platform?</SPAN></FONT></DIV>
<DIV><FONT face=&#26032;&#32048;&#26126;&#39636; size=2><SPAN class=938413313-11112008>So, I could use any 
range of memory for DMA transferring and the hardware will take care of the 
cache coherency for me?</SPAN></FONT></DIV>
<DIV><FONT face=&#26032;&#32048;&#26126;&#39636; size=2><SPAN 
class=938413313-11112008></SPAN></FONT>&nbsp;</DIV>
<DIV><FONT face=&#26032;&#32048;&#26126;&#39636; size=2><SPAN class=938413313-11112008>Thanks a 
lot.</SPAN></FONT></DIV>
<DIV><FONT face=&#26032;&#32048;&#26126;&#39636; size=2><SPAN 
class=938413313-11112008></SPAN></FONT>&nbsp;</DIV>
<DIV><FONT face=&#26032;&#32048;&#26126;&#39636; size=2><SPAN 
class=938413313-11112008>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
Jay Chen.</SPAN></FONT></DIV>
<DIV><FONT face=&#26032;&#32048;&#26126;&#39636; size=2><SPAN 
class=938413313-11112008></SPAN></FONT>&nbsp;</DIV></BODY></HTML>