We are using pcie_init example from http://e2e.ti.com/support/dsp/c6000_multi-core_dsps/f/639/t/155435.aspx and Endpoint for PCI Express and PCI Express Endpoint Core sample application design on Virtex-6 FPGA. The DSP works as RC and the FPGA as EP. We changed location of .dstBufSec section (DDR3->L2SRAM). My goal is to trasmit 0xdeadbeef and recieve it back. The output on the console of CCS is:
**********************************************
* PCIe Test Start *
* RC mode *
**********************************************
Version #: 0x01000003; string PCIE LLD Revision: 01.00.00.03:Nov 19 2012:16:03:31
Power domain is already enabled. You probably re-ran without device reset (which is OK)
PCIe Power Up.
PLL locked.
PLL configured.
Successfully configured Inbound Translation!
Location: 0 PMEnable: 0x0
Location: 0 pmeStatus: 0x0 pmeReqID: 0x0
Location: 0 aspmL1: 0x0 l1entry: 0x3 l0sentry: 0x3 commnf: 0xf numfts: 0x64 ackfreq: 0x0
Starting link training...
Link is up.
Location: 1 PMEnable: 0x0
Location: 1 pmeStatus: 0x1 pmeReqID: 0x0
Location: 1 aspmL1: 0x0 l1entry: 0x0 l0sentry: 0x0 commnf: 0x0 numfts: 0x0 ackfreq: 0x0
CFG SETUP before enumeration: bus 0, device 0, func 0, type 0
i 0, VID 6012, DEV 10ee
offset: 0x0 : 601210ee 00100000 05000000 00000000
offset: 0x10 : 70000000 00000000 00000000 00000000
offset: 0x20 : 00000000 00000000 00000000 000710ee
offset: 0x30 : 00000000 00000040 00000000 000001ff
offset: 0x40 : 78034801 00000008 00806005 00000000
offset: 0x50 : 00000000 00000000 00000000 00000000
offset: 0x60 : 02029c10 00008e00 00002810 0003f421
offset: 0x70 : 00110000 00000000 00000000 00000000
offset: 0x80 : 00000000 00000002 00000000 00000000
offset: 0x90 : 00010000 00000000 00000000 00000011
offset: 0xa0 : 00000000 00000000 00000000 00000000
offset: 0xb0 : 00000000 00000000 00000000 00000000
offset: 0xc0 : 00000000 00000000 00000000 00000000
offset: 0xd0 : 00000000 00000000 00000000 00000000
offset: 0xe0 : 00000000 00000000 00000000 00000000
offset: 0xf0 : 00000000 00000000 00000000 00000000
offset: 0x100 : 10c10003 01000a35 00000001 00000000
offset: 0x110 : 00000000 00000000 00000000 00000000
offset: 0x120 : 00000000 00000000 0001000b 01811234
offset: 0x130 : 00000000 00000000 00000000 00000000
offset: 0x140 : 00000000 00000000 00000000 00000000
offset: 0x150 : 00000000 00000000 00000000 00000000
offset: 0x160 : 00000000 00000000 00000000 00000000
offset: 0x170 : 00000000 00000000 00000000 00000000
offset: 0x180 : 00000000 00000000 00000000 00000000
offset: 0x190 : 00000000 00000000 00000000 00000000
offset: 0x1a0 : 00000000 00000000 00000000 00000000
offset: 0x1b0 : 00000000 00000000 00000000 00000000
offset: 0x1c0 : 00000000 00000000 00000000 00000000
EP: bar#0, base 0x07000000, prefetch 0x0, type 0x0, memSpace 0x0
Local - bar#1, base 0x09000000, prefetch 0x0, type 0x0, memSpace 0x0
Location: 0 BusEnable: 0x1 Memory bit is: 0x1
Location: 1 BusEnable: 0x1 Memory bit is: 0x1
Done enumeration OK
LnkBWStat: 0x0, dllactive: 0x1, sltClk: 0x1, LnkTrn: 0x0, commonClk: 0x0, activeLnkPM: 0x0
base: 00000000 ec200000 00000000 ec200000
read: 00000000 71e2199f bebebebe bebebebe
Location: 0 PMEnable: 0x0
Location: 0 pmeStatus: 0x0 pmeReqID: 0x0
Location: 0 aspmL1: 0x0 l1entry: 0x3 l0sentry: 0x3 commnf: 0xf numfts: 0x64 ackfreq: 0x0
It shows that link is up, the word 0xdeadbeef was transmitted, and I recieve 0x00000000 back. What is wrong? Why I can't recieve back 0xdeadbeef?