Other Parts Discussed in Thread: 66AK2E05
Hello!
I am working on PCIe link between C6670 DSP and FPGA. In my FPGA design I have busmastering DMA engine. It is capable of making writes to DSP. As I know, the DSP can handle inbound TLPs with 256B of payload and outbound TLPs with 128B of payload.
I have tried to transmit 128B TLP from FPGA to DSP and it does arrive successfully to destination buffer. However, if I send 256B TLP, it does not appear in destination buffer at all.
PCIe destination address is 0x90000000, translated to memory buffer. I see the TLP appearing on transaction interface of FPGA PCIe block, and its values seems to be legit. Anyone can confirm 256B TLP reception on C6670?
Please suggest, is there any way to debug, why that packet was not received?
Another point is configuration of PCIe SS. I am reading DEVICE_CAP and DEV_STAT_CTRL registers.
The former, DEVICE_CAP at 0x21801074 reads as 0x00008001. Its bits [2:1] define MAX_PAYLD_SZ and there is value of 1. This value corresponds to maximum supported payload size of 256B according to PCIe spec.
Next, DEV_STAT_CTRL register at 0x21801078 reads as 0x0000281F. Bits [7:5] define max payload and that is 1 again, corresponding to 256B. However, bits[14:12] have value of 2 and they define max read request size to be 512B.Isn't there a contradiction?
Thanks in advance.