Hi, DMA code (for the EBC) is broken for ppc4xx as it is (for all CPUs) in the linux kernel. This (or some of it) should be implemented in the ppc kernel (since the same broken code has been provided for many years). This works, and is thread safe. It can use more than one channel in parallel, without causing the "one in a million"-type of errors that WILL happen using the current code. The old post regarding this matter. http://ozlabs.org/pipermail/linuxppc-embedded/2005-December/021225.html It is true that this code does handle the dma-memory in a new way, memory for the sg list is allocated dynamically, which takes a little more CPU time at allocation, but it can still operate on any DMA transfer size (as opposed to the hard coded value (<600Kb) used in current code). Reallocation can be prevented by keeping an allocation for many concurrent transfers. Hope to help someone, but I'm somewhat shocked that the DMA code in the current 2.6 kernel is in the same state as it was many years ago in the 2.4 kernel, even though patches exists... Seems everyone that uses the DMA->PLB3 (EBC) needs to patch the kernel code them selves (I'm probably the only one using it/has the hardware to run it, since not much has happened). [Maybe patches like this are implemented already, then this post was not necessary] Which you a nice DMA. /Ronnie Hedlund