STRUCT CDNS_PCIE_RC(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’– NAME πŸ’–

okay so welcome to the struct cdns_pcie_rc(9) page, bestie β€” this is the private data for this PCIe Root Complex driver, straight out of the Kernel API Manual ✨ no cap, that's literally the whole name section 🫢


πŸŽ€ SYNOPSIS πŸŽ€

here's the struct in all its iconic glory, copy it exactly bestie, don't you dare touch a character πŸ’…

struct cdns_pcie_rc {
    struct cdns_pcie        pcie;
    struct resource         *cfg_res;
    void __iomem            *cfg_base;
    u32 vendor_id;
    u32 device_id;
    bool avail_ib_bar[CDNS_PCIE_RP_MAX_IB];
    unsigned int            quirk_retrain_flag:1;
    unsigned int            quirk_detect_quiet_flag:1;
    unsigned int            ecam_supported:1;
    unsigned int            no_inbound_map:1;
    unsigned int            quirk_broken_aspm_l0s:1;
    unsigned int            quirk_broken_aspm_l1:1;
 };

like, look at those bitfields β€” one bit each, highkey thrifty πŸ‘‘


🌸 Members 🌸

okay so here's the member-by-member tour and honestly every single one matters, so no skipping πŸ™ˆ

  • pcie β€” the Cadence PCIe controller itself, the main character of this struct ✨
  • cfg_res β€” the start/end offsets in the physical system memory, used to map PCI configuration space accesses πŸ“
  • cfg_base β€” the IO mapped window that lets you access the PCI configuration space of a single function at a time πŸͺŸ
  • vendor_id β€” the PCI vendor ID, yup that's it 🏷️
  • device_id β€” the PCI device ID, its bestie 🏷️
  • avail_ib_bar β€” status of RP_BAR0, RP_BAR1 and RP_NO_BAR, telling you if it's free or available πŸŽ€
  • quirk_retrain_flag β€” retrain the link as a quirk for PCIe Gen2, quirky behavior fr fr πŸ”
  • quirk_detect_quiet_flag β€” LTSSM Detect Quiet min delay, set as a quirk 🀫
  • ecam_supported β€” whether the ECAM is supported, yes or no bestie βœ…
  • no_inbound_map β€” whether inbound mapping is supported 🚫
  • quirk_broken_aspm_l0s β€” disable ASPM L0s support as a quirk πŸ’€
  • quirk_broken_aspm_l1 β€” disable ASPM L1 support as a quirk πŸ’€
ngl the quirk flags are giving "we found a hardware bug and worked around it" energy, and honestly? iconic of them πŸ’…

πŸ¦‹ SEE ALSO πŸ¦‹

go touch some related lore, bestie 🧚

  • Kernel file ./drivers/pci/controller/cadence/pcie-cadence.h
  • struct cdns_plat_pcie_of_data(9)
  • struct cdns_pcie(9)
  • struct cdns_pcie_epf(9)
  • struct cdns_pcie_ep(9)

iykyk 🌈


and that's the whole page, periodt πŸ’œ big slay to the ./drivers/pci/controller/cadence crew, this one's dated October 2026 and it ate fr fr β€” see u in the next manpage, mwah πŸ“

πŸ“¦ where this page comes from