|
#define | PCIE_ID_IS_VALID(id) |
|
#define | PCIE_DT_ID(node_id) |
| Get the PCIe Vendor and Device ID for a node.
|
|
#define | PCIE_DT_INST_ID(inst) PCIE_DT_ID(DT_DRV_INST(inst)) |
| Get the PCIe Vendor and Device ID for a node.
|
|
#define | DEVICE_PCIE_DECLARE(node_id) |
| Declare a PCIe context variable for a DTS node.
|
|
#define | DEVICE_PCIE_INST_DECLARE(inst) DEVICE_PCIE_DECLARE(DT_DRV_INST(inst)) |
| Declare a PCIe context variable for a DTS node.
|
|
#define | DEVICE_PCIE_INIT(node_id, name) .name = &Z_DEVICE_PCIE_NAME(node_id) |
| Initialize a named struct member to point at a PCIe context.
|
|
#define | DEVICE_PCIE_INST_INIT(inst, name) DEVICE_PCIE_INIT(DT_DRV_INST(inst), name) |
| Initialize a named struct member to point at a PCIe context.
|
|
#define | PCIE_HOST_CONTROLLER(n) PCIE_BDF(0, 0, n) |
| Get the BDF for a given PCI host controller.
|
|
#define | PCIE_CONF_CAPPTR 13U /* capabilities pointer */ |
|
#define | PCIE_CONF_CAPPTR_FIRST(w) (((w) >> 2) & 0x3FU) |
|
#define | PCIE_CONF_CAP_ID(w) ((w) & 0xFFU) |
|
#define | PCIE_CONF_CAP_NEXT(w) (((w) >> 10) & 0x3FU) |
|
#define | PCIE_CONF_EXT_CAPPTR 64U |
|
#define | PCIE_CONF_EXT_CAP_ID(w) ((w) & 0xFFFFU) |
|
#define | PCIE_CONF_EXT_CAP_VER(w) (((w) >> 16) & 0xFU) |
|
#define | PCIE_CONF_EXT_CAP_NEXT(w) (((w) >> 20) & 0xFFFU) |
|
#define | PCIE_CONF_ID 0U |
|
#define | PCIE_CONF_CMDSTAT 1U /* command/status register */ |
|
#define | PCIE_CONF_CMDSTAT_IO 0x00000001U /* I/O access enable */ |
|
#define | PCIE_CONF_CMDSTAT_MEM 0x00000002U /* mem access enable */ |
|
#define | PCIE_CONF_CMDSTAT_MASTER 0x00000004U /* bus master enable */ |
|
#define | PCIE_CONF_CMDSTAT_INTERRUPT 0x00080000U /* interrupt status */ |
|
#define | PCIE_CONF_CMDSTAT_CAPS 0x00100000U /* capabilities list */ |
|
#define | PCIE_CONF_CLASSREV 2U /* class/revision register */ |
|
#define | PCIE_CONF_CLASSREV_CLASS(w) (((w) >> 24) & 0xFFU) |
|
#define | PCIE_CONF_CLASSREV_SUBCLASS(w) (((w) >> 16) & 0xFFU) |
|
#define | PCIE_CONF_CLASSREV_PROGIF(w) (((w) >> 8) & 0xFFU) |
|
#define | PCIE_CONF_CLASSREV_REV(w) ((w) & 0xFFU) |
|
#define | PCIE_CONF_TYPE 3U |
|
#define | PCIE_CONF_MULTIFUNCTION(w) (((w) & 0x00800000U) != 0U) |
|
#define | PCIE_CONF_TYPE_BRIDGE(w) (((w) & 0x007F0000U) != 0U) |
|
#define | PCIE_CONF_TYPE_GET(w) (((w) >> 16) & 0x7F) |
|
#define | PCIE_CONF_TYPE_STANDARD 0x0U |
|
#define | PCIE_CONF_TYPE_PCI_BRIDGE 0x1U |
|
#define | PCIE_CONF_TYPE_CARDBUS_BRIDGE 0x2U |
|
#define | PCIE_CONF_BAR0 4U |
|
#define | PCIE_CONF_BAR1 5U |
|
#define | PCIE_CONF_BAR2 6U |
|
#define | PCIE_CONF_BAR3 7U |
|
#define | PCIE_CONF_BAR4 8U |
|
#define | PCIE_CONF_BAR5 9U |
|
#define | PCIE_CONF_BAR_IO(w) (((w) & 0x00000001U) == 0x00000001U) |
|
#define | PCIE_CONF_BAR_MEM(w) (((w) & 0x00000001U) != 0x00000001U) |
|
#define | PCIE_CONF_BAR_64(w) (((w) & 0x00000006U) == 0x00000004U) |
|
#define | PCIE_CONF_BAR_ADDR(w) ((w) & ~0xfUL) |
|
#define | PCIE_CONF_BAR_IO_ADDR(w) ((w) & ~0x3UL) |
|
#define | PCIE_CONF_BAR_FLAGS(w) ((w) & 0xfUL) |
|
#define | PCIE_CONF_BAR_NONE 0U |
|
#define | PCIE_CONF_BAR_INVAL 0xFFFFFFF0U |
|
#define | PCIE_CONF_BAR_INVAL64 0xFFFFFFFFFFFFFFF0UL |
|
#define | PCIE_CONF_BAR_INVAL_FLAGS(w) |
|
#define | PCIE_BUS_NUMBER 6U |
|
#define | PCIE_BUS_PRIMARY_NUMBER(w) ((w) & 0xffUL) |
|
#define | PCIE_BUS_SECONDARY_NUMBER(w) (((w) >> 8) & 0xffUL) |
|
#define | PCIE_BUS_SUBORDINATE_NUMBER(w) (((w) >> 16) & 0xffUL) |
|
#define | PCIE_SECONDARY_LATENCY_TIMER(w) (((w) >> 24) & 0xffUL) |
|
#define | PCIE_BUS_NUMBER_VAL(prim, sec, sub, lat) |
|
#define | PCIE_IO_SEC_STATUS 7U |
|
#define | PCIE_IO_BASE(w) ((w) & 0xffUL) |
|
#define | PCIE_IO_LIMIT(w) (((w) >> 8) & 0xffUL) |
|
#define | PCIE_SEC_STATUS(w) (((w) >> 16) & 0xffffUL) |
|
#define | PCIE_IO_SEC_STATUS_VAL(iob, iol, sec_status) |
|
#define | PCIE_MEM_BASE_LIMIT 8U |
|
#define | PCIE_MEM_BASE(w) ((w) & 0xffffUL) |
|
#define | PCIE_MEM_LIMIT(w) (((w) >> 16) & 0xffffUL) |
|
#define | PCIE_MEM_BASE_LIMIT_VAL(memb, meml) |
|
#define | PCIE_PREFETCH_BASE_LIMIT 9U |
|
#define | PCIE_PREFETCH_BASE(w) ((w) & 0xffffUL) |
|
#define | PCIE_PREFETCH_LIMIT(w) (((w) >> 16) & 0xffffUL) |
|
#define | PCIE_PREFETCH_BASE_LIMIT_VAL(pmemb, pmeml) |
|
#define | PCIE_PREFETCH_BASE_UPPER 10U |
|
#define | PCIE_PREFETCH_LIMIT_UPPER 11U |
|
#define | PCIE_IO_BASE_LIMIT_UPPER 12U |
|
#define | PCIE_IO_BASE_UPPER(w) ((w) & 0xffffUL) |
|
#define | PCIE_IO_LIMIT_UPPER(w) (((w) >> 16) & 0xffffUL) |
|
#define | PCIE_IO_BASE_LIMIT_UPPER_VAL(iobu, iolu) |
|
#define | PCIE_CONF_INTR 15U |
|
#define | PCIE_CONF_INTR_IRQ(w) ((w) & 0xFFU) |
|
#define | PCIE_CONF_INTR_IRQ_NONE 0xFFU /* no interrupt routed */ |
|
#define | PCIE_MAX_BUS (0xFFFFFFFFU & PCIE_BDF_BUS_MASK) |
|
#define | PCIE_MAX_DEV (0xFFFFFFFFU & PCIE_BDF_DEV_MASK) |
|
#define | PCIE_MAX_FUNC (0xFFFFFFFFU & PCIE_BDF_FUNC_MASK) |
|
#define | PCIE_IRQ_CONNECT(bdf_p, irq_p, priority_p, isr_p, isr_param_p, flags_p) |
| Initialize an interrupt handler for a PCIe endpoint IRQ.
|
|
|
uint32_t | pcie_conf_read (pcie_bdf_t bdf, unsigned int reg) |
| Read a 32-bit word from an endpoint's configuration space.
|
|
void | pcie_conf_write (pcie_bdf_t bdf, unsigned int reg, uint32_t data) |
| Write a 32-bit word to an endpoint's configuration space.
|
|
int | pcie_scan (const struct pcie_scan_opt *opt) |
| Scan for PCIe devices.
|
|
bool | pcie_get_mbar (pcie_bdf_t bdf, unsigned int bar_index, struct pcie_bar *mbar) |
| Get the MBAR at a specific BAR index.
|
|
bool | pcie_probe_mbar (pcie_bdf_t bdf, unsigned int index, struct pcie_bar *mbar) |
| Probe the nth MMIO address assigned to an endpoint.
|
|
bool | pcie_get_iobar (pcie_bdf_t bdf, unsigned int bar_index, struct pcie_bar *iobar) |
| Get the I/O BAR at a specific BAR index.
|
|
bool | pcie_probe_iobar (pcie_bdf_t bdf, unsigned int index, struct pcie_bar *iobar) |
| Probe the nth I/O BAR address assigned to an endpoint.
|
|
void | pcie_set_cmd (pcie_bdf_t bdf, uint32_t bits, bool on) |
| Set or reset bits in the endpoint command/status register.
|
|
unsigned int | pcie_alloc_irq (pcie_bdf_t bdf) |
| Allocate an IRQ for an endpoint.
|
|
unsigned int | pcie_get_irq (pcie_bdf_t bdf) |
| Return the IRQ assigned by the firmware/board to an endpoint.
|
|
void | pcie_irq_enable (pcie_bdf_t bdf, unsigned int irq) |
| Enable the PCI(e) endpoint to generate the specified IRQ.
|
|
uint32_t | pcie_get_cap (pcie_bdf_t bdf, uint32_t cap_id) |
| Find a PCI(e) capability in an endpoint's configuration space.
|
|
uint32_t | pcie_get_ext_cap (pcie_bdf_t bdf, uint32_t cap_id) |
| Find an Extended PCI(e) capability in an endpoint's configuration space.
|
|
bool | pcie_connect_dynamic_irq (pcie_bdf_t bdf, unsigned int irq, unsigned int priority, void(*routine)(const void *parameter), const void *parameter, uint32_t flags) |
| Dynamically connect a PCIe endpoint IRQ to an ISR handler.
|
|