Hi All:
I am trying to perform a data transfer from FPGA(K7) to C6678 over DMA, C6678 as RC, FPGA as EP.
FPGA load a PCIE DMA CORE, communicate with C6678 directly, RefClock= 100M, linkSpeed=2.5G, lane num = 1.
Firstly, I initial the C6678 PCIE follow the example: "C:\ti\pdk_C6678_1_1_2_6\packages\ti\drv\pcie\example\sample\pcie_sample.c".
The setup as follows:
gpPCIE_RC_regs->BAR[1]= 0x90000000;
gpPCIE_app_regs->INBOUND_TRANSLATION[0].IB_BAR = 1;
gpPCIE_app_regs->INBOUND_TRANSLATION[0].IB_START_LO = 0x90000000;
gpPCIE_app_regs->INBOUND_TRANSLATION[0].IB_START_HI = 0x00000000;
gpPCIE_app_regs->INBOUND_TRANSLATION[0].IB_OFFSET = 0x00000000;
gpPCIE_app_regs->CMD_STATUS |= (CSL_PCIESS_APP_CMD_STATUS_IB_XLT_EN_MASK);
gpPCIE_app_regs->OUTBOUND_TRANSLATION[0].OB_OFFSET_INDEX = 0x70000001;
gpPCIE_app_regs->OUTBOUND_TRANSLATION[0].OB_OFFSET_HI = 0x0;
gpPCIE_app_regs->CMD_STATUS |= (CSL_PCIESS_APP_CMD_STATUS_OB_XLT_EN_MASK);
And, PCIE link training successfully with FPGA, and I can read the FPGA configuration space too.
Then, I config the FPGA's configuration space as follow:
gpPCIE_remote_EP_regs->BAR[0] = 0x70000000;
gpPCIE_remote_EP_regs->STATUS_COMMAND |= 0x00000006;
And, C6678 can read & write FPGA MEMORY SPACE successfully by PCIE.
Finally, I config the FPGA DMA CORE throught PCIE, such as: ADDR(0x00801000),SIZE(63),COUNT(129), then START DMA.
I can see The FPGA send the TLP packets successfully by ChipScope, However, I can't read the correct values in ADDR(0x00801000).
What's the matter? Do I miss any thing?
Does the C6678 need to start EDMA?
Who can help me?The project is very urgent.
Looking forward to your reply.
many Thanks
btyang