I am working on the AM5728 under RTOS. I have generated a EDMA3 based PCIe sample program to communicate with an FPGA. I can send data to the FPGA in a loop using the transfer complete interrupt from the EDMA to flow control the loop.
This got me thinking though. Does the EDMA3 controller really know when the PCIe has completed a transfer or just when the EDMA3 controller had finished sending the data to the PCIe peripheral? From what I have read the PCIe has no local feedback for flow control. No transfer complete interrupt or FIFO status. You can get interrupts back from the EP (legacy interrupts or MSI), but I wasn't planning to use that since we will have dedicated interrupts and those don't seem to be related to interface flow anyway.
So, my concern was can the PCIe be overwhelmed with data and if yes, then what mechanism am I missing to control it?