I am confused about the capabilities of the PPC440SPe DMA hardware. I'm wondering if I can use it to transfer data between system memory and a PCI Express slave-only device. To do that, the DMA scatter-gather list entry used by the DMA hardware would need to support addresses > 32-bits as the PCI Express slave memory is mapped by Linux above the 4GB line (i.e. 440SPe hardware uses a 36-bit physical address). The AMCC PPC440SPe User's Manual V1.27 chapter 20 on the I20/DMA core indicates (among other things): DMA0 features include: * Any source PLB address to any destination address * 64-bit addressing These items lead me to think I should be able to do this. However, section 20.5.1, "Basic Command Descriptor Block Structure" indicates: "The DMA engine only supports the simple addressing Scatter/Gather List (SGL) format defined in I2O (v1.5). No other SGL formats are supported." >From what I can see from the I20 V1.5 specification, only 32-bit physical >addresses are supported in the SGL entry. I looked over the recent post of the ppc440spe-adma ADMA driver and see the physical addresses used seem to be type dma_addr_t. That's 32-bits on the PPC440SPe powerpc Linux platform. So, this leads me to believe I cannot use the DMA hardware to address above the 4GB line. I don't get why the 440SPe DMA hardware goes to such lengths to support the placement of the CDBs anywhere in memory (these do use 64-bit addresses) while then limiting the SGL addresses for the data itself to 32-bits. I believe the completely different DMA hardware on the 440GX did not have this kind of "weirdness". Is there any way to use the 440SPe hardware to transfer data to a PCI Express slave device? If so, are there any drivers that show how to do it? I realize that my PCI Express device should really be a master and do its own transfer. But that's not an option in the near term. I'm trying to use DMA to try to get higher-performing burst transfers on the PCI Express interface (as compared to the quite-slow CPU-based memcpy I'm using now). Thanks for your help. John Burr _______________________________________________ Linuxppc-dev mailing list Linuxppc-dev@ozlabs.org https://ozlabs.org/mailman/listinfo/linuxppc-dev