RE: Howto use PPC4xx memory to memory DMA

2 messages, 2 authors, 2007-01-19 · open the first message on its own page

RE: Howto use PPC4xx memory to memory DMA

From: - Reyneke <hidden>
Date: 2007-01-19 09:35:41

Ooh - and the 3d thing - cache coherence. I.e.:

	dma_cache_inv((u32)mem, (u32)nBytes);


quoted
Here are a few things to check:
_________________________________________________________________
Find Love This New Year With match.com! http://msnuk.match.com

Re: Howto use PPC4xx memory to memory DMA

From: Niklaus Giger <hidden>
Date: 2007-01-19 20:47:33

Am Freitag, 19. Januar 2007 10:35 schrieb - Reyneke:
Ooh - and the 3d thing - cache coherence. I.e.:

	dma_cache_inv((u32)mem, (u32)nBytes);
quoted
quoted
Here are a few things to check:
Thanks a lot for your tips. First I called
a) __get_free_pages(GFP_KERNEL | GFP_DMA, get_order(size));
for the source and destination address.
Then before calling ppc4xx_enable_dma I added
b) ppc4xx_set_src_addr(DMA_NR, virt_to_bus(src));
c) ppc4xx_set_src_addr(DMA_NR, virt_to_bus(dst));
d) flush_dcache_all(); 
With these changes I got at least one byte copied. After fixing the 
ppc4xx_enable_dma everything worked fine. (Patch posted a few minutes ago.)

Did you manage to use DMA on PLB peripheral bus on a memory mapped dev? I 
think there one should also increment the source or destination address. But 
I have no example HW/code at hand to test these two cases too.

Best regards
-- 
Niklaus Giger
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help