pcie DMA memory read & write TLP
Hello, while studying the pcie protocol, I was confused about DMA and PIO, so I asked a question. Thank you so much for always responding kindly.
PIO seems to work like the existing pcie spec, but DMA is confusing
When using DMA as an EP, if the host sends a memory write request, DMA reads data from the host memory through a memory read request. Is this correct?
Then, when the host sends a memory read request, it waits for completion with data. In DMA, data is stored in the host memory through a memory write request. In that case, how does the host receive the completion with data?
I'm not sure about the relationship between pcie TLP and DMA, so I asked a question.
How does TLP work when using DMA engine?
umm, i mean, I'm wondering if you're not passing the Memory Write TLP from the host to the endpoint, but which one.
As far as I know, it seems that PIO is delivered in the form of Memory Write TLP (fmt+type: 0h60).
Hi
In the context of PCIe (Peripheral Component Interconnect Express), a Memory Write (MWr) Transaction Layer Packet (TLP) is used to transfer data from the initiator (the device initiating the transaction) to the target (the device receiving the transaction).
During a Memory Write transaction, the data is indeed used in the DMA (Direct Memory Access) process. DMA allows devices to transfer data directly to and from system memory without involving the CPU. The data sent in the MWr TLP is typically stored in a specific memory location or register within the target device.
So, the data carried by the MWr TLP is not unnecessary. It serves the purpose of updating or modifying data in the target device's memory or registers, and DMA facilitates this data transfer without CPU intervention.
Regards,
Wincent_Intel