Hi Dimitry, thank you for the quick response.
Ok, DMA in the classic sense is not possible. However, if you carry out a write transfer into the BAR memory from DPDK, then, as I understand it, this access should be divided into several small postage-compliant TLP packets with a maximum payload size as specified in config space. Can block transfers in sizes of 512 bytes be carried out with the rte memcpy? The DPDK API states that the AVX-512 memcpy parameter must be enabled for x86 platforms. Do other special precautions have to be taken in the DPDK environment to setup this kind of transfer? Kind regards Jakob -----Original Message----- From: Dmitry Kozlyuk <dmitry.kozl...@gmail.com> Sent: Wednesday, November 6, 2024 6:46 PM To: Wieckowski, Jacob <jacob.wieckow...@vector.com> Cc: users@dpdk.org Subject: Re: DMA Transfers to PCIe Bar Memory [Sie erhalten nicht h?ufig E-Mails von dmitry.kozl...@gmail.com. Weitere Informationen, warum dies wichtig ist, finden Sie unter https://aka.ms/LearnAboutSenderIdentification ] 2024-11-06 15:50 (UTC+0000), Wieckowski, Jacob: > Is DMA access to the bar memory of a PCIe device with DPDK possible? > If so, which example project could be used as a reference to gain a better > understanding of this topic? Hi, BAR (base address register) is a place in PCI configuration space, so one really doesn't "DMA transfers to PCIe BAR memory" to be precise. Read https://wiki.osdev.org/PCI_Express to explore the topic. DPDK drivers write to BARs to configure devices, specifically to setup memory-mapped IO which is used for DMA. Take a look at this project, which is a toy version of DPDK, and thus it is easier to grasp: https://github.com/ixy-languages/ixy-languages