STRUCT PL_DMA_PCIE(9)
π struct pl_dma_pcie(9) β the PCIe port info struct, bestie
Okay so this page lives in the Kernel API Manual, and it's literally just the receipts for struct pl_dma_pcie β the thing that holds all the PCIe port information. It's giving "backstage pass to the Xilinx PL DMA PCIe controller" energy. Let's get into it β¨
πΈ SYNOPSIS πΈ
Here's the whole struct, exactly as it lives, no cap:
struct pl_dma_pcie {
struct device *dev;
void __iomem *reg_base;
void __iomem *cfg_base;
int irq;
struct pci_config_window *cfg;
phys_addr_t phys_reg_base;
struct irq_domain *intx_domain;
struct irq_domain *pldma_domain;
struct list_head resources;
struct xilinx_msi msi;
int intx_irq;
raw_spinlock_t lock;
const struct xilinx_pl_dma_variant *variant;
};
π Members π
Time for the vibe check on every single field, one by one π
devβ Device pointer. Your actual device, the main character.reg_baseβ IO Mapped Register Base. It's the register base, but IO-mapped. π¦cfg_baseβ IO Mapped Configuration Base. Same deal but for config β also IO-mapped.irqβ Interrupt number. Just the number, no drama.cfgβ Holds mappings of config space window. It's the config space window's mapping holder, periodt.phys_reg_baseβ Physical address of reg base. The physical one, so don't get it twisted with the IO-mapped one up there. πintx_domainβ Legacy IRQ domain pointer. Legacy, but still iconic.pldma_domainβ PL DMA IRQ domain pointer. The PL DMA one, obviously.resourcesβ Bus Resources. All the bus resources, gathered up.msiβ MSI information. Everything MSI, right here.intx_irqβ INTx error interrupt number. That's the INTx error interrupt number, specifically. π₯lockβ Lock protecting shared register access. Bestie, this one is highkey important β it's the lock keeping shared register access from going feral. Handle with care. πvariantβ PL DMA PCIe version check pointer. Points at the version check info so you know which PL DMA PCIe variant you're dealing with.
π SEE ALSO π
- Kernel file
./drivers/pci/controller/pcie-xilinx-dma-pl.cstruct xilinx_pl_dma_variant(9)xilinx_pl_dma_pcie_init_irq_domain(9)
Go read those next, iykyk π
Lowkey a reminder that all of this lives in the kernel source β if the code and this page ever disagree, the code ate and this page is just the flyer. π
That's the whole page, bestie β no crumbs left. This lil' rewrite came from ./drivers/pci/controller, dated October 2026, and it's filed under struct pl_dma_pcie(9). Slay, go forth and read the actual source β¨π«Ά
π¦ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms