STRUCT CDNS_PCIE(9)
β¨ struct cdns_pcie β the whole vibe β¨
okay so bestie, let me introduce you to struct cdns_pcie π
this is literally the private data situation for the Cadence PCIe controller drivers. it's giving "backstage pass to the PCIe show," no cap. π
πΈ SYNOPSIS πΈ
struct cdns_pcie {
void __iomem *reg_base;
struct resource *mem_res;
struct resource *msg_res;
struct device *dev;
bool is_rc;
bool is_hpa;
int phy_count;
struct phy **phy;
struct device_link **link;
const struct cdns_pcie_ops *ops;
const struct cdns_plat_pcie_of_data *cdns_pcie_reg_offsets;
int max_link_speed;
struct dentry *debug_dir;
};
π Members (the whole cast, and they all ate) π
reg_baseβ the IO mapped register base. like, the home address of all the register energy π β¨mem_resβ start/end offsets in the physical system memory, specifically for mapping PCI accesses. it's the map, bestie πΊοΈmsg_resβ the region for send message to map PCI accesses. dedicated message lane, periodt πdevβ the PCIe controller itself. main character energy fr fr πis_rcβ tells you whether the PCIe controller mode is Root Complex or Endpoint. literally the "which one am I" flag πis_hpaβ indicates if the architecture is HPA. yes ma'am, noted π«Άphy_countβ number of supported PHY devices. the headcount, iykyk π’phyβ list of pointers to specific PHY control blocks. a whole friend group of pointers πlinkβ list of pointers to corresponding device link representations. the connections, the lore πopsβ platform-specific ops to control various inputs from the Cadence PCIe wrapper. this is the customizable slay layer ποΈcdns_pcie_reg_offsetsβ register bank offsets for different SoC. different SoCs, different offsets, same iconic energy πmax_link_speedβ maximum supported link speed. the speed limit, and it's highkey important ποΈπ¨debug_dirβ the debugfs node. where the debugging besties hang out ππ
π¦ SEE ALSO π¦
kernel file ./drivers/pci/controller/cadence/pcie-cadence.h struct cdns_plat_pcie_of_data(9), struct cdns_pcie_rc(9), struct cdns_pcie_epf(9), struct cdns_pcie_ep(9) β go read these too, bestie, they're all part of the family π«Άβ¨
and that's the whole page, no notes π
this little icon lives in ./drivers/pci/controller/cadence, dated October 2026, and it's brought to you by the struct cdns_pcie(9) manual. slay and goodbye ππ
π¦ 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