I have been trying to modify some driver code to essentially setup the DMA engine that is on a PCIe card and have it DMA to another PCIe card's memory region instead of the system memory. I am using a machine that has (I think) an Intel X38 Express north-bridge or similar and I believe it is also using ICH9 south bridge. The card that is doing the DMA is on the x16 slot of the north-bridge and the PCIe memory card is on the south bridge. I been searching the web and haven't seen anyone talk about trying something like this. I am assuming I can take the physical PCI address and pass it to the DMA hardware on the adapter card. Then "hopefully" the PCI bridges will route the TLPs to the other PCIe memory card.
So hence my question has anyone tried this and does the hardware support what I am doing? I honestly am a hardware person, so I am a newbee with device drivers and mucking with the Linux kernel level code. I have a work colleague who has done a lot with kernel level stuff who believes he has done PCI to PCI DMAs (without the CPU) before. He seemed to think I was on the right track with using the PCIe physical address. However, I thought it couldn't hurt to ask and see what others might think. I am wondering if I may also have to setup the hardware's PCI bridges differently so that they will route the TLPs properly.