Go to the source code of this file.
◆ PCIE_MSI_MAP0
◆ PCIE_MSI_MAP1_64
      
        
          | #define PCIE_MSI_MAP1_64   2U | 
        
      
 
 
◆ PCIE_MSI_MCR
◆ PCIE_MSI_MCR_64
      
        
          | #define PCIE_MSI_MCR_64   0x00800000U  /* 64-bit MSI */ | 
        
      
 
 
◆ PCIE_MSI_MCR_EN
      
        
          | #define PCIE_MSI_MCR_EN   0x00010000U  /* enable MSI */ | 
        
      
 
 
◆ PCIE_MSI_MCR_MMC
      
        
          | #define PCIE_MSI_MCR_MMC   0x000E0000U  /* Multi Messages Capable mask */ | 
        
      
 
 
◆ PCIE_MSI_MCR_MMC_SHIFT
      
        
          | #define PCIE_MSI_MCR_MMC_SHIFT   17 | 
        
      
 
 
◆ PCIE_MSI_MCR_MME
      
        
          | #define PCIE_MSI_MCR_MME   0x00700000U  /* mask of # of enabled IRQs */ | 
        
      
 
 
◆ PCIE_MSI_MCR_MME_SHIFT
      
        
          | #define PCIE_MSI_MCR_MME_SHIFT   20 | 
        
      
 
 
◆ PCIE_MSI_MDR_32
      
        
          | #define PCIE_MSI_MDR_32   2U | 
        
      
 
 
◆ PCIE_MSI_MDR_64
      
        
          | #define PCIE_MSI_MDR_64   3U | 
        
      
 
 
◆ PCIE_MSIR_TABLE_ENTRY_SIZE
      
        
          | #define PCIE_MSIR_TABLE_ENTRY_SIZE   16 | 
        
      
 
 
◆ PCIE_MSIX_MCR
◆ PCIE_MSIX_MCR_EN
      
        
          | #define PCIE_MSIX_MCR_EN   0x80000000U /* Enable MSI-X */ | 
        
      
 
 
◆ PCIE_MSIX_MCR_FMASK
      
        
          | #define PCIE_MSIX_MCR_FMASK   0x40000000U /* Function Mask */ | 
        
      
 
 
◆ PCIE_MSIX_MCR_TSIZE
      
        
          | #define PCIE_MSIX_MCR_TSIZE   0x07FF0000U /* Table size mask */ | 
        
      
 
 
◆ PCIE_MSIX_MCR_TSIZE_SHIFT
      
        
          | #define PCIE_MSIX_MCR_TSIZE_SHIFT   16 | 
        
      
 
 
◆ PCIE_MSIX_PBA
◆ PCIE_MSIX_PBA_BIR
      
        
          | #define PCIE_MSIX_PBA_BIR   0x00000007U /* PBA BIR mask */ | 
        
      
 
 
◆ PCIE_MSIX_PBA_OFFSET
      
        
          | #define PCIE_MSIX_PBA_OFFSET   0xFFFFFFF8U /* Offset mask */ | 
        
      
 
 
◆ PCIE_MSIX_TR
◆ PCIE_MSIX_TR_BIR
      
        
          | #define PCIE_MSIX_TR_BIR   0x00000007U /* Table BIR mask */ | 
        
      
 
 
◆ PCIE_MSIX_TR_OFFSET
      
        
          | #define PCIE_MSIX_TR_OFFSET   0xFFFFFFF8U /* Offset mask */ | 
        
      
 
 
◆ PCIE_VTBL_MA
      
        
          | #define PCIE_VTBL_MA   0U /* Msg Address offset */ | 
        
      
 
 
◆ PCIE_VTBL_MD
      
        
          | #define PCIE_VTBL_MD   8U /* Msg Data offset */ | 
        
      
 
 
◆ PCIE_VTBL_MUA
      
        
          | #define PCIE_VTBL_MUA   4U /* Msg Upper Address offset */ | 
        
      
 
 
◆ PCIE_VTBL_VCTRL
      
        
          | #define PCIE_VTBL_VCTRL   12U /* Vector control offset */ | 
        
      
 
 
◆ msi_vector_t
◆ pcie_is_msi()
Check if the given PCI endpoint supports MSI/MSI-X. 
- Parameters
 - 
  
    | bdf | the target PCI endpoint  | 
  
   
- Returns
 - true if the endpoint support MSI/MSI-X 
 
 
 
◆ pcie_msi_enable()
Configure the given PCI endpoint to generate MSIs. 
- Parameters
 - 
  
    | bdf | the target PCI endpoint  | 
    | vectors | an array of allocated vector(s)  | 
    | n_vector | the size of the vector array  | 
    | irq | The IRQ we wish to trigger via MSI.  | 
  
   
- Returns
 - true if the endpoint supports MSI, false otherwise. 
 
 
 
◆ pcie_msi_map()
Compute the target address for an MSI posted write. 
This function is exported by the arch, board or SoC code.
- Parameters
 - 
  
    | irq | The IRQ we wish to trigger via MSI.  | 
    | vector | The vector for which you want the address (or NULL)  | 
    | n_vector | the size of the vector array  | 
  
   
- Returns
 - A (32-bit) value for the MSI MAP register. 
 
 
 
◆ pcie_msi_mdr()
Compute the data for an MSI posted write. 
This function is exported by the arch, board or SoC code.
- Parameters
 - 
  
    | irq | The IRQ we wish to trigger via MSI.  | 
    | vector | The vector for which you want the data (or NULL)  | 
  
   
- Returns
 - A (16-bit) value for MSI MDR register.