View Single Post
  #3 (permalink)  
Old 05-08-2006, 04:25 PM
Posts: n/a
Default Re: PCI Express and DMA

"SongDragon" <[email protected]> wrote in message
news:[email protected] ..
>I am looking for some assistance writing a driver and FPGA code to handle
>DMA on a PCI Express system. The FPGA is a Xilinx V2P with a Xilinx x4 PCIe
>LogiCORE (v3.0).
> I've scoured through the entire PCI Express Base Specification v2.0 (the
> Solari/Intel book) and DMA isn't mentioned once, as far as I can tell. I
> suppose it is at a higher level than the base spec covers. The Xilinx
> manuals don't mention it, either. I've also googled everywhere (websites,
> groups, etc.) for mention of PCI Express and DMA, to no avail.
> Where should I go to find out how PCI Express handles DMA? What should the
> TLP messages look like? Are there any reference designs / sample code
> available?
> I look forward to hearing from the community about this issue.
> Thank you,
> --Alex Gross

The DMA isn't done by the PCI express - it's done by the surrounding layers.
The PCI, PCI-X, PCIe all have the ability to be a Master in a Burst
transaction. For your FPGA to DMA to another system, the FPGA needs a
request to master a transaction issued to the core. Once granted, the
transaction will specify the location for the data transfer which has to be
coordinated in your system, not in the PCIe core. The transaction can
provide a complete payload or may be interrupted (at least in PCI/X land) to
allow other higher-priority transactions to occur.

Look at mastering transactions and post again with further questions.

Reply With Quote