STRUCT IPROC_PCIE(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ“› NAME πŸ“›

okay bestie, welcome to struct iproc_pcie(9) β€” the page for the iProc PCIe device. That's the whole name, and honestly it's giving very important kernel-struct main character energy πŸ’…


🌸 SYNOPSIS 🌸

here's the struct in all its glory, copied exactly so nobody comes for me:

       struct iproc_pcie {
           struct device *dev;
           enum iproc_pcie_type type;
           u16 *reg_offsets;
           void __iomem *base;
           phys_addr_t base_addr;
           struct resource mem;
           struct phy *phy;
           bool ep_is_internal;
           bool iproc_cfg_read;
           bool rej_unconfig_pf;
           bool has_apb_err_disable;
           bool fix_paxc_cap;
           bool need_ob_cfg;
           struct iproc_pcie_ob ob;
           const struct iproc_pcie_ob_map *ob_map;
           bool need_ib_cfg;
           struct iproc_pcie_ib ib;
           const struct iproc_pcie_ib_map *ib_map;
           bool need_msi_steer;
           struct iproc_msi *msi;
        };

🫢 Members 🫢

roll call time, bestie β€” every field gets its moment ✨

  • dev β€” pointer to device data structure, the classic device hookup.
  • type β€” iProc PCIe interface type, aka which flavor of interface we're dealing with.
  • reg_offsets β€” register offsets. literally the offsets for registers πŸŽ€
  • base β€” PCIe host controller I/O register base.
  • base_addr β€” PCIe host controller register base physical address.
  • mem β€” host bridge memory window resource.
  • phy β€” optional PHY device that controls the Serdes. optional but iconic.
  • ep_is_internal β€” indicates an internal emulated endpoint device is connected.
  • iproc_cfg_read β€” indicates the iProc config read function should be used.
  • rej_unconfig_pf β€” indicates the root complex needs to detect and reject enumeration against unconfigured physical functions emulated in the ASIC. highkey important 🫢
  • has_apb_err_disable β€” indicates the controller can be configured to prevent unsupported request from being forwarded as an APB bus error.
  • fix_paxc_cap β€” indicates the controller has corrupted capability list in its config space registers and requires SW based fixup. not me reading β€œcorrupted” and gasping 😭
  • need_ob_cfg β€” indicates SW needs to configure the outbound mapping window.
  • ob β€” outbound mapping related parameters.
  • ob_map β€” outbound mapping related parameters specific to the controller.
  • need_ib_cfg β€” indicates SW needs to configure the inbound mapping window.
  • ib β€” inbound mapping related parameters.
  • ib_map β€” outbound mapping region related parameters.
  • need_msi_steer β€” indicates additional configuration of the iProc PCIe controller is required to steer MSI writes to external interrupt controller.
  • msi β€” MSI data. short, sweet, slaying πŸ’–

πŸ‘€ SEE ALSO πŸ‘€

  • Kernel file ./drivers/pci/controller/pcie-iproc.h enum
  • iproc_pcie_type(9), struct iproc_pcie_ob(9), struct iproc_pcie_ib(9)

okay that's the whole page, bestie β€” source/version: ./drivers/pci/controller; date: October 2026. bye and slay your kernel πŸ’–

πŸ“¦ where this page comes from