dma_alloc for pcie_device, how can I allocate from the pci device memory?

Chan Kim ckim at
Mon Aug 21 10:11:10 EDT 2023

Hello all,

If you do dma_alloc_xxx for a pci_device, we normally allocate memory in
host memory and the IOMMU for the device is setup so that the bus address is
converted to host physical memory (or cpu memory). Isn't this right?
But how do we allocate memory in the PCI device itself, I mean from the BAR
memory address of the pci_device?
How do we control from which memory (host memory or PCIe device memory) to
allocate memory? Is BAR memory only for explicit allocation by the driver

Thank you.
Chan Kim

More information about the Kernelnewbies mailing list