1.3.1.2.1 Host PC Memory to DDR3L/DDR4
(Ask a Question)PCIe DMA Engine0 performs DMA from host PC memory to DDR3L/DDR4 memories as shown in the following figure.
The following steps describe the SGDMA operation of PCIe DMA0:
- PolarFire_PCIe_GUI application requests the PCIe driver for SG DMA. The driver on the host PC allocates the available memory location and creates the buffer descriptors with the scattered memory location addresses and location size.
- The destination DDR3L/DDR4 memory is treated as the continuous memory. The driver configures the PCIe DMA0 with the first buffer descriptor address and initiates the DMA.
- DMA controller initiates read transaction to the PCIe core with the buffer descriptor address.
- The PCIe core sends the MRd TLP to the host PC. The host PC returns a completion (CplD) TLP to the PCIe link.
- The DMA controller extracts these buffer descriptors and initiates the read transaction to PCIe core with the host PC memory location address in the descriptor.
- The PCIe core sends the MRd TLP to the host PC. The host PC returns a CplD TLP to the PCIe link.
- This return data is written to the DDR3L/DDR4 memories using PCIe AXI initiator interface.
- The DMA controller repeats this process (from steps 3 to 7) until the DMA size of data transfer is completed.
- The DMA controller sends the MSI0 interrupt to the host PC. The driver on the host PC detects the interrupt, reads the DMA status, and the number of clock cycles consumed to complete the DMA transaction to the PolarFire_PCIe_GUI application.
