7#ifndef ZEPHYR_INCLUDE_DRIVERS_PCIE_MSI_H_
8#define ZEPHYR_INCLUDE_DRIVERS_PCIE_MSI_H_
30#ifdef CONFIG_PCIE_MSI_X
38#ifdef CONFIG_PCIE_MSI_MULTI_VECTOR
51 unsigned int priority,
68 void (*routine)(
const void *parameter),
69 const void *parameter,
117#define PCIE_MSI_MCR 0U
119#define PCIE_MSI_MCR_EN 0x00010000U
120#define PCIE_MSI_MCR_MMC 0x000E0000U
121#define PCIE_MSI_MCR_MMC_SHIFT 17
122#define PCIE_MSI_MCR_MME 0x00700000U
123#define PCIE_MSI_MCR_MME_SHIFT 20
124#define PCIE_MSI_MCR_64 0x00800000U
131#define PCIE_MSI_MAP0 1U
132#define PCIE_MSI_MAP1_64 2U
133#define PCIE_MSI_MDR_32 2U
134#define PCIE_MSI_MDR_64 3U
141#define PCIE_MSIX_MCR 0U
143#define PCIE_MSIX_MCR_EN 0x80000000U
144#define PCIE_MSIX_MCR_FMASK 0x40000000U
145#define PCIE_MSIX_MCR_TSIZE 0x07FF0000U
146#define PCIE_MSIX_MCR_TSIZE_SHIFT 16
147#define PCIE_MSIR_TABLE_ENTRY_SIZE 16
149#define PCIE_MSIX_TR 1U
150#define PCIE_MSIX_TR_BIR 0x00000007U
151#define PCIE_MSIX_TR_OFFSET 0xFFFFFFF8U
153#define PCIE_MSIX_PBA 2U
154#define PCIE_MSIX_PBA_BIR 0x00000007U
155#define PCIE_MSIX_PBA_OFFSET 0xFFFFFFF8U
157#define PCIE_VTBL_MA 0U
158#define PCIE_VTBL_MUA 4U
159#define PCIE_VTBL_MD 8U
160#define PCIE_VTBL_VCTRL 12U
uint32_t pcie_bdf_t
A unique PCI(e) endpoint (bus, device, function).
Definition: pcie.h:27
flags
Definition: http_parser.h:131
bool pcie_msi_enable(pcie_bdf_t bdf, msi_vector_t *vectors, uint8_t n_vector, unsigned int irq)
Configure the given PCI endpoint to generate MSIs.
uint32_t pcie_msi_map(unsigned int irq, msi_vector_t *vector)
Compute the target address for an MSI posted write.
uint16_t pcie_msi_mdr(unsigned int irq, msi_vector_t *vector)
Compute the data for an MSI posted write.
__UINT32_TYPE__ uint32_t
Definition: stdint.h:60
__UINT8_TYPE__ uint8_t
Definition: stdint.h:58
__UINT16_TYPE__ uint16_t
Definition: stdint.h:59
pcie_bdf_t bdf
Definition: msi.h:28
arch_msi_vector_t arch
Definition: msi.h:29
uint32_t msg_addr
Definition: msi.h:21
uint32_t msg_up_addr
Definition: msi.h:22
uint32_t vector_ctrl
Definition: msi.h:24
uint32_t msg_data
Definition: msi.h:23