Howto use PPC4xx memory to memory DMA

- Reyneke reynekejunk at
Fri Jan 19 19:49:58 EST 2007


Here are a few things to check:

1. Your memory destination and source addresses are contiguous. You can get 
this using something like:

mem = (void*)__get_free_pages(GFP_KERNEL | GFP_DMA, get_order(size));

2. Your source and dest addresses are _bus_ addresses. You can get these by:

source = virt_to_bus((u32 *)mem);

Also, we had some trouble with the ppc4xx_ functions using 440 - it seems 
these functions are specific to the PLB4. So if you are trying to do DMA on 
say the PLB peripheral bus on a memory mapped device, you definitely have 
some trouble.

I have some code for doing both - so of you need any further help, just ask.

   Jan Reyneke

Get Hotmail, News, Sport and Entertainment from MSN on your mobile.

More information about the Linuxppc-embedded mailing list