> I'm trying to get a ppc 831x to do PCIe dma transfers, PIO transfers > work ok but are somewhat lethargic (partially due to the slave).
After much soul searching I've finally got it to work! For the benefit of anyone else... - The lowest address of the dma descriptor contains the 'command' bits. - Set 'Next descriptor valid' with a zero pointer to get the chain to complete. - Set the dma descriptor status word to zero (might just need 'done' clear). - Set the 'snoop for CSB' bit in the descriptor command (errata). My big problem was that I'd set the descriptor status to 0xdeadbeef in order to detect writes :-( I also used the st_le32() and ld_le32() defines from arch/powerpc/include/asm/swab.h with explicit iosync() requests rather than the out_le32() and in_le32() from io.h. The latter (especially in_le32()) contain unwanted slow instructions. Getting the correct swab.h included was a problem in itself! David _______________________________________________ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev