1
votes

I am working on DMA connection between Xilinx FPGA and PC over PCIe. However, the DMA transfer from FPGA to Computer doesn't work. I dumped the PCIe package sent by FPGA via ChipScope:

(header)0x6000_0002,0x0600_01FF,(Address)0x0000_0000,0x3740_0000,(data)0x0000_0001,0x0000_0002

which should write 0x1,0x2 to memory address 0x3740_0000, but the write didn't happen. On the other hand, the read from the same address worked perfectly. I have tried both the 32bit and 64bits address, none of them could be succeed. The computer I am working on is an AMD 64bit machine. what did I miss?

1
You may have better luck asking over at electronics.stackexchange.com - Marty
Didn't you ask the same question here: stackoverflow.com/questions/14217311/pcie-interrupt-routing - FarhadA

1 Answers

1
votes

I see you are trying to write in 64bit addr mode and length of 2. Just to make things easier, try 1 length with 32bit addr(dont forget to change byte enables to 0x0F for 1 DW write tlp, check if trn_tdst_rdy_n goes high at anypoint). Did you allocate that memory with a program and what program did you use for that? I think your problem is with memory managing, because successful read operation implies you are safe with fpga side.