1.3.1.2.2 DDR3L/DDR4 to Host PC Memory
(Ask a Question)The PCIe DMA Engine1 performs DMA from DDR3L/DDR4 memories to host PC memory (Figure 1-3).
The following steps describe the SGDMA operation of PCIe DMA1:
- PolarFire_PCIe_GUI application requests the PCIe driver for SG DMA. The driver on the host PC allocates the available memory locations and creates the buffer descriptors with the scattered memory location addresses and location size.
- The source DDR3L/DDR4 memory is treated as the continuous memory. Single buffer descriptor is created in LSRAM with the base address of DDR3L/DDR4 memory. The LSRAM base address is provided to DMA controller for source descriptor address.
- The driver configures the PCIe DMA1 with the first host PC destination 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 CplD TLP to the PCIe link.
- The DMA controller extracts these buffer descriptors and initiates an AXI burst read transaction to read the data from DDR3L/DDR4 memories.
- With this read data, DMA controller initiates the write transaction to PCIe core with the host PC memory location address in the descriptor.
- The PCIe core sends the MWr TLP to the host PC.
- The DMA controller repeats this process (from steps 4 to 8) until the DMA size of data transfer is completed.
- The DMA controller sends the MSI1 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.
